diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/lexsup.c | 13 |
2 files changed, 18 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index aeb0460..71e5e4a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -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". diff --git a/ld/lexsup.c b/ld/lexsup.c index fe19e61..556a5ba 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -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; |