diff options
author | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2017-11-17 14:34:39 +0100 |
---|---|---|
committer | Igor Tsimbalist <itsimbal@gcc.gnu.org> | 2017-11-17 14:34:39 +0100 |
commit | 1ecae1fc238a6b02b3cc2de6a24d73966bc45a03 (patch) | |
tree | daa0015bf7667568564bbd9abcd7fbe77ef2942f /libgcc/config/i386/t-linux | |
parent | a851ce04f7050dd82aa8344e7b68ee8319fb7b6f (diff) | |
download | gcc-1ecae1fc238a6b02b3cc2de6a24d73966bc45a03.zip gcc-1ecae1fc238a6b02b3cc2de6a24d73966bc45a03.tar.gz gcc-1ecae1fc238a6b02b3cc2de6a24d73966bc45a03.tar.bz2 |
Enable building libgcc with CET options.
Enable building libgcc with CET options by default on Linux/x86 if
binutils supports CET v2.0. It can be disabled with --disable-cet.
It is an error to configure GCC with --enable-cet if bintuiils
doesn't support CET v2.0.
ENDBR instruction is added to __morestack_large_model since it is
called indirectly.
2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
config/
* cet.m4: New file.
gcc/
* config.gcc (extra_headers): Add cet.h for x86 targets.
* config/i386/cet.h: New file.
* doc/install.texi: Add --enable-cet/--disable-cet.
libgcc/
* Makefile.in (configure_deps): Add $(srcdir)/../config/cet.m4.
(CET_FLAGS): New.
* config/i386/morestack.S: Include <cet.h>.
(__morestack_large_model): Add _CET_ENDBR at function entrance.
* config/i386/resms64.h: Include <cet.h>.
* config/i386/resms64f.h: Likewise.
* config/i386/resms64fx.h: Likewise.
* config/i386/resms64x.h: Likewise.
* config/i386/savms64.h: Likewise.
* config/i386/savms64f.h: Likewise.
* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add $(CET_FLAGS).
(CRTSTUFF_T_CFLAGS): Likewise.
* configure.ac: Include ../config/cet.m4.
Set and substitute CET_FLAGS.
* configure: Regenerated.
From-SVN: r254868
Diffstat (limited to 'libgcc/config/i386/t-linux')
-rw-r--r-- | libgcc/config/i386/t-linux | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux index 11bb46e..8506a63 100644 --- a/libgcc/config/i386/t-linux +++ b/libgcc/config/i386/t-linux @@ -3,4 +3,5 @@ # t-slibgcc-elf-ver and t-linux SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver -HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER +HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS) +CRTSTUFF_T_CFLAGS += $(CET_FLAGS) |