aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-10-06 11:07:08 +0000
committerNick Clifton <nickc@redhat.com>2003-10-06 11:07:08 +0000
commit854770991f736fdad0fe6dca6c0cc6e280f8a6ce (patch)
tree07dd0cf7bf9ae71260bea8ce75eedc616092ce73
parent85cf2a8a15d156b4bd8bc3362c0a9b3924a705f4 (diff)
downloadfsf-binutils-gdb-854770991f736fdad0fe6dca6c0cc6e280f8a6ce.zip
fsf-binutils-gdb-854770991f736fdad0fe6dca6c0cc6e280f8a6ce.tar.gz
fsf-binutils-gdb-854770991f736fdad0fe6dca6c0cc6e280f8a6ce.tar.bz2
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.
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/lexsup.c13
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;