summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2003-06-03 18:15:04 +0000
committerH.J. Lu <hjl@lucon.org>2003-06-03 18:15:04 +0000
commite4679eef7eedfa4d1fcee81705ddd77d5c812924 (patch)
tree5899cd53ad7256687485150174bc68ba48085efc
parent107bcfe916927f8df16eecac2b8f46a36cfd545a (diff)
downloadgdb-e4679eef7eedfa4d1fcee81705ddd77d5c812924.tar.gz
bfd/
2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * elflink.h (elf_link_input_bfd): Call linker error_handler for discarded definitions. include/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New. ld/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * ldmisc.c: Include "bfdlink.h". (error_handler): Handle LD_DEFINITION_IN_DISCARDED_SECTION and -LD_DEFINITION_IN_DISCARDED_SECTION. * Makefile.am: Rebuild dependency. * Makefile.in: Regenerated. ld/testsuite/ 2003-06-03 H.J. Lu <hongjiu.lu@intel.com> * ld-discard/extern.d: Updated. * ld-discard/start.d: Likewise. * ld-discard/static.d: Likewise.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.h47
-rw-r--r--include/ChangeLog4
-rw-r--r--include/bfdlink.h3
4 files changed, 33 insertions, 26 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index cbd2b41e449..9ff266ae462 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.h (elf_link_input_bfd): Call linker error_handler
+ for discarded definitions.
+
2003-06-03 Elias Athanasopoulos <elathan@phys.uoa.gr>
* syms.c (decode_section_type): Return 'n' if section flags are
diff --git a/bfd/elflink.h b/bfd/elflink.h
index e7019f3761e..a7ef7427bf3 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -5003,13 +5003,13 @@ elf_link_input_bfd (finfo, input_bfd)
memset (rel, 0, sizeof (*rel));
}
else
- {
- if (! ((*finfo->info->callbacks->undefined_symbol)
- (finfo->info, h->root.root.string,
- input_bfd, o, rel->r_offset,
- TRUE)))
- return FALSE;
- }
+ finfo->info->callbacks->error_handler
+ (LD_DEFINITION_IN_DISCARDED_SECTION,
+ _("%T: discarded in section `%s' from %s\n"),
+ h->root.root.string,
+ h->root.root.string,
+ h->root.u.def.section->name,
+ bfd_archive_filename (h->root.u.def.section->owner));
}
}
else
@@ -5028,26 +5028,21 @@ elf_link_input_bfd (finfo, input_bfd)
}
else
{
- bfd_boolean ok;
- const char *msg
- = _("local symbols in discarded section %s");
- bfd_size_type amt
- = strlen (sec->name) + strlen (msg) - 1;
- char *buf = (char *) bfd_malloc (amt);
-
- if (buf != NULL)
- sprintf (buf, msg, sec->name);
- else
- buf = (char *) sec->name;
- ok = (*finfo->info->callbacks
- ->undefined_symbol) (finfo->info, buf,
- input_bfd, o,
- rel->r_offset,
- TRUE);
- if (buf != sec->name)
+ static int count;
+ int ok;
+ char *buf;
+
+ ok = asprintf (&buf, "local symbol %d",
+ count++);
+ if (ok <= 0)
+ buf = (char *) "local symbol";
+ finfo->info->callbacks->error_handler
+ (LD_DEFINITION_IN_DISCARDED_SECTION,
+ _("%T: discarded in section `%s' from %s\n"),
+ buf, buf, sec->name,
+ bfd_archive_filename (input_bfd));
+ if (ok != -1)
free (buf);
- if (!ok)
- return FALSE;
}
}
}
diff --git a/include/ChangeLog b/include/ChangeLog
index 41e67bc3307..96f1777729e 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * bfdlink.h (LD_DEFINITION_IN_DISCARDED_SECTION): New.
+
2003-05-30 Ulrich Drepper <drepper@redhat.com>
Jakub Jelinek <jakub@redhat.com>
diff --git a/include/bfdlink.h b/include/bfdlink.h
index 61fcf96f409..d68fe113f1f 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -495,6 +495,9 @@ struct bfd_link_callbacks
ld. */
bfd_boolean (*error_handler)
PARAMS ((int id, const char * fmt, ...));
+
+/* Identifiers of linker error messages used by error_handler. */
+#define LD_DEFINITION_IN_DISCARDED_SECTION 1
};
/* The linker builds link_order structures which tell the code how to