lexsup.c (parse_args): Report unresolved symbols in shared libraries when
authorNick Clifton <nickc@redhat.com>
Mon, 6 Oct 2003 11:07:08 +0000 (11:07 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 6 Oct 2003 11:07:08 +0000 (11:07 +0000)
creating a dynamic executable.  This is a restoration of the default behaviour
for previous versions of the linker.

ld/ChangeLog
ld/lexsup.c

index aeb0460..71e5e4a 100644 (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".
index fe19e61..556a5ba 100644 (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;