summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Kuhls <bernd.kuhls@t-online.de>2018-07-29 20:55:23 +0200
committerXiang, Haihao <haihao.xiang@intel.com>2018-08-21 10:59:35 +0800
commitd805098c739a9dfffacb2591ad8906b70376216e (patch)
tree57039f8b78510b27092911feffb00d15037babf5
parentedafd706539433796a4e4478dd16ec979aa0239c (diff)
downloadlibva-intel-driver-d805098c739a9dfffacb2591ad8906b70376216e.tar.gz
Check for -fstack-protector
Not all toolchains provide support for -fstack-protector. This patch provides a configure check to avoid build errors like /home/buildroot/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/6.4.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: cannot find -lssp_nonshared /home/buildroot/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/6.4.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: cannot find -lssp
-rw-r--r--configure.ac17
-rw-r--r--src/Makefile.am5
2 files changed, 21 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index c76060c7..5471aee7 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 c26293dd..5c52658a 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 \