bfd/
2009-04-08 H.J. Lu <hongjiu.lu@intel.com> * elflink.c (elf_link_add_object_symbols): Warn alternate ELF machine code. include/ 2009-04-08 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (bfd_link_info): Add warn_alternate_em. ld/ 2009-04-08 H.J. Lu <hongjiu.lu@intel.com> * lexsup.c (option_values): Add OPTION_WARN_ALTERNATE_EM. (ld_options): Likewise. (parse_args): Likewise. * ld.texinfo: Document --warn-alternate-em. * NEWS: Mention --warn-alternate-em.
This commit is contained in:
parent
143260c9bf
commit
a0c402a564
|
@ -1,3 +1,8 @@
|
|||
2009-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elflink.c (elf_link_add_object_symbols): Warn alternate ELF
|
||||
machine code.
|
||||
|
||||
2009-04-07 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* archures.c: Add bfd_mach_mep_c5.
|
||||
|
|
|
@ -3425,6 +3425,7 @@ _bfd_elf_relocs_compatible (const bfd_target *input,
|
|||
static bfd_boolean
|
||||
elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
||||
{
|
||||
Elf_Internal_Ehdr *ehdr;
|
||||
Elf_Internal_Shdr *hdr;
|
||||
bfd_size_type symcount;
|
||||
bfd_size_type extsymcount;
|
||||
|
@ -3480,6 +3481,17 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|||
}
|
||||
}
|
||||
|
||||
ehdr = elf_elfheader (abfd);
|
||||
if (info->warn_alternate_em
|
||||
&& bed->elf_machine_code != ehdr->e_machine
|
||||
&& ((bed->elf_machine_alt1 != 0
|
||||
&& ehdr->e_machine == bed->elf_machine_alt1)
|
||||
|| (bed->elf_machine_alt2 != 0
|
||||
&& ehdr->e_machine == bed->elf_machine_alt2)))
|
||||
info->callbacks->einfo
|
||||
(_("%P: alternate ELF machine code found (%d) in %B, expecting %d\n"),
|
||||
ehdr->e_machine, abfd, bed->elf_machine_code);
|
||||
|
||||
/* As a GNU extension, any input sections which are named
|
||||
.gnu.warning.SYMBOL are treated as warning symbols for the given
|
||||
symbol. This differs from .gnu.warning sections, which generate
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2009-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* bfdlink.h (bfd_link_info): Add warn_alternate_em.
|
||||
|
||||
2009-03-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* alloca-conf.h: Revise based on autoconf-2.61, autoconf-2.13
|
||||
|
|
|
@ -322,6 +322,9 @@ struct bfd_link_info
|
|||
/* TRUE if we should warn when adding a DT_TEXTREL to a shared object. */
|
||||
unsigned int warn_shared_textrel: 1;
|
||||
|
||||
/* TRUE if we should warn alternate ELF machine code. */
|
||||
unsigned int warn_alternate_em: 1;
|
||||
|
||||
/* TRUE if unreferenced sections should be removed. */
|
||||
unsigned int gc_sections: 1;
|
||||
|
||||
|
|
10
ld/ChangeLog
10
ld/ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2009-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* lexsup.c (option_values): Add OPTION_WARN_ALTERNATE_EM.
|
||||
(ld_options): Likewise.
|
||||
(parse_args): Likewise.
|
||||
|
||||
* ld.texinfo: Document --warn-alternate-em.
|
||||
|
||||
* NEWS: Mention --warn-alternate-em.
|
||||
|
||||
2009-04-07 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* emulparams/elf32mep.sh: Change default endian to little.
|
||||
|
|
3
ld/NEWS
3
ld/NEWS
|
@ -1,5 +1,8 @@
|
|||
-*- text -*-
|
||||
|
||||
* ELF: --warn-alternate-em option to warn if an object has alternate
|
||||
ELF machine code.
|
||||
|
||||
* New script function REGION_ALIAS to add alias names to memory regions.
|
||||
|
||||
* PE targets no longer make use of the long section names PE extension to
|
||||
|
|
|
@ -1941,6 +1941,10 @@ the section (@pxref{SECTIONS}).
|
|||
@item --warn-shared-textrel
|
||||
Warn if the linker adds a DT_TEXTREL to a shared object.
|
||||
|
||||
@kindex --warn-alternate-em
|
||||
@item --warn-alternate-em
|
||||
Warn if an object has alternate ELF machine code.
|
||||
|
||||
@kindex --warn-unresolved-symbols
|
||||
@item --warn-unresolved-symbols
|
||||
If the linker is going to report an unresolved symbol (see the option
|
||||
|
|
|
@ -163,6 +163,7 @@ enum option_values
|
|||
OPTION_WARN_UNRESOLVED_SYMBOLS,
|
||||
OPTION_ERROR_UNRESOLVED_SYMBOLS,
|
||||
OPTION_WARN_SHARED_TEXTREL,
|
||||
OPTION_WARN_ALTERNATE_EM,
|
||||
OPTION_REDUCE_MEMORY_OVERHEADS,
|
||||
OPTION_DEFAULT_SCRIPT
|
||||
};
|
||||
|
@ -555,6 +556,9 @@ static const struct ld_option ld_options[] =
|
|||
{ {"warn-shared-textrel", no_argument, NULL, OPTION_WARN_SHARED_TEXTREL},
|
||||
'\0', NULL, N_("Warn if shared object has DT_TEXTREL"),
|
||||
TWO_DASHES },
|
||||
{ {"warn-alternate-em", no_argument, NULL, OPTION_WARN_ALTERNATE_EM},
|
||||
'\0', NULL, N_("Warn if an object has alternate ELF machine code"),
|
||||
TWO_DASHES },
|
||||
{ {"warn-unresolved-symbols", no_argument, NULL,
|
||||
OPTION_WARN_UNRESOLVED_SYMBOLS},
|
||||
'\0', NULL, N_("Report unresolved symbols as warnings"), TWO_DASHES },
|
||||
|
@ -1359,6 +1363,9 @@ parse_args (unsigned argc, char **argv)
|
|||
case OPTION_WARN_SHARED_TEXTREL:
|
||||
link_info.warn_shared_textrel = TRUE;
|
||||
break;
|
||||
case OPTION_WARN_ALTERNATE_EM:
|
||||
link_info.warn_alternate_em = TRUE;
|
||||
break;
|
||||
case OPTION_WHOLE_ARCHIVE:
|
||||
whole_archive = TRUE;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue