Stop the v850 linker from converting to other output formats whilst linking.
PR 22419 * emultempl/v850elf.em (v850_create_output_section_statements): New function. Generate an error if attempting to convert the format of the output file. * testsuite/ld-unique/pr21529.d: Skip for the V850. * testsuite/ld-elf/pr21884.d: Skip for the V850.
This commit is contained in:
parent
bd560f571f
commit
2824e1bd4f
|
@ -1,3 +1,12 @@
|
||||||
|
2017-11-21 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 22419
|
||||||
|
* emultempl/v850elf.em (v850_create_output_section_statements):
|
||||||
|
New function. Generate an error if attempting to convert the
|
||||||
|
format of the output file.
|
||||||
|
* testsuite/ld-unique/pr21529.d: Skip for the V850.
|
||||||
|
* testsuite/ld-elf/pr21884.d: Skip for the V850.
|
||||||
|
|
||||||
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
|
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
|
||||||
|
|
||||||
* testsuite/ld-arc/jli-simple.d: Update test.
|
* testsuite/ld-arc/jli-simple.d: Update test.
|
||||||
|
|
|
@ -49,6 +49,27 @@ v850_after_open (void)
|
||||||
gld${EMULATION_NAME}_after_open ();
|
gld${EMULATION_NAME}_after_open ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* This is a convenient point to tell BFD about target specific flags.
|
||||||
|
After the output has been created, but before inputs are read. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
v850_create_output_section_statements (void)
|
||||||
|
{
|
||||||
|
/* See PR 22419 for an example of why this is necessary. */
|
||||||
|
if (strstr (bfd_get_target (link_info.output_bfd), "v850") == NULL)
|
||||||
|
{
|
||||||
|
/* The V850 backend needs special fields in the output hash structure.
|
||||||
|
These will only be created if the output format is an arm format,
|
||||||
|
hence we do not support linking and changing output formats at the
|
||||||
|
same time. Use a link followed by objcopy to change output formats. */
|
||||||
|
einfo (_("%F%X%P: error: Cannot change output format (to %s) whilst linking V850 binaries.\n"),
|
||||||
|
bfd_get_target (link_info.output_bfd));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
LDEMUL_AFTER_OPEN=v850_after_open
|
LDEMUL_AFTER_OPEN=v850_after_open
|
||||||
|
LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=v850_create_output_section_statements
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#source: pr21884b.s
|
#source: pr21884b.s
|
||||||
#ld: -T pr21884.t
|
#ld: -T pr21884.t
|
||||||
#objdump: -b binary -s
|
#objdump: -b binary -s
|
||||||
#notarget: aarch64*-*-* arm*-*-* avr-*-* hppa-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-*
|
#notarget: aarch64*-*-* arm*-*-* avr-*-* hppa-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-* v850-*-*
|
||||||
# Skip targets which can't change output format to binary.
|
# Skip targets which can't change output format to binary.
|
||||||
|
|
||||||
.*: file format binary
|
.*: file format binary
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ld: --oformat binary -T pr21529.ld -e main
|
#ld: --oformat binary -T pr21529.ld -e main
|
||||||
#objdump: -s -b binary
|
#objdump: -s -b binary
|
||||||
#notarget: aarch64*-*-* arm*-*-* avr-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-*
|
#notarget: aarch64*-*-* arm*-*-* avr-*-* ia64-*-* m68hc1*-*-* nds32*-*-* score-*-* v850-*-*
|
||||||
# Skip targets which can't change output format to binary.
|
# Skip targets which can't change output format to binary.
|
||||||
|
|
||||||
#pass
|
#pass
|
||||||
|
|
Loading…
Reference in New Issue