summaryrefslogtreecommitdiffstats
path: root/src/config/shlib.conf
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2005-09-09 21:22:18 +0000
committerKen Raeburn <raeburn@mit.edu>2005-09-09 21:22:18 +0000
commitd284fca175e5aa23d8aadffd0150470acd21a2e4 (patch)
tree1f33a23c6842857a6cdb048718b668b1a50c845c /src/config/shlib.conf
parenta9c2b6881159fc80f3bcf1f71684712a9e236dcd (diff)
downloadkrb5-d284fca175e5aa23d8aadffd0150470acd21a2e4.tar.gz
krb5-d284fca175e5aa23d8aadffd0150470acd21a2e4.tar.xz
krb5-d284fca175e5aa23d8aadffd0150470acd21a2e4.zip
patch from Marc Aurele La France:
* shlib.conf (case *-*-aix5.3*): Generate proper shared libraries acceptable to dlopen(3) (as in mechglue, for example). Allows for building both shared and static libraries in one run. Only done for AIX 5.3, but probably should be done for earlier versions. ticket: 3176 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17378 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/config/shlib.conf')
-rw-r--r--src/config/shlib.conf27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/config/shlib.conf b/src/config/shlib.conf
index 9d2ed00fb..d0028e2a2 100644
--- a/src/config/shlib.conf
+++ b/src/config/shlib.conf
@@ -360,6 +360,33 @@ mips-*-netbsd*)
;;
+*-*-aix5.3*)
+ SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
+ SHLIBEXT=.so
+ # AIX doesn't need separate PIC objects
+ SHOBJEXT=.o
+ SHLIB_EXPFLAGS=' $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+ PROFFLAGS=-pg
+ if test "$krb5_cv_prog_gcc" = "yes" ; then
+ wl_prefix=-Wl,
+ RPATH_FLAG='-Wl,-blibpath:'
+ LDCOMBINE='$(CC) -shared -v -o $@ $$objlist -nostartfiles -Xlinker -bgcbypass:1 -Xlinker -bfilelist -Xlinker -bM:SRE -Xlinker -bE:$(SHLIB_EXPORT_FILE) -Xlinker -bernotok -Xlinker -brtl $(SHLIB_EXPFLAGS) -lc $$initfini'
+ else
+ wl_prefix=
+ RPATH_FLAG=-blibpath:
+ LDCOMBINE='/bin/ld -o $@ $$objlist -H512 -T512 -bnoentry -bgcbypass:1 -bnodelcsect -bfilelist -bM:SRE -bE:$(SHLIB_EXPORT_FILE) -bernotok -brtl $(SHLIB_EXPFLAGS) -lc $$initfini'
+ fi
+ # Assume initialization always delayed.
+ INIT_FINI_PREP="wl=${wl_prefix}; "'i=1; initfini=; for f in . $(LIBFINIFUNC); do if test $$f != .; then initfini="$$initfini $${wl}-binitfini::$$f:$$i"; else :; fi; i=`expr $$i + 1`; done'
+ use_linker_fini_option=yes
+ MAKE_SHLIB_COMMAND="${INIT_FINI_PREP} && ${LDCOMBINE}"
+ RPATH_TAIL=:/usr/lib:/lib
+ CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) $(RPATH_FLAG)$(PROG_RPATH):'"$RPATH_TAIL"' $(CFLAGS) $(LDFLAGS)'
+ CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) $(CFLAGS) $(LDFLAGS)'
+ # $(PROG_RPATH) is here to handle things like a shared tcl library
+ RUN_ENV='LIBPATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`:$(PROG_RPATH):/usr/lib:/usr/local/lib; export LIBPATH; '
+ ;;
+
*-*-aix*)
SHLIBVEXT='.a.$(LIBMAJOR).$(LIBMINOR)'
SHLIBEXT=.a