From dacbfdf82cf20c5ebaab1f19d619ca2b58528d2e Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 17 Feb 2011 12:37:49 -0600 Subject: [PATCH] shlib-build: Add -p option Add a -p option to shlib-build option to generate "plain" shared objects. That is, shared objects that are intended to be e.g. dlopen()'d, and are not intended to be libraries dynamically linked to from other code. Such shared objects do not need a library name, version numbers, export lists, etc. Change-Id: I649c1b697a79936c1d580199291124398b05e56b Reviewed-on: http://gerrit.openafs.org/3975 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/config/shlib-build.in | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/config/shlib-build.in b/src/config/shlib-build.in index b8f9223..bb4bc99 100644 --- a/src/config/shlib-build.in +++ b/src/config/shlib-build.in @@ -24,6 +24,7 @@ major= minor= unused= srcdir=. +plain= done= while [ -z "$done" ] && [ $# -gt 0 ] ; do case "$1" in @@ -56,18 +57,23 @@ while [ -z "$done" ] && [ $# -gt 0 ] ; do ignore=yes shift ;; + -p) + plain=yes + shift + ;; --) shift done=yes ;; *) - echo 'Usage: shlib-build [-i] -l -M -m -- ...' >&2 + echo 'Usage: shlib-build (-p -f | [-i] -l -M -m ) -- ...' >&2 exit 1 ;; esac done -if [ -z "$library" ] ; then - echo 'Usage: shlib-build [-i] -l -M -m -- ...' >&2 +if [ -z "$library" ] && [ -z "$plain" ] || \ + [ -z "$filename" ] && [ "x$plain" != "x" ] ; then + echo 'Usage: shlib-build (-p -f | [-i] -l -M -m ) -- ...' >&2 exit 1 fi @@ -84,7 +90,7 @@ if [ -z "$filename" ] ; then fi case $sysname in rs_aix*) - if [ -f "$srcdir/$library.map" ] ; then + if [ -z "$plain" ] && [ -f "$srcdir/$library.map" ] ; then cat $srcdir/$library.map | \ awk '/local:/ {inglobal=0}; inglobal { sub(/;/,""); print }; @@ -96,7 +102,7 @@ rs_aix*) $linker $export -o "$filename" "$@" ;; sun*_5*) - if [ -f "$srcdir/$library.map" ] ; then + if [ -z "$plain" ] && [ -f "$srcdir/$library.map" ] ; then if [ -z "$ignore" ] ; then export="-Wl,-M$srcdir/$library.map" else @@ -116,7 +122,7 @@ sun*_5*) fi ;; *_linux*) - if [ -f "$srcdir/$library.map" ] ; then + if [ -z "$plain" ] && [ -f "$srcdir/$library.map" ] ; then export="-Wl,--version-script=$srcdir/$library.map" fi if [ -z "$soname" ] ; then @@ -128,14 +134,14 @@ sun*_5*) fi ;; hp_ux*) - if [ -f "$srcdir/$library.hp" ] ; then + if [ -z "$plain" ] && [ -f "$srcdir/$library.hp" ] ; then export="-c $srcdir/$library.hp" fi echo "$linker $export -o $filename $*" $linker $export -o "$filename" "$@" ;; *darwin*) - if [ -f "$srcdir/$library.map" ] ; then + if [ -z "$plain" ] && [ -f "$srcdir/$library.map" ] ; then # For 10.4 and later, the Mac exports list is a list of symbols, # prefixed with an '_' cat $srcdir/$library.map | \ -- 1.9.4