summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Configurations/15-android.conf2
-rwxr-xr-xConfigure26
-rwxr-xr-xconfig8
3 files changed, 22 insertions, 14 deletions
diff --git a/Configurations/15-android.conf b/Configurations/15-android.conf
index 9df4d9446e..ddd642a117 100644
--- a/Configurations/15-android.conf
+++ b/Configurations/15-android.conf
@@ -65,7 +65,7 @@
my ($api, $arch) = ($1, $2);
my $triarch = $triplet{$arch};
- my $cflags = "-Wa,--noexecstack";
+ my $cflags;
my $cppflags;
# see if there is NDK clang on $PATH
diff --git a/Configure b/Configure
index ffc5fe5d33..43effc2b46 100755
--- a/Configure
+++ b/Configure
@@ -1427,6 +1427,27 @@ if (!$disabled{makedepend}) {
}
}
+if (!$disabled{asm}) {
+ # probe for -Wa,--noexecstack option...
+ if ($predefined{__clang__}) {
+ # clang has builtin assembler, which doesn't recognize --help,
+ # but it apparently recognizes the option in question on all
+ # supported platforms even when it's meaningless. In other words
+ # probe would fail, but probed option always accepted...
+ push @{$config{cflags}}, "-Wa,--noexecstack", "-Qunused-arguments";
+ } elsif ($^O ne 'VMS') {
+ my $cc = $config{CROSS_COMPILE}.$config{CC};
+ open(PIPE, "$cc -Wa,--help -c -o null.$$.o -x assembler /dev/null 2>&1 |");
+ while(<PIPE>) {
+ if (m/--noexecstack/) {
+ push @{$config{cflags}}, "-Wa,--noexecstack";
+ last;
+ }
+ }
+ close(PIPE);
+ unlink("null.$$.o");
+ }
+}
# Deal with bn_ops ###################################################
@@ -1468,11 +1489,6 @@ if (defined($config{api})) {
push @{$config{defines}}, $apiflag;
}
-if (defined($predefined{__clang__}) && !$disabled{asm}) {
- push @{$config{cflags}}, "-Qunused-arguments";
- push @{$config{cxxflags}}, "-Qunused-arguments" if $config{CXX};
-}
-
if ($strict_warnings)
{
my $wopt;
diff --git a/config b/config
index a44cd21e93..b8adf34999 100755
--- a/config
+++ b/config
@@ -840,14 +840,6 @@ if [ -n "$CONFIG_OPTIONS" ]; then
options="$options $CONFIG_OPTIONS"
fi
-if expr "$options" : '.*no\-asm' > /dev/null; then :; else
- if sh -c "$CROSS_COMPILE${CC:-gcc} -Wa,--help -c -o /tmp/null.$$.o -x assembler /dev/null && rm /tmp/null.$$.o" 2>&1 | \
- grep \\--noexecstack >/dev/null; then
- __CNF_CFLAGS="$__CNF_CFLAGS -Wa,--noexecstack"
- __CNF_CXXFLAGS="$__CNF_CXXFLAGS -Wa,--noexecstack"
- fi
-fi
-
# gcc < 2.8 does not support -march=ultrasparc
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
then