On AIX, when runtime linking is active, undefined symbols are allowd by default. Additionally, the '-G' linker flag needs to be specified before the '-bernotok' and any other user-defined linker flag, or '-G' would override some of them again. * m4/libtool.m4: (no_undefined_flag) Define for AIX runtime linking. (allow_undefined_flag) Undefine for AIX runtime linking. (archive_expsym_cmds) Reorder to have -G before $no_undefined_flag. --- m4/libtool.m4 | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 88d8799..503bbc3 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -5053,14 +5053,12 @@ _LT_EOF # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test yes = "$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags '$shared_flag'$allow_undefined_flag $wl'$exp_sym_flag:\$export_symbols else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' @@ -6043,15 +6041,13 @@ if test yes != "$_lt_caught_CXX_error"; then # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test yes = "$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags '$shared_flag'$allow_undefined_flag $wl'$exp_sym_flag:\$export_symbols else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' -- 1.7.3.4