From abccc074bb741574b00b078277b711194310c497 Mon Sep 17 00:00:00 2001 From: Igor Tsimbalist Date: Fri, 17 Nov 2017 23:41:10 +0100 Subject: [PATCH] Enable building libmpx with Intel CET libmpx/ * Makefile.in: Regenerate. * acinclude.m4: Add enable.m4 and cet.m4. * configure: Regenerate. * configure.ac: Set CET_FLAGS. Update XCFLAGS. * mpxrt/Makefile.am: Update libmpx_la_CFLAGS. * mpxrt/Makefile.in: Regenerate. * mpxwrap/Makefile.am: Add AM_CFLAGS. Update libmpxwrappers_la_CFLAGS. * mpxwrap/Makefile.in: Regenerate. From-SVN: r254900 --- libmpx/ChangeLog | 12 ++++++++ libmpx/Makefile.in | 3 +- libmpx/acinclude.m4 | 2 ++ libmpx/configure | 76 ++++++++++++++++++++++++++++++++++++++++++++-- libmpx/configure.ac | 4 +++ libmpx/mpxrt/Makefile.am | 2 +- libmpx/mpxrt/Makefile.in | 5 +-- libmpx/mpxwrap/Makefile.am | 4 ++- libmpx/mpxwrap/Makefile.in | 7 +++-- 9 files changed, 106 insertions(+), 9 deletions(-) diff --git a/libmpx/ChangeLog b/libmpx/ChangeLog index 3edc2d4..9ae6542 100644 --- a/libmpx/ChangeLog +++ b/libmpx/ChangeLog @@ -1,3 +1,15 @@ + 2017-11-17 Igor Tsimbalist + + * Makefile.in: Regenerate. + * acinclude.m4: Add enable.m4 and cet.m4. + * configure: Regenerate. + * configure.ac: Set CET_FLAGS. Update XCFLAGS. + * mpxrt/Makefile.am: Update libmpx_la_CFLAGS. + * mpxrt/Makefile.in: Regenerate. + * mpxwrap/Makefile.am: Add AM_CFLAGS. Update + libmpxwrappers_la_CFLAGS. + * mpxwrap/Makefile.in: Regenerate. + 2017-01-30 Jakub Jelinek * mpxrt/mpxrt-utils.h (__mpxrt_stop): New prototype. diff --git a/libmpx/Makefile.in b/libmpx/Makefile.in index 5e58b72..358956c 100644 --- a/libmpx/Makefile.in +++ b/libmpx/Makefile.in @@ -66,7 +66,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/../libtool.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ diff --git a/libmpx/acinclude.m4 b/libmpx/acinclude.m4 index 38e0808..c432ae6 100644 --- a/libmpx/acinclude.m4 +++ b/libmpx/acinclude.m4 @@ -2,6 +2,8 @@ dnl ---------------------------------------------------------------------- dnl This whole bit snagged from libgfortran. sinclude(../libtool.m4) +sinclude(../config/enable.m4) +sinclude(../config/cet.m4) dnl The lines below arrange for aclocal not to bring an installed dnl libtool.m4 into aclocal.m4, while still arranging for automake to dnl add a definition of LIBTOOL to Makefile.in. diff --git a/libmpx/configure b/libmpx/configure index 853993a..7bc68b8 100644 --- a/libmpx/configure +++ b/libmpx/configure @@ -732,6 +732,7 @@ with_pic enable_fast_install with_gnu_ld enable_libtool_lock +enable_cet with_gcc_major_version_only ' ac_precious_vars='build_alias @@ -1372,6 +1373,8 @@ Optional Features: --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) + --enable-cet enable Intel CET in target libraries + [default=default] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -11234,7 +11237,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11237 "configure" +#line 11240 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11340,7 +11343,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11343 "configure" +#line 11346 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11581,6 +11584,75 @@ CC="$lt_save_CC" XCFLAGS="-Wall -Wextra" +# Add CET specific flags if CET is enabled + # Check whether --enable-cet was given. +if test "${enable_cet+set}" = set; then : + enableval=$enable_cet; + case "$enableval" in + yes|no|default) ;; + *) as_fn_error "Unknown argument to enable/disable cet" "$LINENO" 5 ;; + esac + +else + enable_cet=default +fi + + +case "$host" in + i[34567]86-*-linux* | x86_64-*-linux*) + case "$enable_cet" in + default) + # Check if assembler supports CET. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +asm ("setssbsy"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + enable_cet=yes +else + enable_cet=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + yes) + # Check if assembler supports CET. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +asm ("setssbsy"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + as_fn_error "assembler with CET support is required for --enable-cet" "$LINENO" 5 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + esac + ;; + *) + enable_cet=no + ;; +esac +if test x$enable_cet = xyes; then + CET_FLAGS="-fcf-protection -mcet" +fi + +XCFLAGS="$XCFLAGS $CET_FLAGS" + if test "${multilib}" = "yes"; then diff --git a/libmpx/configure.ac b/libmpx/configure.ac index baa882b..dc0c2a8 100644 --- a/libmpx/configure.ac +++ b/libmpx/configure.ac @@ -117,6 +117,10 @@ AC_SUBST(enable_shared) AC_SUBST(enable_static) XCFLAGS="-Wall -Wextra" +# Add CET specific flags if CET is enabled +GCC_CET_FLAGS(CET_FLAGS) +XCFLAGS="$XCFLAGS $CET_FLAGS" + AC_SUBST(XCFLAGS) if test "${multilib}" = "yes"; then diff --git a/libmpx/mpxrt/Makefile.am b/libmpx/mpxrt/Makefile.am index 41c806f..0dd0bed 100644 --- a/libmpx/mpxrt/Makefile.am +++ b/libmpx/mpxrt/Makefile.am @@ -11,7 +11,7 @@ toolexeclib_LTLIBRARIES = libmpx.la libmpx_la_SOURCES = mpxrt.c mpxrt-utils.c -libmpx_la_CFLAGS = -fPIC +libmpx_la_CFLAGS = -fPIC $(XCFLAGS) libmpx_la_DEPENDENCIES = libmpx.map libmpx_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libmpx.map $(link_libmpx) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` diff --git a/libmpx/mpxrt/Makefile.in b/libmpx/mpxrt/Makefile.in index 4c55d20..17e0ac5 100644 --- a/libmpx/mpxrt/Makefile.in +++ b/libmpx/mpxrt/Makefile.in @@ -62,7 +62,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/../libtool.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs @@ -256,7 +257,7 @@ ACLOCAL_AMFLAGS = -I $(top_srcdir) -I $(top_srcdir)/config @LIBMPX_SUPPORTED_TRUE@AM_CFLAGS = $(XCFLAGS) @LIBMPX_SUPPORTED_TRUE@toolexeclib_LTLIBRARIES = libmpx.la @LIBMPX_SUPPORTED_TRUE@libmpx_la_SOURCES = mpxrt.c mpxrt-utils.c -@LIBMPX_SUPPORTED_TRUE@libmpx_la_CFLAGS = -fPIC +@LIBMPX_SUPPORTED_TRUE@libmpx_la_CFLAGS = -fPIC $(XCFLAGS) @LIBMPX_SUPPORTED_TRUE@libmpx_la_DEPENDENCIES = libmpx.map @LIBMPX_SUPPORTED_TRUE@libmpx_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libmpx.map $(link_libmpx) \ @LIBMPX_SUPPORTED_TRUE@ -version-info `grep -v '^\#' $(srcdir)/libtool-version` diff --git a/libmpx/mpxwrap/Makefile.am b/libmpx/mpxwrap/Makefile.am index d9e84ae..6dba674 100644 --- a/libmpx/mpxwrap/Makefile.am +++ b/libmpx/mpxwrap/Makefile.am @@ -1,11 +1,13 @@ ALCLOCAL_AMFLAGS = -I .. -I ../config AM_CPPFLAGS = -I $(top_srcdir) +AM_CFLAGS = $(XCFLAGS) # May be used by toolexeclibdir. gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) libmpxwrappers_la_CFLAGS = -fcheck-pointer-bounds -mmpx -fno-chkp-check-read \ - -fno-chkp-check-write -fno-chkp-use-wrappers -fPIC + -fno-chkp-check-write -fno-chkp-use-wrappers \ + -fPIC $(XCFLAGS) libmpxwrappers_la_DEPENDENCIES = libmpxwrappers.map libmpxwrappers_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libmpxwrappers.map \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` diff --git a/libmpx/mpxwrap/Makefile.in b/libmpx/mpxwrap/Makefile.in index 1b929b9..6693a09 100644 --- a/libmpx/mpxwrap/Makefile.in +++ b/libmpx/mpxwrap/Makefile.in @@ -62,7 +62,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/../libtool.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs @@ -249,11 +250,13 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ALCLOCAL_AMFLAGS = -I .. -I ../config AM_CPPFLAGS = -I $(top_srcdir) +AM_CFLAGS = $(XCFLAGS) # May be used by toolexeclibdir. gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) libmpxwrappers_la_CFLAGS = -fcheck-pointer-bounds -mmpx -fno-chkp-check-read \ - -fno-chkp-check-write -fno-chkp-use-wrappers -fPIC + -fno-chkp-check-write -fno-chkp-use-wrappers \ + -fPIC $(XCFLAGS) libmpxwrappers_la_DEPENDENCIES = libmpxwrappers.map libmpxwrappers_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libmpxwrappers.map \ -- 2.7.4