diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-08-08 06:09:15 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-08-08 06:09:28 -0700 |
commit | f7309df20c4e787041cedc4a6aced89c15259e54 (patch) | |
tree | ecb88f279679414d47357a767902758458acdc40 /ld/testsuite/ld-i386 | |
parent | 9d4a934ce604afea155c39f06834cdbc47e92a6e (diff) | |
download | gdb-f7309df20c4e787041cedc4a6aced89c15259e54.zip gdb-f7309df20c4e787041cedc4a6aced89c15259e54.tar.gz gdb-f7309df20c4e787041cedc4a6aced89c15259e54.tar.bz2 |
x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
corresponding x86 instruction set isn’t used. When merging properties
from 2 input files and one input file doesn't have the
GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
it neither. This patch removes the GNU_PROPERTY_X86_ISA_1_USED
property if an input file doesn't have it.
This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
requirement.
bfd/
PR ld/23486
* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
(_bfd_x86_elf_link_setup_gnu_properties): Adding the
GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
GNU_PROPERTY_X86_ISA_1_USED, property.
ld/
PR ld/23486
* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr23486a.d: New file.
* testsuite/ld-i386/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486a.d: Likewise.
* testsuite/ld-x86-64/pr23486a.s: Likewise.
* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
* testsuite/ld-x86-64/pr23486b.d: Likewise.
* testsuite/ld-x86-64/pr23486b.s: Likewise.
* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
Diffstat (limited to 'ld/testsuite/ld-i386')
-rw-r--r-- | ld/testsuite/ld-i386/i386.exp | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/pr23486a.d | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/pr23486b.d | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-3.r | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-4.r | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-5.r | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-x86-ibt3a.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-x86-ibt3b.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-x86-shstk3a.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/property-x86-shstk3b.d | 5 |
10 files changed, 30 insertions, 15 deletions
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 6d794fe..78dad02 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -462,6 +462,8 @@ run_dump_test "pr23189" run_dump_test "pr23194" run_dump_test "pr23372a" run_dump_test "pr23372b" +run_dump_test "pr23486a" +run_dump_test "pr23486b" if { !([istarget "i?86-*-linux*"] || [istarget "i?86-*-gnu*"] diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d new file mode 100644 index 0000000..41a6dcf --- /dev/null +++ b/ld/testsuite/ld-i386/pr23486a.d @@ -0,0 +1,10 @@ +#source: ../ld-x86-64/pr23486a.s +#source: ../ld-x86-64/pr23486b.s +#as: --32 +#ld: -r -m elf_i386 +#readelf: -n + +Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: i486, 586 diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d new file mode 100644 index 0000000..08019b7 --- /dev/null +++ b/ld/testsuite/ld-i386/pr23486b.d @@ -0,0 +1,10 @@ +#source: ../ld-x86-64/pr23486b.s +#source: ../ld-x86-64/pr23486a.s +#as: --32 +#ld: -r -m elf_i386 +#readelf: -n + +Displaying notes found in: .note.gnu.property + Owner Data size Description + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: i486, 586 diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r index 0ed91f5..d03203c 100644 --- a/ld/testsuite/ld-i386/property-3.r +++ b/ld/testsuite/ld-i386/property-3.r @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: stack size: 0x800000 - x86 ISA used: 586, SSE x86 ISA needed: i486, 586 #pass diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r index cb2bc15..da295eb 100644 --- a/ld/testsuite/ld-i386/property-4.r +++ b/ld/testsuite/ld-i386/property-4.r @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: stack size: 0x800000 - x86 ISA used: i486, 586, SSE x86 ISA needed: i486, 586, SSE #pass diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r index 5529650..e414159 100644 --- a/ld/testsuite/ld-i386/property-5.r +++ b/ld/testsuite/ld-i386/property-5.r @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: stack size: 0x900000 - x86 ISA used: i486, 586, SSE x86 ISA needed: i486, 586, SSE #pass diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d index 4bb35b0..0aedea1 100644 --- a/ld/testsuite/ld-i386/property-x86-ibt3a.d +++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d @@ -6,6 +6,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 - Properties: x86 ISA used: i486, 586, SSE2, SSE3 - x86 ISA needed: 586, SSE, SSE3, SSE4_1 + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d index 418d58a..bd69ac6 100644 --- a/ld/testsuite/ld-i386/property-x86-ibt3b.d +++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d @@ -6,6 +6,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 - Properties: x86 ISA used: i486, 586, SSE2, SSE3 - x86 ISA needed: 586, SSE, SSE3, SSE4_1 + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d index e261038..76d2a39 100644 --- a/ld/testsuite/ld-i386/property-x86-shstk3a.d +++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d @@ -6,6 +6,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 - Properties: x86 ISA used: i486, 586, SSE2, SSE3 - x86 ISA needed: 586, SSE, SSE3, SSE4_1 + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d index 25f3d23..e770ecf 100644 --- a/ld/testsuite/ld-i386/property-x86-shstk3b.d +++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d @@ -6,6 +6,5 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0 - Properties: x86 ISA used: i486, 586, SSE2, SSE3 - x86 ISA needed: 586, SSE, SSE3, SSE4_1 + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0 + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1 |