diff --git a/ChangeLog b/ChangeLog index c12754fc820bd31e3e5d37cdce0551af23f8f97c..0f2bb66b86d43f1299dc8c9687c2f4a2a92889a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2000-11-09 David Edelsohn <edelsohn@gnu.org> + + * ltcf-c.sh (aix4): Improve shared library configuration; require + exporting symbols. + * ltcf-cxx.sh (aix4): Define. + * ltconfig (aix4): Define library and soname specs appropriate for + AIX. Define command to create export symbols list. + Mon Nov 6 14:19:35 2000 Christopher Faylor <cgf@cygnus.com> * config.sub: Add support for Sun Chorus diff --git a/ltcf-c.sh b/ltcf-c.sh index e57abb1cb2b243ee47c7d4b8b787d3ca36285dfd..6bccb11c5d6805625b001775952f2d541a7bdf99 100644 --- a/ltcf-c.sh +++ b/ltcf-c.sh @@ -277,13 +277,13 @@ else hardcode_direct=yes fi allow_undefined_flag=' ${wl}-berok' - archive_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' - case "$host_os" in aix4.[01]|aix4.[01].*) - # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on - always_export_symbols=yes ;; - esac - ;; + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec=' ' + build_libtool_need_lc=yes + ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' diff --git a/ltcf-cxx.sh b/ltcf-cxx.sh index c134a4294864fca39e6a7804dc4de4b8c13a4862..cefa0085624a6868760c38c6a04d7032a9e50a2b 100644 --- a/ltcf-cxx.sh +++ b/ltcf-cxx.sh @@ -135,8 +135,12 @@ case "$host_os" in ld_shlibs=no ;; aix4*) - # FIXME: insert proper C++ library support - ld_shlibs=no + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + # -bexpall does not export symbols beginning with underscore (_) + always_export_symbols=yes + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec=' ' + build_libtool_need_lc=yes ;; chorus*) case "$cc_basename" in diff --git a/ltconfig b/ltconfig index fb0bf8b8b181b785402a541da2b61c08c77bb0e7..a79434264e437ec94f13544c56488e9c30032f4e 100755 --- a/ltconfig +++ b/ltconfig @@ -949,8 +949,10 @@ aix4*) # collect2, so additional links can be useful in future. # We preserve .a as extension for shared libraries though AIX4.2 # and later linker supports .so - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' + library_names_spec='${libname}${release}.a $libname.a' shlibpath_var=LIBPATH + soname_spec='${libname}${release}.so$major.o' + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' ;; amigaos*)