summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rwxr-xr-xcrypto/aes/asm/aes-x86_64.pl3
-rwxr-xr-xcrypto/bn/asm/x86_64-mont.pl1
-rwxr-xr-xcrypto/md5/asm/md5-x86_64.pl1
-rwxr-xr-xcrypto/rc4/asm/rc4-x86_64.pl1
-rwxr-xr-xcrypto/sha/asm/sha1-x86_64.pl1
-rwxr-xr-xcrypto/sha/asm/sha512-x86_64.pl2
-rw-r--r--crypto/x86_64cpuid.pl7
8 files changed, 18 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 6f713d9e87..c9f2226600 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,9 @@
Changes between 1.0.0 and 1.1.0 [xx XXX xxxx]
+ *) Make generated asm have non-executable stack.
+ [Contributed by Google <agl@google.com>]
+
*) New function OPENSSL_gmtime_diff to find the difference in days
and seconds between two tm structures. This will be used to provide
additional functionality for ASN1_TIME.
diff --git a/crypto/aes/asm/aes-x86_64.pl b/crypto/aes/asm/aes-x86_64.pl
index a545e892ae..a757b47146 100755
--- a/crypto/aes/asm/aes-x86_64.pl
+++ b/crypto/aes/asm/aes-x86_64.pl
@@ -42,7 +42,8 @@ $verticalspin=1; # unlike 32-bit version $verticalspin performs
# ~15% better on both AMD and Intel cores
$speed_limit=512; # see aes-586.pl for details
-$code=".text\n";
+$code=".section .note.GNU-stack,\"\",\@progbits\n";
+$code.=".text\n";
$s0="%eax";
$s1="%ebx";
diff --git a/crypto/bn/asm/x86_64-mont.pl b/crypto/bn/asm/x86_64-mont.pl
index 3b7a6f243f..b62373f567 100755
--- a/crypto/bn/asm/x86_64-mont.pl
+++ b/crypto/bn/asm/x86_64-mont.pl
@@ -45,6 +45,7 @@ $m0="%rbx";
$m1="%rbp";
$code=<<___;
+.section .note.GNU-stack,"",\@progbits
.text
.globl bn_mul_mont
diff --git a/crypto/md5/asm/md5-x86_64.pl b/crypto/md5/asm/md5-x86_64.pl
index 867885435e..b75cf3b7a4 100755
--- a/crypto/md5/asm/md5-x86_64.pl
+++ b/crypto/md5/asm/md5-x86_64.pl
@@ -123,6 +123,7 @@ no warnings qw(uninitialized);
open STDOUT,"| $^X $xlate $flavour $output";
$code .= <<EOF;
+.section .note.GNU-stack,"",\@progbits
.text
.align 16
diff --git a/crypto/rc4/asm/rc4-x86_64.pl b/crypto/rc4/asm/rc4-x86_64.pl
index 677be5fe25..a134127e8c 100755
--- a/crypto/rc4/asm/rc4-x86_64.pl
+++ b/crypto/rc4/asm/rc4-x86_64.pl
@@ -82,6 +82,7 @@ $YY="%r12";
$TY="%r13";
$code=<<___;
+.section .note.GNU-stack,"",\@progbits
.text
.globl RC4
diff --git a/crypto/sha/asm/sha1-x86_64.pl b/crypto/sha/asm/sha1-x86_64.pl
index 35ab0e7e78..a00f7c6799 100755
--- a/crypto/sha/asm/sha1-x86_64.pl
+++ b/crypto/sha/asm/sha1-x86_64.pl
@@ -178,6 +178,7 @@ unshift(@xi,pop(@xi));
}
$code.=<<___;
+.section .note.GNU-stack,"",\@progbits
.text
.globl sha1_block_data_order
diff --git a/crypto/sha/asm/sha512-x86_64.pl b/crypto/sha/asm/sha512-x86_64.pl
index e6643f8cf6..aaf9c57875 100755
--- a/crypto/sha/asm/sha512-x86_64.pl
+++ b/crypto/sha/asm/sha512-x86_64.pl
@@ -178,6 +178,8 @@ ___
}
$code=<<___;
+.section .note.GNU-stack,"",\@progbits
+
.text
.globl $func
diff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl
index c96821a3c8..72010c9cbe 100644
--- a/crypto/x86_64cpuid.pl
+++ b/crypto/x86_64cpuid.pl
@@ -16,6 +16,13 @@ print<<___;
.section .init
call OPENSSL_cpuid_setup
+___
+
+if ($flavour =~ /elf/) {
+ print ".section .note.GNU-stack,\"\",\@progbits\n"
+}
+
+print<<___;
.text
.globl OPENSSL_atomic_add