bfd/
2004-06-30 H.J. Lu <hongjiu.lu@intel.com> PR 233 * elflink.c (elf_link_input_bfd): Issue an error for non-debug local references to discarded sections and report their locations. ld/testsuite/ 2004-06-30 H.J. Lu <hongjiu.lu@intel.com> PR 233 * ld-discard/extern.d: Updated. * ld-discard/start.d: Likewise. * ld-discard/static.d: Likewise.
This commit is contained in:
parent
72d7a15c9d
commit
2de26f35df
@ -1,3 +1,10 @@
|
||||
2004-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 233
|
||||
* elflink.c (elf_link_input_bfd): Issue an error for non-debug
|
||||
local references to discarded sections and report their
|
||||
locations.
|
||||
|
||||
2004-06-30 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elflink.c (elf_section_ignore_discarded_relocs): Don't test
|
||||
|
@ -6581,8 +6581,7 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
|
||||
{
|
||||
BFD_ASSERT (r_symndx != 0);
|
||||
/* Try to preserve debug information. */
|
||||
if ((o->flags & SEC_DEBUGGING) != 0
|
||||
&& sec->kept_section != NULL
|
||||
if (sec->kept_section != NULL
|
||||
&& sec->size == sec->kept_section->size)
|
||||
h->root.u.def.section
|
||||
= sec->kept_section;
|
||||
@ -6590,13 +6589,20 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
|
||||
memset (rel, 0, sizeof (*rel));
|
||||
}
|
||||
else
|
||||
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));
|
||||
{
|
||||
char *r_name
|
||||
= xstrdup (bfd_archive_filename (o->owner));
|
||||
finfo->info->callbacks->error_handler
|
||||
(LD_DEFINITION_IN_DISCARDED_SECTION,
|
||||
_("`%T' referenced in section `%s' from %s: discarded in section `%s' from %s\n"),
|
||||
h->root.root.string,
|
||||
h->root.root.string,
|
||||
o->name, r_name,
|
||||
h->root.u.def.section->name,
|
||||
bfd_archive_filename (h->root.u.def.section->owner));
|
||||
if (r_name)
|
||||
free (r_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -6605,13 +6611,11 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
|
||||
|
||||
if (sec != NULL && elf_discarded_section (sec))
|
||||
{
|
||||
if ((o->flags & SEC_DEBUGGING) != 0
|
||||
|| (sec->flags & SEC_LINK_ONCE) != 0)
|
||||
if ((o->flags & SEC_DEBUGGING) != 0)
|
||||
{
|
||||
BFD_ASSERT (r_symndx != 0);
|
||||
/* Try to preserve debug information. */
|
||||
if ((o->flags & SEC_DEBUGGING) != 0
|
||||
&& sec->kept_section != NULL
|
||||
if (sec->kept_section != NULL
|
||||
&& sec->size == sec->kept_section->size)
|
||||
finfo->sections[r_symndx]
|
||||
= sec->kept_section;
|
||||
@ -6633,8 +6637,8 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
|
||||
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,
|
||||
_("`%T' referenced in section `%s': discarded in section `%s' from %s\n"),
|
||||
buf, buf, o->name, sec->name,
|
||||
bfd_archive_filename (input_bfd));
|
||||
if (ok != -1)
|
||||
free (buf);
|
||||
|
@ -1,3 +1,10 @@
|
||||
2004-06-30 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 233
|
||||
* ld-discard/extern.d: Updated.
|
||||
* ld-discard/start.d: Likewise.
|
||||
* ld-discard/static.d: Likewise.
|
||||
|
||||
2004-06-29 J"orn Rennecke <joern.rennecke@superh.com>
|
||||
|
||||
Actually add these files:
|
||||
|
@ -1,3 +1,3 @@
|
||||
#source: extern.s
|
||||
#ld: -T discard.ld
|
||||
#error: data: discarded in section `\.data\.exit' from tmpdir/dump0.o
|
||||
#error: `data' referenced in section `\.text' from tmpdir/dump0.o: discarded in section `\.data\.exit' from tmpdir/dump0.o
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: start.s
|
||||
#source: exit.s
|
||||
#ld: -T discard.ld
|
||||
#error: data: discarded in section `\.data\.exit' from tmpdir/dump1.o
|
||||
#error: `data' referenced in section `\.text' from tmpdir/dump0.o: discarded in section `\.data\.exit' from tmpdir/dump1.o
|
||||
|
@ -1,3 +1,3 @@
|
||||
#source: static.s
|
||||
#ld: -T discard.ld
|
||||
#error: local symbol 0: discarded in section `\.data\.exit' from tmpdir/dump0.o
|
||||
#error: `local symbol 0' referenced in section `\.text': discarded in section `\.data\.exit' from tmpdir/dump0.o
|
||||
|
Loading…
Reference in New Issue
Block a user