aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2015-03-10 09:43:24 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2015-03-10 09:43:24 +0000
commitd2d7e672ad18c54aedfa766b7918d1631a22b4fa (patch)
tree88f459722a79b712a2426ab2196a17f1fc656d2b /gcc
parentee8f136a72fe40cfa88ed44c141218d2a8ae606f (diff)
downloadgcc-d2d7e672ad18c54aedfa766b7918d1631a22b4fa.zip
gcc-d2d7e672ad18c54aedfa766b7918d1631a22b4fa.tar.gz
gcc-d2d7e672ad18c54aedfa766b7918d1631a22b4fa.tar.bz2
linux-common.h (LIBMPX_WRAPPERSSPEC): New.
gcc/ * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New. (CHKP_SPEC): Add wrappers library. * c-family/c.opt (static-libmpxwrappers): New. libmpx/ * Makefile.am (SUBDIRS): Add mpxwrap when used AS supports MPX. (MAKEOVERRIDES): New. * Makefile.in: Regenerate. * configure.ac: Check AS supports MPX. Add mpxintr/Makefile to config files. * configure: Regenerate. * mpxwrap/Makefile.am: New. * mpxwrap/Makefile.in: New. * mpxwrap/libtool-version: New. * mpxwrap/mpx_wrappers.cc: New. * mpxwrap/libmpxwrappers.map: New. From-SVN: r221313
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-family/c.opt3
-rw-r--r--gcc/config/i386/linux-common.h16
3 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6011288..911c2ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
+ * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
+ (CHKP_SPEC): Add wrappers library.
+ * c-family/c.opt (static-libmpxwrappers): New.
+
+2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
+
* config/i386/linux-common.h (LIBMPX_LIBS): New.
(LIBMPX_SPEC): New.
(CHKP_SPEC): New.
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index ac55d3c..5354500 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1044,6 +1044,9 @@ Instrument only functions marked with bnd_instrument attribute.
static-libmpx
Driver
+static-libmpxwrappers
+Driver
+
fcilkplus
C ObjC C++ ObjC++ LTO Report Var(flag_cilkplus) Init(0)
Enable Cilk Plus
diff --git a/gcc/config/i386/linux-common.h b/gcc/config/i386/linux-common.h
index 868274f..9c6560b 100644
--- a/gcc/config/i386/linux-common.h
+++ b/gcc/config/i386/linux-common.h
@@ -73,7 +73,21 @@ along with GCC; see the file COPYING3. If not see
#endif
#endif
+#ifndef LIBMPXWRAPPERS_SPEC
+#if defined(HAVE_LD_STATIC_DYNAMIC)
+#define LIBMPXWRAPPERS_SPEC "\
+%{mmpx:%{fcheck-pointer-bounds:%{!fno-chkp-use-wrappers:\
+ %{static:-lmpxwrappers}\
+ %{!static:%{static-libmpxwrappers:" LD_STATIC_OPTION " --whole-archive}\
+ -lmpxwrappers %{static-libmpxwrappers:--no-whole-archive "\
+ LD_DYNAMIC_OPTION "}}}}}"
+#else
+#define LIBMPXWRAPPERS_SPEC "\
+%{mmpx:%{fcheck-pointer-bounds:{!fno-chkp-use-wrappers:-lmpxwrappers}}}"
+#endif
+#endif
+
#ifndef CHKP_SPEC
#define CHKP_SPEC "\
-%{!nostdlib:%{!nodefaultlibs:" LIBMPX_SPEC "}}"
+%{!nostdlib:%{!nodefaultlibs:" LIBMPX_SPEC LIBMPXWRAPPERS_SPEC "}}"
#endif