On AIX, without runtime linking, we create the shared object as member of the library archive. * m4/libtool.m4: (soname_spec) Specify the archive member when creating traditional lib.a shared archives on AIX. (archive_expsym_cmds) On AIX, split $soname into both the archive file name as well as the shared archive member name, and create the shared archive using these results. --- m4/libtool.m4 | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 4413a6d..88d8799 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -2296,7 +2296,7 @@ aix[[4-9]]*) # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' + soname_spec='$libname$release.a($libname$release$shared_ext$major)' fi shlibpath_var=LIBPATH fi @@ -5084,7 +5084,7 @@ _LT_EOF fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + _LT_TAGVAR(archive_expsym_cmds, $1)='func_stripname "$libname$release.a(" ")" "$soname"~$CC '$shared_flag' -o $output_objdir/$func_stripname_result $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$func_stripname_result~$RM $output_objdir/$func_stripname_result' fi fi ;; @@ -6076,7 +6076,7 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + _LT_TAGVAR(archive_expsym_cmds, $1)='func_stripname "$libname$release.a(" ")" "$soname"~$CC '$shared_flag' -o $output_objdir/$func_stripname_result $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$func_stripname_result~$RM $output_objdir/$func_stripname_result' fi fi ;; -- 1.7.3.4