summaryrefslogtreecommitdiffstats
path: root/bin/mklib
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2004-07-01 15:33:14 +0000
committerBrian Paul <[email protected]>2004-07-01 15:33:14 +0000
commit76cfed853fb7ba95ce0a8cdf9c714df1daefbe68 (patch)
tree00f4083e0bae5d3779f235bd0a999f2e59d8bb47 /bin/mklib
parent6d50d91ae4cd741a17b9b024725f5fbe19729b51 (diff)
added commands for AIX shared libs (Shane Blackett)
Diffstat (limited to 'bin/mklib')
-rwxr-xr-xbin/mklib25
1 files changed, 24 insertions, 1 deletions
diff --git a/bin/mklib b/bin/mklib
index 9c1e0cdc960..21d214599d0 100755
--- a/bin/mklib
+++ b/bin/mklib
@@ -338,7 +338,30 @@ case $ARCH in
ar -ruv ${LIBNAME} ${OBJECTS}
FINAL_LIBS=${LIBNAME}
else
- echo "mklib: PROBLEM: AIX shared libs not supported!!!"
+ EXPFILE="lib${LIBNAME}.exp"
+ OFILE=shr.o #Want to be consistent with the IBM libGL.a
+ LIBNAME="lib${LIBNAME}.a" # shared objects are still stored in the .a libraries
+ OPTS="-bE:${EXPFILE} -bM:SRE -bnoentry"
+ rm -f ${EXPFILE} ${OFILE}
+ NM="/bin/nm -eC"
+ echo "#! /usr/lib/${LIBNAME}" > ${EXPFILE}
+ ${NM} ${OBJECTS} | awk '{
+ if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
+ && ( substr($1,1,1) != ".")) {
+ if (substr ($1, 1, 7) != "__sinit" &&
+ substr ($1, 1, 7) != "__sterm") {
+ if (substr ($1, 1, 5) == "__tf1")
+ print (substr ($1, 7))
+ else if (substr ($1, 1, 5) == "__tf9")
+ print (substr ($1, 15))
+ else
+ print $1
+ }
+ }
+ }' | sort -u >> ${EXPFILE}
+ cc ${OPTS} -o ${OFILE} ${OBJECTS} ${DEPS}
+ ar -r ${LIBNAME} ${OFILE}
+ FINAL_LIBS="${LIBNAME}"
fi
;;