aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2017-05-08 15:26:51 +0100
committerThomas Preud'homme <thomas.preudhomme@arm.com>2017-05-08 15:26:51 +0100
commit046734ff424bc5a4c1b6a69630d5bb31aa67165c (patch)
tree96a6f114e33082729b916a70f1c5da6c76df7629 /ld
parent313c59612298b022a408ca390bd5f73f28708015 (diff)
downloadgdb-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/ChangeLog7
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp3
-rw-r--r--ld/testsuite/ld-arm/cmse-implib.type9
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\)
+#...