summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2019-12-14 09:48:18 -0800
committerH.J. Lu <hongjiu.lu@intel.com>2020-02-08 06:24:44 -0800
commit96f0b8adddc4ffc8599c60b5755b0d9c19a9c84b (patch)
tree9933e3880dce39508a4d2f2070baa2306d1dfbee
parent87d3bb8e861e54e2549e848a1adee6d2df9ed603 (diff)
x86: Always generate .note.gnu.property section for ELF outputs
We should always generate .note.gnu.property section in x86 assembly codes for ELF outputs to mark Intel CET support since all input files must be marked with Intel CET support in order for linker to mark output with Intel CET support. Verified with $ CC="gcc -Wl,-z,cet-report=error" ./Configure shared linux-x86 -fcf-protection $ make $ make test Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11044)
-rw-r--r--crypto/perlasm/x86gas.pl20
1 files changed, 20 insertions, 0 deletions
diff --git a/crypto/perlasm/x86gas.pl b/crypto/perlasm/x86gas.pl
index 25d1c16aac..2875a1f716 100644
--- a/crypto/perlasm/x86gas.pl
+++ b/crypto/perlasm/x86gas.pl
@@ -173,6 +173,26 @@ sub ::file_end
else { push (@out,"$tmp\n"); }
}
push(@out,$initseg) if ($initseg);
+ if ($::elf) {
+ push(@out,"
+ .section \".note.gnu.property\", \"a\"
+ .p2align 2
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .asciz \"GNU\"
+1:
+ .p2align 2
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 3
+3:
+ .p2align 2
+4:
+");
+ }
}
sub ::data_byte { push(@out,".byte\t".join(',',@_)."\n"); }