x86: Remove linker option: -z prefix-nop
Since it is incorrect to convert bnd call *foo@GOTPCREL(%rip) to bnd nop call foo this patch removes the "-z prefix-nop" option from x86 linker. * emulparams/call_nop.sh: Remove -z prefix-nop. * ld.texinfo: Likewise. * testsuite/ld-i386/call3c.d: Check for linker error. * testsuite/ld-x86-64/call1c.d: Likewise.
This commit is contained in:
parent
0e05cf3a61
commit
4a4a4a27ba
@ -1,3 +1,10 @@
|
||||
2017-06-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emulparams/call_nop.sh: Remove -z prefix-nop.
|
||||
* ld.texinfo: Likewise.
|
||||
* testsuite/ld-i386/call3c.d: Check for linker error.
|
||||
* testsuite/ld-x86-64/call1c.d: Likewise.
|
||||
|
||||
2017-06-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* emultempl/ppc64elf.em (params): Init plt_localentry0 field.
|
||||
|
@ -10,11 +10,6 @@ PARSE_AND_LIST_ARGS_CASE_Z_CALL_NOP='
|
||||
link_info.call_nop_as_suffix = FALSE;
|
||||
link_info.call_nop_byte = 0x67;
|
||||
}
|
||||
else if (strcmp (optarg + 9, "prefix-nop") == 0)
|
||||
{
|
||||
link_info.call_nop_as_suffix = FALSE;
|
||||
link_info.call_nop_byte = 0x90;
|
||||
}
|
||||
else if (strcmp (optarg + 9, "suffix-nop") == 0)
|
||||
{
|
||||
link_info.call_nop_as_suffix = TRUE;
|
||||
|
@ -1250,14 +1250,12 @@ relocation overflow check if there will be no dynamic relocation
|
||||
overflow at run-time. Supported for x86_64.
|
||||
|
||||
@item call-nop=prefix-addr
|
||||
@itemx call-nop=prefix-nop
|
||||
@itemx call-nop=suffix-nop
|
||||
@itemx call-nop=prefix-@var{byte}
|
||||
@itemx call-nop=suffix-@var{byte}
|
||||
Specify the 1-byte @code{NOP} padding when transforming indirect call
|
||||
to a locally defined function, foo, via its GOT slot.
|
||||
@option{call-nop=prefix-addr} generates @code{0x67 call foo}.
|
||||
@option{call-nop=prefix-nop} generates @code{0x90 call foo}.
|
||||
@option{call-nop=suffix-nop} generates @code{call foo 0x90}.
|
||||
@option{call-nop=prefix-@var{byte}} generates @code{@var{byte} call foo}.
|
||||
@option{call-nop=suffix-@var{byte}} generates @code{call foo @var{byte}}.
|
||||
|
@ -1,14 +1,4 @@
|
||||
#source: call3.s
|
||||
#as: --32 -mrelax-relocations=yes
|
||||
#ld: -melf_i386 -z call-nop=prefix-nop
|
||||
#objdump: -dw
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
#...
|
||||
[ ]*[a-f0-9]+: 90 nop
|
||||
[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * call +[a-f0-9]+ <foo>
|
||||
#pass
|
||||
#error: invalid number for -z call-nop=prefix-: nop
|
||||
|
@ -1,14 +1,4 @@
|
||||
#source: call1.s
|
||||
#as: --64 -mrelax-relocations=yes
|
||||
#ld: -melf_x86_64 -z call-nop=prefix-nop
|
||||
#objdump: -dw
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
#...
|
||||
[ ]*[a-f0-9]+: 90 nop
|
||||
[ ]*[a-f0-9]+: e8 ([0-9a-f]{2} ){4} * callq +[a-f0-9]+ <foo>
|
||||
#pass
|
||||
#error: invalid number for -z call-nop=prefix-: nop
|
||||
|
Loading…
Reference in New Issue
Block a user