summaryrefslogtreecommitdiffstats
path: root/src/util/makeshlib
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>1995-06-23 00:59:54 +0000
committerSam Hartman <hartmans@mit.edu>1995-06-23 00:59:54 +0000
commit6cd88aa348286b0535b95b84f54beb95abd29a92 (patch)
treed631441a2fd3127093ba06aff89f4cd7acb60d49 /src/util/makeshlib
parentd84d59a45a9203ba179a213f5d2281be4da07b00 (diff)
Changes to support AIX shared libraries. The interactions
between configure.in and Makefile.in change significantly for shared libraries: the static library target is no longer specified in the Makefile, although a rule to make the static library is specified. Also, none of the libraries have any more unresolved symbols. As discussed, libcom_err.a is made shared and symlinks are created in lib. These changes sort of work, although I suspect cleanup is necessary. I don't think it breaks too much on other platforms. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6126 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util/makeshlib')
-rw-r--r--src/util/makeshlib26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/util/makeshlib b/src/util/makeshlib
index 71eba9a29..8f6f7dc42 100644
--- a/src/util/makeshlib
+++ b/src/util/makeshlib
@@ -19,11 +19,35 @@ case $host in
do
sed -e "s;^;$i/shared/;" -e "s; ; $i/shared/;g" $i/DONE
done`
-
+
echo $CC -G $ldflags -o $library $FILES $libdirfl $liblist
$CC -G $ldflags -o $library $FILES $libdirfl $liblist
stat=$?
;;
+*-*-aix*)
+ FILES=`for i
+ do
+ sed -e "s;^;$i/;" -e "s; ; $i/;g" $i/DONE
+ done`
+
+ar cq $library $FILES || exit $?
+ dump -g $library | sed -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$/\1/p;d' | sort | uniq > ${library}.syms
+ stat=$?
+ if [ $stat -eq 0 ]
+ then
+ ld -o shr.o $library -H512 -T512 -bM:SRE -lc $ldflags -bfilelist -bgcbypass:1 -bnodelcsect -x -bE:${library}.syms $libdirfl $liblist
+ stat=$?
+ if [ $stat -eq 0 ]
+ then
+ rm $library ${library}.syms
+ ar cq $library shr.o
+ stat=$?
+ rm shr.o
+ else
+ rm -f $library
+fi
+ fi
+;;
alpha-*-osf*)
FILES=`for i
do