From: Andrew Deason Date: Sun, 21 Nov 2010 23:57:22 +0000 (-0500) Subject: Solaris: Support -i in shlib-build X-Git-Tag: upstream/1.8.0_pre1^2~4443 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=222067f6f8fd4f596302befbc48918e10547ed1d;p=packages%2Fo%2Fopenafs.git Solaris: Support -i in shlib-build Our librokenafs.map file contains symbols that we may not actually define, since the list of exported symbols varies depending on the platform's capabilities. This causes errors during linking, which can be suppressed by marking all symbols as "= EXTERN". Do so by having shlib-build modify the mapfile at link-time, when -i is specified to indicate ignoring undefined symbols. Change-Id: I043fca6c8206a19fb7bddbc8e624baeaaff3ab00 Reviewed-on: http://gerrit.openafs.org/3365 Reviewed-by: Derrick Brashear Tested-by: BuildBot --- diff --git a/src/config/shlib-build.in b/src/config/shlib-build.in index 493ad116f..c58591bbb 100644 --- a/src/config/shlib-build.in +++ b/src/config/shlib-build.in @@ -97,7 +97,15 @@ rs_aix*) ;; sun*_5*) if [ -f "$srcdir/$library.map" ] ; then - export="-Wl,-M$srcdir/$library.map" + if [ -z "$ignore" ] ; then + export="-Wl,-M$srcdir/$library.map" + else + # add "= EXTERN" to every symbol, so we don't get errors about + # undefined symbols + cat "$srcdir/$library.map" | \ + sed -e 's/\([a-zA-Z_]\);$/\1 = EXTERN;/' > "$library.real.map" + export="-Wl,-M$library.real.map" + fi fi if [ -z "$soname" ] ; then echo "$linker $export -o $filename $*"