configure: Verify that GCC recognizes -no-pie flag
authorBen Gamari <bgamari.foss@gmail.com>
Mon, 14 Nov 2016 19:13:30 +0000 (14:13 -0500)
committerBen Gamari <ben@smart-cactus.org>
Mon, 14 Nov 2016 19:13:31 +0000 (14:13 -0500)
It seems like GCC versions prior to 4.8 exit with code 0 when faced with
an unrecognized flag. Silly compilers.

Test Plan: Validate

Reviewers: hvr, austin, ggreif

Reviewed By: ggreif

Subscribers: thomie, erikd

Differential Revision: https://phabricator.haskell.org/D2707

GHC Trac Issues: #12759

aclocal.m4

index aea85f4..5d39570 100644 (file)
@@ -1333,7 +1333,8 @@ AC_DEFUN([FP_GCC_SUPPORTS_NO_PIE],
    AC_REQUIRE([AC_PROG_CC])
    AC_MSG_CHECKING([whether GCC supports -no-pie])
    echo 'int main() { return 0; }' > conftest.c
-   if ${CC-cc} -o conftest -no-pie conftest.c > /dev/null 2>&1; then
+   # Some GCC versions only warn when passed an unrecognized flag.
+   if $CC -no-pie -x c /dev/null -dM -E > conftest.txt 2>&1 && ! grep -i unrecognized conftest.txt > /dev/null 2>&1; then
        CONF_GCC_SUPPORTS_NO_PIE=YES
        AC_MSG_RESULT([yes])
    else