diff --git a/configure.ac b/configure.ac index c76060c71..5471aee72 100644 --- a/configure.ac +++ b/configure.ac @@ -86,6 +86,23 @@ AC_SEARCH_LIBS([dlopen], [dl], [], [ AC_MSG_ERROR([unable to find the dlopen() function]) ]) + +# Check for -fstack-protector +ssp_cc=yes +if test "X$CC-cc" != "X"; then + AC_MSG_CHECKING([whether ${CC-cc} accepts -fstack-protector]) + ssp_old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -fstack-protector" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[alloca(100);]])], [], [ssp_cc=no]) + AC_MSG_RESULT([$ssp_cc]) + if test "X$ssp_cc" = "Xno"; then + CFLAGS="$ssp_old_cflags" + else + AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.]) + fi +fi +AM_CONDITIONAL(USE_SSP, test "$ssp_cc" = "yes") + dnl Check for recent enough DRM LIBDRM_VERSION=libdrm_version PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION libdrm_intel]) diff --git a/src/Makefile.am b/src/Makefile.am index c26293dd8..5c52658a6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,9 +35,12 @@ AM_CPPFLAGS = \ driver_cflags = \ -Wall \ -fvisibility=hidden \ - -fstack-protector \ $(NULL) +if USE_SSP +driver_cflags += -fstack-protector +endif + driver_ldflags = \ -avoid-version \ -no-undefined \