summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorrichard <richard@pkgsrc.org>2013-12-24 05:57:44 +0000
committerrichard <richard@pkgsrc.org>2013-12-24 05:57:44 +0000
commit747ef9d7c60221121fc960d8a20b1483886fac2f (patch)
tree179dfa1145862209ce7c3dc944ca9c1b9139092c /lang
parent0380fa2e61b0c64483820fe55c751be535937220 (diff)
downloadpkgsrc-747ef9d7c60221121fc960d8a20b1483886fac2f.tar.gz
To get a working compiler on SunOS, a number of hardcoded gcc/linker
related paths are replaced. http://article.gmane.org/gmane.comp.compilers.llvm.devel/63317 ok'd by wiz@
Diffstat (limited to 'lang')
-rw-r--r--lang/clang/Makefile44
1 files changed, 42 insertions, 2 deletions
diff --git a/lang/clang/Makefile b/lang/clang/Makefile
index ecf5295a3f9..76236c17e89 100644
--- a/lang/clang/Makefile
+++ b/lang/clang/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.22 2013/07/02 10:33:02 adam Exp $
+# $NetBSD: Makefile,v 1.23 2013/12/24 05:57:44 richard Exp $
DISTNAME= clang-3.3
CATEGORIES= lang
@@ -38,7 +38,47 @@ PLIST_SUBST+= SOEXT="dylib"
PLIST_SUBST+= SOEXT="so"
.endif
-CFLAGS.SunOS+= -mimpure-text
+.include "../../mk/compiler.mk"
+
+.if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
+# This should probably be in hacks, but since clang hardcodes gcc paths
+# put this here so it can be removed when clang matures.
+# cxa_finalize.o is no longer necessary with libc.so >= ILLUMOS_0.5
+TEST_ILLUMOS_3849!=\
+ if /usr/bin/elfdump -v /lib/libc.so |\
+ ${GREP} -q 'ILLUMOS_0.5' ; then \
+ ${ECHO} 1; \
+ else ${ECHO} 0; \
+ fi
+
+#doesn't seem to be needed anymore, but may be dependent on
+#a recent version of solaris (illumos) ld.
+#
+#CFLAGS.SunOS+= -mimpure-text
+
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths= Fixing absolute gcc paths for SunOS.
+SUBST_FILES.fix-paths= tools/clang/lib/Driver/Tools.cpp
+. if defined(_GCC_ARCHDIR)
+SUBST_SED.fix-paths= -e 's,/usr/gcc/4.5/lib/gcc/,${_GCC_ARCHDIR}/,g'
+. else
+LIBGCCDIR!= ${CC} -print-libgcc-file-name
+ARCHDIR:= ${LIBGCCDIR:H}
+SUBST_SED.fix-paths= -e 's,/usr/gcc/4.5/lib/gcc/,${ARCHDIR}/,g'
+. endif
+SUBST_SED.fix-paths+= -e '/^.*i386.*getVendorName.*$$/{N;d;}'
+SUBST_SED.fix-paths+= -e 's,/4.5.2/amd64/,amd64/,g'
+SUBST_SED.fix-paths+= -e 's,"as","gas",g'
+. if exists(/usr/bin/ld)
+SUBST_SED.fix-paths+= -e 's,getToolChain().GetProgramPath("ld"),"/usr/bin/ld",g'
+. else
+SUBST_SED.fix-paths+= -e 's,getToolChain().GetProgramPath("ld"),"/usr/ccs/bin/ld",g'
+. endif
+. if ${TEST_ILLUMOS_3849}
+SUBST_SED.fix-paths+= -e 's,^.*cxa_finalize.*$$, ; //cxa_finalize.o,g'
+. endif
+.endif
post-extract:
mv ${WRKDIR}/cfe-${PKGVERSION_NOREV}.src ${WRKSRC}/tools/clang