diff options
author | peter <peter@FreeBSD.org> | 2003-05-24 19:38:18 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2003-05-24 19:38:18 +0000 |
commit | b5e718b1432fba45f848c4e5a660f18e4780fea5 (patch) | |
tree | 50704c711ace45ec6db591b2ea77b5c286ddaf88 /gnu/lib/libstdc++ | |
parent | 86c9a79b3bd7cb961c9e00f3ea9f7cb5973164db (diff) | |
download | FreeBSD-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/libstdc++')
-rw-r--r-- | gnu/lib/libstdc++/Makefile | 5 |
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++ |