summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2016-03-27 00:37:54 +0000
committerdim <dim@FreeBSD.org>2016-03-27 00:37:54 +0000
commit6b368b3f0431a0c725668a6e97d8571dfad8132e (patch)
tree014aef060723b2c8e1f5a5f8a4ec00a059586fe2
parent0b3b29f07b2d3e0afbb4a7dd2c8697fc8b5d5c3a (diff)
downloadFreeBSD-src-6b368b3f0431a0c725668a6e97d8571dfad8132e.zip
FreeBSD-src-6b368b3f0431a0c725668a6e97d8571dfad8132e.tar.gz
Compile libcxxrt as C++11, since it is only really used in combination
with libc++, which is also C++11. Also change one _Static_assert (which is really C11) back into static_assert, like upstream. This should help when compiling libcxxrt with newer versions of gcc, which refuse to recognize any form of static assertions, if not compiling for C++11 or higher. While here, add -nostdinc++ to CFLAGS, to prevent picking up any C++ headers outside the source tree.
-rw-r--r--contrib/libcxxrt/guard.cc2
-rw-r--r--lib/libcxxrt/Makefile5
2 files changed, 5 insertions, 2 deletions
diff --git a/contrib/libcxxrt/guard.cc b/contrib/libcxxrt/guard.cc
index f1c4c69..34d294c 100644
--- a/contrib/libcxxrt/guard.cc
+++ b/contrib/libcxxrt/guard.cc
@@ -101,7 +101,7 @@ typedef struct {
uint32_t init_half;
uint32_t lock_half;
} guard_t;
-_Static_assert(sizeof(guard_t) == sizeof(uint64_t), "");
+static_assert(sizeof(guard_t) == sizeof(uint64_t), "");
static const uint32_t LOCKED = 1;
static const uint32_t INITIALISED = static_cast<guard_lock_t>(1) << 24;
# endif
diff --git a/lib/libcxxrt/Makefile b/lib/libcxxrt/Makefile
index d197361..b580618 100644
--- a/lib/libcxxrt/Makefile
+++ b/lib/libcxxrt/Makefile
@@ -20,7 +20,10 @@ SRCS+= libelftc_dem_gnu3.c\
guard.cc
WARNS= 0
-CFLAGS+= -I${SRCDIR}
+CFLAGS+= -I${SRCDIR} -nostdinc++
+.if empty(CXXFLAGS:M-std=*)
+CXXFLAGS+= -std=c++11
+.endif
VERSION_MAP= ${.CURDIR}/Version.map
.include <bsd.lib.mk>
OpenPOWER on IntegriCloud