aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libphobos/Makefile.in1
-rwxr-xr-xlibphobos/configure16
-rw-r--r--libphobos/configure.ac11
-rw-r--r--libphobos/libdruntime/MERGE2
-rw-r--r--libphobos/libdruntime/Makefile.in1
-rw-r--r--libphobos/libdruntime/core/sys/posix/ucontext.d6
-rw-r--r--libphobos/libdruntime/core/thread.d10
-rw-r--r--libphobos/libdruntime/gcc/config.d.in3
-rw-r--r--libphobos/src/Makefile.in1
-rw-r--r--libphobos/testsuite/Makefile.in1
10 files changed, 43 insertions, 9 deletions
diff --git a/libphobos/Makefile.in b/libphobos/Makefile.in
index f692b2f..a139592 100644
--- a/libphobos/Makefile.in
+++ b/libphobos/Makefile.in
@@ -217,6 +217,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
DCFG_DLPI_TLS_MODID = @DCFG_DLPI_TLS_MODID@
+DCFG_ENABLE_CET = @DCFG_ENABLE_CET@
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
diff --git a/libphobos/configure b/libphobos/configure
index 6d8461f..77a3125 100755
--- a/libphobos/configure
+++ b/libphobos/configure
@@ -722,6 +722,7 @@ LIBTOOL
CFLAGS_FOR_BUILD
CC_FOR_BUILD
AR
+DCFG_ENABLE_CET
CET_DFLAGS
CET_FLAGS
RANLIB
@@ -5652,11 +5653,20 @@ fi
# To ensure that runtime code for CET is compiled in, add in D version flags.
-if test "$enable_cet" = yes; then
+if test x$enable_cet = xyes; then :
+
CET_DFLAGS="$CET_FLAGS -fversion=CET"
+ DCFG_ENABLE_CET=true
+
+else
+
+ CET_DFLAGS=
+ DCFG_ENABLE_CET=false
fi
+
+
# This should be inherited in the recursive make, but ensure it is defined.
test "$AR" || AR=ar
@@ -11744,7 +11754,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11747 "configure"
+#line 11757 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11850,7 +11860,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11853 "configure"
+#line 11863 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libphobos/configure.ac b/libphobos/configure.ac
index 60aee3f..2d51e46 100644
--- a/libphobos/configure.ac
+++ b/libphobos/configure.ac
@@ -69,10 +69,15 @@ AC_PROG_MAKE_SET
GCC_CET_FLAGS(CET_FLAGS)
AC_SUBST(CET_FLAGS)
# To ensure that runtime code for CET is compiled in, add in D version flags.
-if test "$enable_cet" = yes; then
+AS_IF([test x$enable_cet = xyes], [
CET_DFLAGS="$CET_FLAGS -fversion=CET"
- AC_SUBST(CET_DFLAGS)
-fi
+ DCFG_ENABLE_CET=true
+], [
+ CET_DFLAGS=
+ DCFG_ENABLE_CET=false
+])
+AC_SUBST(CET_DFLAGS)
+AC_SUBST(DCFG_ENABLE_CET)
# This should be inherited in the recursive make, but ensure it is defined.
test "$AR" || AR=ar
diff --git a/libphobos/libdruntime/MERGE b/libphobos/libdruntime/MERGE
index 6b65a44..7162844 100644
--- a/libphobos/libdruntime/MERGE
+++ b/libphobos/libdruntime/MERGE
@@ -1,4 +1,4 @@
-d37ef985a97eb446371ab4b2315a52b87233fbf3
+0fe7974cf53b75db59461de2a3d6e53ce933d297
The first line of this file holds the git revision number of the last
merge done from the dlang/druntime repository.
diff --git a/libphobos/libdruntime/Makefile.in b/libphobos/libdruntime/Makefile.in
index 0b89514..99ee8b9 100644
--- a/libphobos/libdruntime/Makefile.in
+++ b/libphobos/libdruntime/Makefile.in
@@ -577,6 +577,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
DCFG_DLPI_TLS_MODID = @DCFG_DLPI_TLS_MODID@
+DCFG_ENABLE_CET = @DCFG_ENABLE_CET@
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
diff --git a/libphobos/libdruntime/core/sys/posix/ucontext.d b/libphobos/libdruntime/core/sys/posix/ucontext.d
index 49a7c3e..2e518ae 100644
--- a/libphobos/libdruntime/core/sys/posix/ucontext.d
+++ b/libphobos/libdruntime/core/sys/posix/ucontext.d
@@ -114,7 +114,7 @@ version (CRuntime_Glibc)
enum NGREG = 23;
- alias c_long greg_t;
+ alias long greg_t;
alias greg_t[NGREG] gregset_t;
alias _libc_fpstate* fpregset_t;
}
@@ -123,7 +123,7 @@ version (CRuntime_Glibc)
{
gregset_t gregs;
fpregset_t fpregs;
- c_ulong[8] __reserved1;
+ ulong[8] __reserved1;
}
struct ucontext_t
@@ -134,6 +134,7 @@ version (CRuntime_Glibc)
mcontext_t uc_mcontext;
sigset_t uc_sigmask;
_libc_fpstate __fpregs_mem;
+ ulong[4] __ssp;
}
}
else version (X86)
@@ -205,6 +206,7 @@ version (CRuntime_Glibc)
mcontext_t uc_mcontext;
sigset_t uc_sigmask;
_libc_fpstate __fpregs_mem;
+ c_ulong[4] __ssp;
}
}
else version (HPPA)
diff --git a/libphobos/libdruntime/core/thread.d b/libphobos/libdruntime/core/thread.d
index eaf088d..7506a8b 100644
--- a/libphobos/libdruntime/core/thread.d
+++ b/libphobos/libdruntime/core/thread.d
@@ -52,6 +52,7 @@ version (Solaris)
version (GNU)
{
import gcc.builtins;
+ import gcc.config;
version (GNU_StackGrowsDown)
version = StackGrowsDown;
}
@@ -5123,6 +5124,15 @@ private:
ucontext_t m_utxt = void;
ucontext_t* m_ucur = null;
}
+ else static if (GNU_Enable_CET)
+ {
+ // When libphobos was built with --enable-cet, these fields need to
+ // always be present in the Fiber class layout.
+ import core.sys.posix.ucontext;
+ static ucontext_t sm_utxt = void;
+ ucontext_t m_utxt = void;
+ ucontext_t* m_ucur = null;
+ }
private:
diff --git a/libphobos/libdruntime/gcc/config.d.in b/libphobos/libdruntime/gcc/config.d.in
index 6301aaf..9ac7d05 100644
--- a/libphobos/libdruntime/gcc/config.d.in
+++ b/libphobos/libdruntime/gcc/config.d.in
@@ -49,3 +49,6 @@ enum GNU_Have_LibAtomic = @DCFG_HAVE_LIBATOMIC@;
// Do we have qsort_r function
enum Have_Qsort_R = @DCFG_HAVE_QSORT_R@;
+
+// Whether libphobos been configured with --enable-cet.
+enum GNU_Enable_CET = @DCFG_ENABLE_CET@;
diff --git a/libphobos/src/Makefile.in b/libphobos/src/Makefile.in
index 4a0612a..2e72178 100644
--- a/libphobos/src/Makefile.in
+++ b/libphobos/src/Makefile.in
@@ -333,6 +333,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
DCFG_DLPI_TLS_MODID = @DCFG_DLPI_TLS_MODID@
+DCFG_ENABLE_CET = @DCFG_ENABLE_CET@
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@
diff --git a/libphobos/testsuite/Makefile.in b/libphobos/testsuite/Makefile.in
index 2f6911d..c38a468 100644
--- a/libphobos/testsuite/Makefile.in
+++ b/libphobos/testsuite/Makefile.in
@@ -161,6 +161,7 @@ CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DCFG_ARM_EABI_UNWINDER = @DCFG_ARM_EABI_UNWINDER@
DCFG_DLPI_TLS_MODID = @DCFG_DLPI_TLS_MODID@
+DCFG_ENABLE_CET = @DCFG_ENABLE_CET@
DCFG_HAVE_64BIT_ATOMICS = @DCFG_HAVE_64BIT_ATOMICS@
DCFG_HAVE_ATOMIC_BUILTINS = @DCFG_HAVE_ATOMIC_BUILTINS@
DCFG_HAVE_LIBATOMIC = @DCFG_HAVE_LIBATOMIC@