lexsup.c (parse_args): Report unresolved symbols in shared libraries when

creating a dynamic executable.  This is a restoration of the default behaviour
for previous versions of the linker.
This commit is contained in:
Nick Clifton 2003-10-06 11:07:08 +00:00
parent 85cf2a8a15
commit 854770991f
2 changed files with 18 additions and 4 deletions

View File

@ -1,4 +1,11 @@
2003-10-03 Matt Thomas <matt@3am-software.com>
2003-10-06 Nick Clifton <nickc@redhat.com>
* lexsup.c (parse_args): Report unresolved symbols in shared
libraries when creating a dynamic executable. This is a
restoration of the default behaviour for previous versions of
the linker.
2003-10-06 Matt Thomas <matt@3am-software.com>
* emulparams/hppanbsd.sh: Remove OUTPUT_FORMAT.
* emulparams/hppaobsd.sh: Add OUTPUT_FORMAT="elf32-hppa".

View File

@ -660,12 +660,19 @@ parse_args (unsigned argc, char **argv)
break;
case OPTION_CALL_SHARED:
config.dynamic_link = TRUE;
/* When linking against shared libraries, the default
behaviour is to ignore any unresolved references. */
/* When linking against shared libraries, the default behaviour is
to report any unresolved references. This is for backwards
comptability with previous linker behaviour. Whilst strictly
speaking it is not a failure to encounter unresolved symbols at
link time - the symbol *might* be available at load time - it is
nevertheless necessary for the correct execution of the autoconf
package. (It needs to be able to detect functions that are not
provided by the host OS). Since this package is used by lots of
projects, maintaining the old linker behaviour is important. */
if (link_info.unresolved_syms_in_objects == RM_NOT_YET_SET)
link_info.unresolved_syms_in_objects = RM_IGNORE;
if (link_info.unresolved_syms_in_shared_libs == RM_NOT_YET_SET)
link_info.unresolved_syms_in_shared_libs = RM_IGNORE;
link_info.unresolved_syms_in_shared_libs = how_to_report_unresolved_symbols;
break;
case OPTION_NON_SHARED:
config.dynamic_link = FALSE;