summaryrefslogtreecommitdiffstats
path: root/gnu/lib
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-05-24 19:38:18 +0000
committerpeter <peter@FreeBSD.org>2003-05-24 19:38:18 +0000
commitb5e718b1432fba45f848c4e5a660f18e4780fea5 (patch)
tree50704c711ace45ec6db591b2ea77b5c286ddaf88 /gnu/lib
parent86c9a79b3bd7cb961c9e00f3ea9f7cb5973164db (diff)
downloadFreeBSD-src-b5e718b1432fba45f848c4e5a660f18e4780fea5.zip
FreeBSD-src-b5e718b1432fba45f848c4e5a660f18e4780fea5.tar.gz
libstdc++.so breaks on amd64 due to bogons in our build, so prevent the
shared library being built for amd64. The problem is that libstdc++.so is produced with 'cc -shared'. This has an internal -lgcc, which is not PIC. libstdc++.so uses exceptions and the dwarf2 unwinder, which are in libgcc.a. As a result, non-PIC code gets pulled into libstdc++.so. This is fatal on amd64 when certain relocation types cannot be used in PIC mode. The official FSF solution to this is to have libgcc.so with internal ELF symbol versioning to solve the ABI problem, but I dont want to fight that battle yet. I tried making libgcc_pic.a (which worked fine), but thats not something for the 11th hour before a release. Approved by: re (amd64 "safe" stuff)
Diffstat (limited to 'gnu/lib')
-rw-r--r--gnu/lib/libstdc++/Makefile5
1 files changed, 5 insertions, 0 deletions
diff --git a/gnu/lib/libstdc++/Makefile b/gnu/lib/libstdc++/Makefile
index e885364..057339c 100644
--- a/gnu/lib/libstdc++/Makefile
+++ b/gnu/lib/libstdc++/Makefile
@@ -8,6 +8,11 @@ SUPDIR= ${SRCDIR}/libsupc++
${SRCDIR}/config/locale/generic ${SRCDIR} ${SRCDIR}/std \
${SUPDIR} ${GCCDIR}
+.if ${MACHINE_ARCH} == "amd64"
+NOPIC= broken # need libgcc.so or libgcc_pic.a
+NOSHARED= broken
+.endif
+
#SUBDIR= doc
LIB= stdc++
OpenPOWER on IntegriCloud