summaryrefslogtreecommitdiffstats
path: root/gnu/lib
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2013-03-22 21:50:32 +0000
committercognet <cognet@FreeBSD.org>2013-03-22 21:50:32 +0000
commit45f62f67d30e33d8fa4d0e6d3a3a0ff5a231f18f (patch)
treed32f5be75ffedcf8bf0ee71af6ca49a8fa02a3e9 /gnu/lib
parentbe2f56b8d7746e3a931d3f607c34cf88e72f901b (diff)
downloadFreeBSD-src-45f62f67d30e33d8fa4d0e6d3a3a0ff5a231f18f.zip
FreeBSD-src-45f62f67d30e33d8fa4d0e6d3a3a0ff5a231f18f.tar.gz
As it's done for libstdc++, use SJLJ-based exceptions on arm when we're not
using EABI, and use unwind-arm.h instead of unwind-generic.h when using EABI.
Diffstat (limited to 'gnu/lib')
-rw-r--r--gnu/lib/libsupc++/Makefile11
1 files changed, 11 insertions, 0 deletions
diff --git a/gnu/lib/libsupc++/Makefile b/gnu/lib/libsupc++/Makefile
index 9068615..ee6c601 100644
--- a/gnu/lib/libsupc++/Makefile
+++ b/gnu/lib/libsupc++/Makefile
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <bsd.own.mk>
+
GCCVER= 4.2
GCCDIR= ${.CURDIR}/../../../contrib/gcc
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
@@ -20,6 +22,9 @@ SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
SRCS+= cp-demangle.c
CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
+.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} == "no"
+CFLAGS+= -D_GLIBCXX_SJLJ_EXCEPTIONS=1
+.endif
CFLAGS+= -I${GCCLIB}/include -I${SRCDIR} -I${GCCDIR}
CFLAGS+= -I${.CURDIR}/../libstdc++ -I.
CFLAGS+= -frandom-seed=RepeatabilityConsideredGood
@@ -30,7 +35,13 @@ HDRS= exception new typeinfo cxxabi.h exception_defines.h
INCS= ${HDRS:S;^;${SRCDIR}/;}
INCSDIR=${INCLUDEDIR}/c++/${GCCVER}
+.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
+unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
+.else
unwind.h: ${GCCDIR}/unwind-generic.h
+.endif
+
+unwind.h:
ln -sf ${.ALLSRC} ${.TARGET}
SRCS+= unwind.h
OpenPOWER on IntegriCloud