diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-05-08 15:26:51 +0100 |
---|---|---|
committer | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-05-08 15:26:51 +0100 |
commit | 046734ff424bc5a4c1b6a69630d5bb31aa67165c (patch) | |
tree | 96a6f114e33082729b916a70f1c5da6c76df7629 /ld | |
parent | 313c59612298b022a408ca390bd5f73f28708015 (diff) | |
download | gdb-046734ff424bc5a4c1b6a69630d5bb31aa67165c.zip gdb-046734ff424bc5a4c1b6a69630d5bb31aa67165c.tar.gz gdb-046734ff424bc5a4c1b6a69630d5bb31aa67165c.tar.bz2 |
Make import libraries relocatable objects
For ELF targets --out-implib currently generates an executable file
(e_type is ET_EXEC) despite the file being expected to be linked against
some other object file to make an executable later. It seems therefore
more sensible to make the import library a relocatable object file
(e_type set to ET_REL).
Incidentally, as dicted by requirement 8 of
"ARM v8-M Security Extensions: Requirements on Development Tools"
(document ARM-ECM-0359818) version 1.0, import libraries generated when
using --cmse-implib *must* be relocatable object file so this commit
also adds an assert there in case the type of ELF import library is
changed again in the future.
2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
bfd/
* elflink.c (elf_output_implib): Remove executable flag from import
library bfd.
* elf32-arm.c (elf32_arm_filter_implib_symbols): Assert that the import
library is a relocatable object file.
ld/
* testsuite/ld-arm/arm-elf.exp
(Secure gateway import library generation): Check e_type field
of import library and executable produced.
* testsuite/ld-arm/cmse-implib.type: Expectations for e_type field.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/cmse-implib.type | 9 |
3 files changed, 18 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 8318173..cd85a35 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * testsuite/ld-arm/arm-elf.exp + (Secure gateway import library generation): Check e_type field + of import library and executable produced. + * testsuite/ld-arm/cmse-implib.type: Expectations for e_type field. + 2017-04-28 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> PR ld/21404 diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 1a4d262..2e19332 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -685,7 +685,8 @@ set armeabitests_nonacl { "--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-implib.lib --cmse-implib" "" "-march=armv8-m.base -mthumb --defsym VER=1" {cmse-implib.s} - {{readelf {-s tmpdir/cmse-implib.lib} cmse-implib.rd}} + {{readelf {-s tmpdir/cmse-implib.lib} cmse-implib.rd} + {readelf {-h tmpdir/cmse-implib.lib} cmse-implib.type}} "cmse-implib"} {"Input secure gateway import library" "--section-start .gnu.sgstubs=0x20000 --out-implib=tmpdir/cmse-new-implib.lib --in-implib=tmpdir/cmse-implib.lib --cmse-implib" "" diff --git a/ld/testsuite/ld-arm/cmse-implib.type b/ld/testsuite/ld-arm/cmse-implib.type new file mode 100644 index 0000000..7bb3bcc --- /dev/null +++ b/ld/testsuite/ld-arm/cmse-implib.type @@ -0,0 +1,9 @@ +#... +File: tmpdir/cmse-implib.lib +#... +[[:space:]]+Type:[[:space:]]+REL \(Relocatable file\) +#... +File: tmpdir/cmse-implib +#... +[[:space:]]+Type:[[:space:]]+EXEC \(Executable file\) +#... |