* [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
@ 2017-10-12 20:27 Tsimbalist, Igor V
2017-10-13 12:35 ` Tsimbalist, Igor V
0 siblings, 1 reply; 4+ messages in thread
From: Tsimbalist, Igor V @ 2017-10-12 20:27 UTC (permalink / raw)
To: gcc-patches; +Cc: Jeff Law, jwakely, Tsimbalist, Igor V
[-- Attachment #1: Type: text/plain, Size: 600 bytes --]
Enable building libstdc++v3 with CET options.
libstdc++-v3/
* acinclude.m4: Add cet.m4.
* configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS.
* libsupc++/Makefile.am: Add EXTRA_CFLAGS.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
[-- Attachment #2: 0013-Enable-building-libstdc-v3-with-Intel-CET.PATCH --]
[-- Type: application/octet-stream, Size: 19634 bytes --]
From 8dfe337889dd310b0f4f7c63447334608a30a287 Mon Sep 17 00:00:00 2001
From: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Date: Mon, 14 Aug 2017 18:41:40 +0300
Subject: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
libstdc++-v3/
* acinclude.m4: Add cet.m4.
* configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS.
* libsupc++/Makefile.am: Add EXTRA_CFLAGS.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
---
libstdc++-v3/Makefile.in | 3 +-
libstdc++-v3/acinclude.m4 | 1 +
libstdc++-v3/configure | 94 +++++++++++++++++++++++++++++----
libstdc++-v3/configure.ac | 7 +++
libstdc++-v3/doc/Makefile.in | 3 +-
libstdc++-v3/include/Makefile.in | 3 +-
libstdc++-v3/libsupc++/Makefile.am | 4 +-
libstdc++-v3/libsupc++/Makefile.in | 7 +--
libstdc++-v3/po/Makefile.in | 3 +-
libstdc++-v3/python/Makefile.in | 3 +-
libstdc++-v3/src/Makefile.in | 3 +-
libstdc++-v3/src/c++11/Makefile.in | 3 +-
libstdc++-v3/src/c++98/Makefile.in | 3 +-
libstdc++-v3/src/filesystem/Makefile.in | 3 +-
libstdc++-v3/testsuite/Makefile.in | 3 +-
15 files changed, 119 insertions(+), 24 deletions(-)
---
libstdc++-v3/Makefile.in | 3 +-
libstdc++-v3/acinclude.m4 | 1 +
libstdc++-v3/configure | 94 +++++++++++++++++++++++++++++----
libstdc++-v3/configure.ac | 7 +++
libstdc++-v3/doc/Makefile.in | 3 +-
libstdc++-v3/include/Makefile.in | 3 +-
libstdc++-v3/libsupc++/Makefile.am | 4 +-
libstdc++-v3/libsupc++/Makefile.in | 7 +--
libstdc++-v3/po/Makefile.in | 3 +-
libstdc++-v3/python/Makefile.in | 3 +-
libstdc++-v3/src/Makefile.in | 3 +-
libstdc++-v3/src/c++11/Makefile.in | 3 +-
libstdc++-v3/src/c++98/Makefile.in | 3 +-
libstdc++-v3/src/filesystem/Makefile.in | 3 +-
libstdc++-v3/testsuite/Makefile.in | 3 +-
15 files changed, 119 insertions(+), 24 deletions(-)
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index 0ed59a4..dbfdce6 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -81,7 +81,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(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 \
@@ -173,6 +173,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 599308f..1935bd0 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -4519,3 +4519,4 @@ AC_DEFUN([GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER], [
m4_include([../config/gc++filt.m4])
m4_include([../config/tls.m4])
m4_include([../config/gthr.m4])
+m4_include([../config/cet.m4])
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 836a6d5..7b3ddd9 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -611,6 +611,7 @@ glibcxx_toolexeclibdir
glibcxx_toolexecdir
gxx_include_dir
glibcxx_prefixdir
+EXTRA_CFLAGS
CPU_OPT_BITS_RANDOM
CPU_OPT_EXT_RANDOM
ERROR_CONSTANTS_SRCDIR
@@ -896,6 +897,7 @@ enable_libstdcxx_dual_abi
with_default_libstdcxx_abi
enable_libstdcxx_threads
enable_libstdcxx_filesystem_ts
+enable_cet
with_gxx_include_dir
enable_version_specific_runtime_libs
with_gcc_major_version_only
@@ -1594,6 +1596,8 @@ Optional Features:
enable C++11 threads support [default=auto]
--enable-libstdcxx-filesystem-ts
turns on ISO/IEC TS 18822 support [default=auto]
+ --enable-cet enable Intel CET in target libraries
+ [default=default]
--enable-version-specific-runtime-libs
Specify that runtime libraries should be installed
in a compiler-specific directory
@@ -11601,7 +11605,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11604 "configure"
+#line 11608 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11707,7 +11711,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11710 "configure"
+#line 11714 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15393,7 +15397,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15396 "configure"
+#line 15400 "configure"
int main()
{
typedef bool atomic_type;
@@ -15428,7 +15432,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15431 "configure"
+#line 15435 "configure"
int main()
{
typedef short atomic_type;
@@ -15463,7 +15467,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15466 "configure"
+#line 15470 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -15499,7 +15503,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15502 "configure"
+#line 15506 "configure"
int main()
{
typedef long long atomic_type;
@@ -15580,7 +15584,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15583 "configure"
+#line 15587 "configure"
int main()
{
_Decimal32 d1;
@@ -15622,7 +15626,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15625 "configure"
+#line 15629 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -15656,7 +15660,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15659 "configure"
+#line 15663 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -81077,6 +81081,78 @@ CPU_OPT_BITS_RANDOM=config/${cpu_opt_bits_random}
+# Add CET specific flags is Intel 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 "$target" in
+ i3456786-*-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 -include cet.h"
+fi
+
+EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $CET_FLAGS"
+EXTRA_CFLAGS="$EXTRA_CFLAGS $CET_FLAGS"
+
+
+
# Determine cross-compile flags and AM_CONDITIONALs.
#AC_SUBST(GLIBCXX_IS_NATIVE)
#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 270dcba..ca9ddc2 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -489,6 +489,13 @@ AC_SUBST(CPU_OPT_EXT_RANDOM)
AC_SUBST(CPU_OPT_BITS_RANDOM)
+# Add CET specific flags is Intel CET is enabled.
+GCC_CET_FLAGS(CET_FLAGS)
+EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $CET_FLAGS"
+EXTRA_CFLAGS="$EXTRA_CFLAGS $CET_FLAGS"
+AC_SUBST(EXTRA_CFLAGS)
+AC_SUBST(EXTRA_CXX_FLAGS)
+
# Determine cross-compile flags and AM_CONDITIONALs.
#AC_SUBST(GLIBCXX_IS_NATIVE)
#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in
index be212b4..f68b1d7 100644
--- a/libstdc++-v3/doc/Makefile.in
+++ b/libstdc++-v3/doc/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 7bc4606..5b87fe4 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index c7fdff1..dae35c5 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -170,13 +170,13 @@ AM_MAKEFLAGS = \
C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
C_COMPILE = \
$(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
$(CC) $(DEFS) $(C_INCLUDES) \
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# Libtool notes
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 77f4cfe..37644e8 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -78,7 +78,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -218,6 +218,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
@@ -497,14 +498,14 @@ AM_MAKEFLAGS = \
C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
C_COMPILE = \
$(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
$(CC) $(DEFS) $(C_INCLUDES) \
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# Libtool notes
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 2d4c8b8..3fe137f 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
index a8122aa..23fe7a6 100644
--- a/libstdc++-v3/python/Makefile.in
+++ b/libstdc++-v3/python/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -175,6 +175,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 7594c3f..f0ec7bc 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -208,6 +208,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in
index 295d915..e7db8ae 100644
--- a/libstdc++-v3/src/c++11/Makefile.in
+++ b/libstdc++-v3/src/c++11/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -183,6 +183,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in
index 704a046..d2b9079 100644
--- a/libstdc++-v3/src/c++98/Makefile.in
+++ b/libstdc++-v3/src/c++98/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -179,6 +179,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/filesystem/Makefile.in b/libstdc++-v3/src/filesystem/Makefile.in
index a4fdf79..2a8cf7d 100644
--- a/libstdc++-v3/src/filesystem/Makefile.in
+++ b/libstdc++-v3/src/filesystem/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -187,6 +187,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index da51c0f..ddae2b2 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
--
1.8.3.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
2017-10-12 20:27 [PATCH 13/22] Enable building libstdc++-v3 with Intel CET Tsimbalist, Igor V
@ 2017-10-13 12:35 ` Tsimbalist, Igor V
2017-10-31 12:05 ` Tsimbalist, Igor V
0 siblings, 1 reply; 4+ messages in thread
From: Tsimbalist, Igor V @ 2017-10-13 12:35 UTC (permalink / raw)
To: gcc-patches, libstdc++; +Cc: Jeff Law, Tsimbalist, Igor V
Added libstdc++@gcc.gnu.org
> -----Original Message-----
> From: Tsimbalist, Igor V
> Sent: Thursday, October 12, 2017 10:24 PM
> To: gcc-patches@gcc.gnu.org
> Cc: Jeff Law <law@redhat.com>; jwakely@redhat.com; Tsimbalist, Igor V
> <igor.v.tsimbalist@intel.com>
> Subject: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
>
> Enable building libstdc++v3 with CET options.
>
> libstdc++-v3/
> * acinclude.m4: Add cet.m4.
> * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS.
> * libsupc++/Makefile.am: Add EXTRA_CFLAGS.
> * Makefile.in: Regenerate.
> * configure: Likewise.
> * doc/Makefile.in: Likewise.
> * include/Makefile.in: Likewise.
> * libsupc++/Makefile.in: Likewise.
> * po/Makefile.in: Likewise.
> * python/Makefile.in: Likewise.
> * src/Makefile.in: Likewise.
> * src/c++11/Makefile.in: Likewise.
> * src/c++98/Makefile.in: Likewise.
> * src/filesystem/Makefile.in: Likewise.
> * testsuite/Makefile.in: Likewise.
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
2017-10-13 12:35 ` Tsimbalist, Igor V
@ 2017-10-31 12:05 ` Tsimbalist, Igor V
2017-11-08 18:17 ` Jeff Law
0 siblings, 1 reply; 4+ messages in thread
From: Tsimbalist, Igor V @ 2017-10-31 12:05 UTC (permalink / raw)
To: gcc-patches, libstdc++; +Cc: Jeff Law, Tsimbalist, Igor V
[-- Attachment #1: Type: text/plain, Size: 1512 bytes --]
The revised patch is attached. The differences are in what options are defined and propagated to Makefile for CET enabling.
Ok for trunk?
Igor
> -----Original Message-----
> From: Tsimbalist, Igor V
> Sent: Friday, October 13, 2017 2:09 PM
> To: gcc-patches@gcc.gnu.org; libstdc++@gcc.gnu.org
> Cc: Jeff Law <law@redhat.com>; Tsimbalist, Igor V
> <igor.v.tsimbalist@intel.com>
> Subject: RE: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
>
> Added libstdc++@gcc.gnu.org
>
>
> > -----Original Message-----
> > From: Tsimbalist, Igor V
> > Sent: Thursday, October 12, 2017 10:24 PM
> > To: gcc-patches@gcc.gnu.org
> > Cc: Jeff Law <law@redhat.com>; jwakely@redhat.com; Tsimbalist, Igor V
> > <igor.v.tsimbalist@intel.com>
> > Subject: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
> >
> > Enable building libstdc++v3 with CET options.
> >
> > libstdc++-v3/
> > * acinclude.m4: Add cet.m4.
> > * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS.
> > * libsupc++/Makefile.am: Add EXTRA_CFLAGS.
> > * Makefile.in: Regenerate.
> > * configure: Likewise.
> > * doc/Makefile.in: Likewise.
> > * include/Makefile.in: Likewise.
> > * libsupc++/Makefile.in: Likewise.
> > * po/Makefile.in: Likewise.
> > * python/Makefile.in: Likewise.
> > * src/Makefile.in: Likewise.
> > * src/c++11/Makefile.in: Likewise.
> > * src/c++98/Makefile.in: Likewise.
> > * src/filesystem/Makefile.in: Likewise.
> > * testsuite/Makefile.in: Likewise.
[-- Attachment #2: 0013-Enable-building-libstdc-v3-with-Intel-CET.PATCH --]
[-- Type: application/octet-stream, Size: 18881 bytes --]
From 83ef2dcf9f09600245e2162fdc945374d0ad808b Mon Sep 17 00:00:00 2001
From: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Date: Mon, 14 Aug 2017 18:41:40 +0300
Subject: [PATCH 13/21] Enable building libstdc++-v3 with Intel CET
libstdc++-v3/
* acinclude.m4: Add cet.m4.
* configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
EXTRA_CXX_FLAGS.
* libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
---
libstdc++-v3/Makefile.in | 3 +-
libstdc++-v3/acinclude.m4 | 1 +
libstdc++-v3/configure | 96 +++++++++++++++++++++++++++++----
libstdc++-v3/configure.ac | 7 +++
libstdc++-v3/doc/Makefile.in | 3 +-
libstdc++-v3/include/Makefile.in | 3 +-
libstdc++-v3/libsupc++/Makefile.am | 4 +-
libstdc++-v3/libsupc++/Makefile.in | 7 +--
libstdc++-v3/po/Makefile.in | 3 +-
libstdc++-v3/python/Makefile.in | 3 +-
libstdc++-v3/src/Makefile.in | 3 +-
libstdc++-v3/src/c++11/Makefile.in | 3 +-
libstdc++-v3/src/c++98/Makefile.in | 3 +-
libstdc++-v3/src/filesystem/Makefile.in | 3 +-
libstdc++-v3/testsuite/Makefile.in | 3 +-
15 files changed, 121 insertions(+), 24 deletions(-)
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index 0ed59a4..dbfdce6 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -81,7 +81,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(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 \
@@ -173,6 +173,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 599308f..1935bd0 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -4519,3 +4519,4 @@ AC_DEFUN([GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER], [
m4_include([../config/gc++filt.m4])
m4_include([../config/tls.m4])
m4_include([../config/gthr.m4])
+m4_include([../config/cet.m4])
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 836a6d5..5125e0e 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -611,6 +611,7 @@ glibcxx_toolexeclibdir
glibcxx_toolexecdir
gxx_include_dir
glibcxx_prefixdir
+EXTRA_CFLAGS
CPU_OPT_BITS_RANDOM
CPU_OPT_EXT_RANDOM
ERROR_CONSTANTS_SRCDIR
@@ -896,6 +897,7 @@ enable_libstdcxx_dual_abi
with_default_libstdcxx_abi
enable_libstdcxx_threads
enable_libstdcxx_filesystem_ts
+enable_cet
with_gxx_include_dir
enable_version_specific_runtime_libs
with_gcc_major_version_only
@@ -1594,6 +1596,8 @@ Optional Features:
enable C++11 threads support [default=auto]
--enable-libstdcxx-filesystem-ts
turns on ISO/IEC TS 18822 support [default=auto]
+ --enable-cet enable Intel CET in target libraries
+ [default=default]
--enable-version-specific-runtime-libs
Specify that runtime libraries should be installed
in a compiler-specific directory
@@ -11601,7 +11605,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11604 "configure"
+#line 11608 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11707,7 +11711,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11710 "configure"
+#line 11714 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15393,7 +15397,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15396 "configure"
+#line 15400 "configure"
int main()
{
typedef bool atomic_type;
@@ -15428,7 +15432,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15431 "configure"
+#line 15435 "configure"
int main()
{
typedef short atomic_type;
@@ -15463,7 +15467,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15466 "configure"
+#line 15470 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -15499,7 +15503,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15502 "configure"
+#line 15506 "configure"
int main()
{
typedef long long atomic_type;
@@ -15580,7 +15584,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15583 "configure"
+#line 15587 "configure"
int main()
{
_Decimal32 d1;
@@ -15622,7 +15626,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 15625 "configure"
+#line 15629 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -15656,7 +15660,7 @@ $as_echo "$enable_int128" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15659 "configure"
+#line 15663 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -81077,6 +81081,80 @@ CPU_OPT_BITS_RANDOM=config/${cpu_opt_bits_random}
+# Add CET specific flags is Intel 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
+ i3456786-*-linux* | x86_64-*-linux*)
+ enable_cet_compatibility=yes
+ 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
+ enable_cet_compatibility=no
+ ;;
+esac
+if test x$enable_cet = xyes; then
+ CET_FLAGS="-fcf-protection -mcet"
+fi
+
+EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $CET_FLAGS"
+EXTRA_CFLAGS="$EXTRA_CFLAGS $CET_FLAGS"
+
+
+
# Determine cross-compile flags and AM_CONDITIONALs.
#AC_SUBST(GLIBCXX_IS_NATIVE)
#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 270dcba..ca9ddc2 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -489,6 +489,13 @@ AC_SUBST(CPU_OPT_EXT_RANDOM)
AC_SUBST(CPU_OPT_BITS_RANDOM)
+# Add CET specific flags is Intel CET is enabled.
+GCC_CET_FLAGS(CET_FLAGS)
+EXTRA_CXX_FLAGS="$EXTRA_CXX_FLAGS $CET_FLAGS"
+EXTRA_CFLAGS="$EXTRA_CFLAGS $CET_FLAGS"
+AC_SUBST(EXTRA_CFLAGS)
+AC_SUBST(EXTRA_CXX_FLAGS)
+
# Determine cross-compile flags and AM_CONDITIONALs.
#AC_SUBST(GLIBCXX_IS_NATIVE)
#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in
index be212b4..f68b1d7 100644
--- a/libstdc++-v3/doc/Makefile.in
+++ b/libstdc++-v3/doc/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index bc8556c..7bb3dac 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
index c7fdff1..dae35c5 100644
--- a/libstdc++-v3/libsupc++/Makefile.am
+++ b/libstdc++-v3/libsupc++/Makefile.am
@@ -170,13 +170,13 @@ AM_MAKEFLAGS = \
C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
C_COMPILE = \
$(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
$(CC) $(DEFS) $(C_INCLUDES) \
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# Libtool notes
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 77f4cfe..37644e8 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -78,7 +78,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -218,6 +218,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
@@ -497,14 +498,14 @@ AM_MAKEFLAGS = \
C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
C_COMPILE = \
$(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# LTCOMPILE is copied from LTCXXCOMPILE below.
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \
$(CC) $(DEFS) $(C_INCLUDES) \
$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
# Libtool notes
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
index 2d4c8b8..3fe137f 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
index a8122aa..23fe7a6 100644
--- a/libstdc++-v3/python/Makefile.in
+++ b/libstdc++-v3/python/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -175,6 +175,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 7594c3f..f0ec7bc 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -208,6 +208,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in
index 295d915..e7db8ae 100644
--- a/libstdc++-v3/src/c++11/Makefile.in
+++ b/libstdc++-v3/src/c++11/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -183,6 +183,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in
index 704a046..d2b9079 100644
--- a/libstdc++-v3/src/c++98/Makefile.in
+++ b/libstdc++-v3/src/c++98/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -179,6 +179,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/src/filesystem/Makefile.in b/libstdc++-v3/src/filesystem/Makefile.in
index 847b19b..0b43889 100644
--- a/libstdc++-v3/src/filesystem/Makefile.in
+++ b/libstdc++-v3/src/filesystem/Makefile.in
@@ -77,7 +77,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -189,6 +189,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index da51c0f..ddae2b2 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -76,7 +76,7 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/../config/gc++filt.m4 \
$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/config.h
@@ -145,6 +145,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FGREP = @FGREP@
GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
--
1.8.3.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
2017-10-31 12:05 ` Tsimbalist, Igor V
@ 2017-11-08 18:17 ` Jeff Law
0 siblings, 0 replies; 4+ messages in thread
From: Jeff Law @ 2017-11-08 18:17 UTC (permalink / raw)
To: Tsimbalist, Igor V, gcc-patches, libstdc++
On 10/31/2017 06:03 AM, Tsimbalist, Igor V wrote:
> The revised patch is attached. The differences are in what options are defined and propagated to Makefile for CET enabling.
> Â
> Ok for trunk?
>
> Igor
>
>
>> -----Original Message-----
>> From: Tsimbalist, Igor V
>> Sent: Friday, October 13, 2017 2:09 PM
>> To: gcc-patches@gcc.gnu.org; libstdc++@gcc.gnu.org
>> Cc: Jeff Law <law@redhat.com>; Tsimbalist, Igor V
>> <igor.v.tsimbalist@intel.com>
>> Subject: RE: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
>>
>> Added libstdc++@gcc.gnu.org
>>
>>
>>> -----Original Message-----
>>> From: Tsimbalist, Igor V
>>> Sent: Thursday, October 12, 2017 10:24 PM
>>> To: gcc-patches@gcc.gnu.org
>>> Cc: Jeff Law <law@redhat.com>; jwakely@redhat.com; Tsimbalist, Igor V
>>> <igor.v.tsimbalist@intel.com>
>>> Subject: [PATCH 13/22] Enable building libstdc++-v3 with Intel CET
>>>
>>> Enable building libstdc++v3 with CET options.
>>>
>>> libstdc++-v3/
>>> * acinclude.m4: Add cet.m4.
>>> * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS.
>>> * libsupc++/Makefile.am: Add EXTRA_CFLAGS.
>>> * Makefile.in: Regenerate.
>>> * configure: Likewise.
>>> * doc/Makefile.in: Likewise.
>>> * include/Makefile.in: Likewise.
>>> * libsupc++/Makefile.in: Likewise.
>>> * po/Makefile.in: Likewise.
>>> * python/Makefile.in: Likewise.
>>> * src/Makefile.in: Likewise.
>>> * src/c++11/Makefile.in: Likewise.
>>> * src/c++98/Makefile.in: Likewise.
>>> * src/filesystem/Makefile.in: Likewise.
>>> * testsuite/Makefile.in: Likewise.
>
>
> 0013-Enable-building-libstdc-v3-with-Intel-CET.PATCH
>
>
> From 83ef2dcf9f09600245e2162fdc945374d0ad808b Mon Sep 17 00:00:00 2001
> From: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
> Date: Mon, 14 Aug 2017 18:41:40 +0300
> Subject: [PATCH 13/21] Enable building libstdc++-v3 with Intel CET
>
> libstdc++-v3/
> * acinclude.m4: Add cet.m4.
> * configure.ac: Set CET_FLAGS. Update EXTRA_CFLAGS,
> EXTRA_CXX_FLAGS.
> * libsupc++/Makefile.am: Use Add EXTRA_CFLAGS.
> * Makefile.in: Regenerate.
> * configure: Likewise.
> * doc/Makefile.in: Likewise.
> * include/Makefile.in: Likewise.
> * libsupc++/Makefile.in: Likewise.
> * po/Makefile.in: Likewise.
> * python/Makefile.in: Likewise.
> * src/Makefile.in: Likewise.
> * src/c++11/Makefile.in: Likewise.
> * src/c++98/Makefile.in: Likewise.
> * src/filesystem/Makefile.in: Likewise.
> * testsuite/Makefile.in: Likewise.
OK for the trunk. Please wait to commit until entire series is ACK'd.
jeff
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-11-08 18:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-12 20:27 [PATCH 13/22] Enable building libstdc++-v3 with Intel CET Tsimbalist, Igor V
2017-10-13 12:35 ` Tsimbalist, Igor V
2017-10-31 12:05 ` Tsimbalist, Igor V
2017-11-08 18:17 ` Jeff Law
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).