summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2018-03-28 16:58:24 +0000
committeremaste <emaste@FreeBSD.org>2018-03-28 16:58:24 +0000
commit71918e8f61597def8a0205b9b259f791777bbdc9 (patch)
tree7190d3ab17f61d64dcde3f84ff9db34a6986926f
parent897710e98a0b0e19215469cbc1bad8edced933e8 (diff)
downloadFreeBSD-src-71918e8f61597def8a0205b9b259f791777bbdc9.zip
FreeBSD-src-71918e8f61597def8a0205b9b259f791777bbdc9.tar.gz
MFC r315522: use INT3 instead of NOP for x86 binary padding
We should never end up executing the inter-function padding, so we are better off faulting than silently carrying on to whatever function happens to be next. Note that LLD does this by default. Sponsored by: The FreeBSD Foundation
-rw-r--r--contrib/binutils/ld/emulparams/elf_i386.sh2
-rw-r--r--contrib/binutils/ld/emulparams/elf_x86_64.sh2
-rw-r--r--sys/conf/ldscript.amd646
-rw-r--r--sys/conf/ldscript.i3866
4 files changed, 8 insertions, 8 deletions
diff --git a/contrib/binutils/ld/emulparams/elf_i386.sh b/contrib/binutils/ld/emulparams/elf_i386.sh
index bdeaebb..b899444 100644
--- a/contrib/binutils/ld/emulparams/elf_i386.sh
+++ b/contrib/binutils/ld/emulparams/elf_i386.sh
@@ -6,7 +6,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
NONPAGED_TEXT_START_ADDR=0x08048000
ARCH=i386
MACHINE=
-NOP=0x90909090
+NOP=0xCCCCCCCC
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
diff --git a/contrib/binutils/ld/emulparams/elf_x86_64.sh b/contrib/binutils/ld/emulparams/elf_x86_64.sh
index 449ccc9..08ad514 100644
--- a/contrib/binutils/ld/emulparams/elf_x86_64.sh
+++ b/contrib/binutils/ld/emulparams/elf_x86_64.sh
@@ -7,7 +7,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
NONPAGED_TEXT_START_ADDR=0x400000
ARCH="i386:x86-64"
MACHINE=
-NOP=0x90909090
+NOP=0xCCCCCCCC
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
diff --git a/sys/conf/ldscript.amd64 b/sys/conf/ldscript.amd64
index 838a3c4..43fde20 100644
--- a/sys/conf/ldscript.amd64
+++ b/sys/conf/ldscript.amd64
@@ -56,7 +56,7 @@ SECTIONS
.init :
{
KEEP (*(.init))
- } =0x90909090
+ } =0xCCCCCCCC
.plt : { *(.plt) }
.text :
{
@@ -64,11 +64,11 @@ SECTIONS
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
- } =0x90909090
+ } =0xCCCCCCCC
.fini :
{
KEEP (*(.fini))
- } =0x90909090
+ } =0xCCCCCCCC
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
diff --git a/sys/conf/ldscript.i386 b/sys/conf/ldscript.i386
index 01b056c..8d0953b 100644
--- a/sys/conf/ldscript.i386
+++ b/sys/conf/ldscript.i386
@@ -44,7 +44,7 @@ SECTIONS
.init :
{
KEEP (*(.init))
- } =0x90909090
+ } =0xCCCCCCCC
.plt : { *(.plt) }
.text :
{
@@ -52,11 +52,11 @@ SECTIONS
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
- } =0x90909090
+ } =0xCCCCCCCC
.fini :
{
KEEP (*(.fini))
- } =0x90909090
+ } =0xCCCCCCCC
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
OpenPOWER on IntegriCloud