jsg asked about the gcc4 frontend for llvm. inline is a diff to take ports/devel/llvm to 2.5 release (note that this loses clang for now). when you've switched to this version of llvm, there's a preliminary port of the gcc4.2 frontend attached to play with. it's Makefile/distinfo only at this point.
it's still building here on i386, it may still error out in
the build (so it's obviously totally untested at runtime) but
it's got quite far already, so I thought I'd send it over
before I sleep.
llvm-gcc4 will almost certainly fail on amd64 at the moment.
many parts cribbed from bro...@freebsd's port and lang/gcc/4.2.
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.9
diff -N -u -p Makefile
--- Makefile 17 May 2009 09:40:53 -0000 1.9
+++ Makefile 3 Jun 2009 02:44:20 -0000
@@ -2,18 +2,17 @@
COMMENT = Low Level Virtual Machine (LLVM) compiler infrastructure
-SVN_SNAPDATE = 2009-02-05
-SNAPDATE = ${SVN_SNAPDATE:S/-//g}
-V = 2.5.snap${SNAPDATE}
+V = 2.5
DISTNAME = llvm-$V
-PKGNAME = ${DISTNAME}p1
-EXTRACT_SUFX = .tar.bz2
CATEGORIES = devel
HOMEPAGE = http://www.llvm.org/
-ONLY_FOR_ARCHS =i386 amd64 powerpc
+# has built on these
+ONLY_FOR_ARCHS =i386 amd64 powerpc hppa
+# definitely doesn't work yet
+NOT_FOR_ARCHS = sparc64
# BSD
PERMIT_PACKAGE_CDROM = Yes
@@ -23,11 +22,8 @@ PERMIT_DISTFILES_FTP = Yes
WANTLIB = c m pthread
-# llvm+clang repackaged from SVN.
-MASTER_SITES = http://spacehopper.org/mirrors/
-#MASTER_SITES = ${MASTER_SITE_FREEBSD_LOCAL:=brooks/}
+MASTER_SITES = http://llvm.org/releases/$V/
-# also supports cmake, but requires v2.6.1
MODULES = gcc4 lang/python
MODGCC4_LANGS = c c++
MODGCC4_ARCHES =*
@@ -56,9 +52,6 @@ MODGNU_CONFIG_GUESS_DIRS = ${WRKSRC}/autoconf
pre-configure:
@perl -pi -e s,-lpthread,-pthread,g ${WRKSRC}/configure
- @perl -pi -e 's,#!/usr/bin/env python,#!${MODPY_BIN},' \
- ${WRKSRC}/tools/clang/tools/ccc/ccc
- @${SUBST_CMD} ${WRKSRC}/tools/clang/utils/scan-build
@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
# XXX googletest doesn't build
@@ -66,11 +59,5 @@ pre-configure:
post-install:
@${INSTALL_DATA_DIR} ${PREFIX}/share/llvm
@${INSTALL_DATA_DIR} ${WRKINST}/${MODPY_SITEPKG}
- @${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/utils/ccc-analyzer \
- ${WRKSRC}/tools/clang/utils/scan-build ${PREFIX}/bin
- @${INSTALL_DATA} ${WRKSRC}/tools/clang/utils/sorttable.js
${PREFIX}/share/llvm
- @${INSTALL_DATA} ${WRKSRC}/tools/clang/utils/scanview.css
${PREFIX}/share/llvm
- @mv ${PREFIX}/bin/ccclib ${WRKINST}/${MODPY_SITEPKG}/ccclib
- @chown -R ${SHAREOWN}:${SHAREGRP} ${WRKINST}/${MODPY_SITEPKG}/ccclib
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.2
diff -N -u -p distinfo
--- distinfo 8 Feb 2009 22:55:43 -0000 1.2
+++ distinfo 3 Jun 2009 02:44:20 -0000
@@ -1,5 +1,5 @@
-MD5 (llvm-2.5.snap20090205.tar.bz2) = 4smvw+BRJf1e6OCfdUi/Aw==
-RMD160 (llvm-2.5.snap20090205.tar.bz2) = LLNFGe/+cpt0auqhhgmNC4opahE=
-SHA1 (llvm-2.5.snap20090205.tar.bz2) = qglqHRg7Ff+xVXQ0SJCjABRX024=
-SHA256 (llvm-2.5.snap20090205.tar.bz2) =
pHuAooPhh87QpHPMiv+tClCAnAqWdG0zQHK2boS+6ac=
-SIZE (llvm-2.5.snap20090205.tar.bz2) = 7011566
+MD5 (llvm-2.5.tar.gz) = Vd8uqGZcgJStLvhRh7n8dA==
+RMD160 (llvm-2.5.tar.gz) = LJBLjQvM5WXtERFLkhMhoEBOI/4=
+SHA1 (llvm-2.5.tar.gz) = Z/S6zp5kzDklVYOqg3Rw2bneCqU=
+SHA256 (llvm-2.5.tar.gz) = jz1p5jvF0e4sLuSf8HzLfgcAcKDpN4E9KmF5ueLhc+0=
+SIZE (llvm-2.5.tar.gz) = 6660609
Index: patches/patch-tools_clang_lib_Lex_Lexer_cpp
===================================================================
RCS file: /cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Lex_Lexer_cpp,v
retrieving revision 1.2
diff -N -u -p patches/patch-tools_clang_lib_Lex_Lexer_cpp
--- patches/patch-tools_clang_lib_Lex_Lexer_cpp 8 Feb 2009 22:55:43 -0000
1.2
+++ /dev/null 1 Nov 2007 14:18:14 -0000
@@ -1,11 +0,0 @@
-$OpenBSD: patch-tools_clang_lib_Lex_Lexer_cpp,v 1.2 2009/02/08 22:55:43 sthen
Exp $
---- tools/clang/lib/Lex/Lexer.cpp.orig Thu Feb 5 13:23:01 2009
-+++ tools/clang/lib/Lex/Lexer.cpp Thu Feb 5 16:07:01 2009
-@@ -975,6 +975,7 @@ static bool isEndOfBlockCommentWithEscapedNewLine(cons
- return true;
- }
-
-+#undef __SSE2__
- #ifdef __SSE2__
- #include <emmintrin.h>
- #elif __ALTIVEC__
Index: patches/patch-tools_clang_utils_scan-build
===================================================================
RCS file: /cvs/ports/devel/llvm/patches/patch-tools_clang_utils_scan-build,v
retrieving revision 1.2
diff -N -u -p patches/patch-tools_clang_utils_scan-build
--- patches/patch-tools_clang_utils_scan-build 8 Feb 2009 22:55:43 -0000
1.2
+++ /dev/null 1 Nov 2007 14:18:14 -0000
@@ -1,21 +0,0 @@
-$OpenBSD: patch-tools_clang_utils_scan-build,v 1.2 2009/02/08 22:55:43 sthen
Exp $
---- tools/clang/utils/scan-build.orig Thu Feb 5 13:22:38 2009
-+++ tools/clang/utils/scan-build Thu Feb 5 16:07:01 2009
-@@ -402,7 +402,7 @@ sub CopyFiles {
-
- my $Dir = shift;
-
-- my $JS = Cwd::realpath("$RealBin/sorttable.js");
-+ my $JS = Cwd::realpath("${LOCALBASE}/share/llvm/sorttable.js");
-
- DieDiag("Cannot find 'sorttable.js'.\n")
- if (! -r $JS);
-@@ -412,7 +412,7 @@ sub CopyFiles {
- DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n")
- if (! -r "$Dir/sorttable.js");
-
-- my $CSS = Cwd::realpath("$RealBin/scanview.css");
-+ my $CSS = Cwd::realpath("${LOCALBASE}/share/llvm/scanview.css");
-
- DieDiag("Cannot find 'scanview.css'.\n")
- if (! -r $CSS);
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/llvm/pkg/PLIST,v
retrieving revision 1.4
diff -N -u -p pkg/PLIST
--- pkg/PLIST 8 Feb 2009 22:55:43 -0000 1.4
+++ pkg/PLIST 3 Jun 2009 02:44:20 -0000
@@ -1,20 +1,5 @@
@comment $OpenBSD: PLIST,v 1.4 2009/02/08 22:55:43 sthen Exp $
-Headers/
-...@comment Headers/.dir
-Headers/emmintrin.h
-Headers/float.h
-Headers/iso646.h
-Headers/mm_malloc.h
-Headers/mmintrin.h
-Headers/stdarg.h
-Headers/stdbool.h
-Headers/stddef.h
-...@comment bin/.dir
-Headers/xmmintrin.h
@bin bin/bugpoint
-bin/ccc
-bin/ccc-analyzer
-...@bin bin/clang
bin/gccas
bin/gccld
@bin bin/llc
@@ -34,7 +19,6 @@ bin/llvm-config
@bin bin/llvm-stub
@bin bin/llvmc
@bin bin/opt
-bin/scan-build
include/llvm/
include/llvm-c/
include/llvm-c/Analysis.h
@@ -345,7 +329,6 @@ include/llvm/Target/TargetFrameInfo.h
include/llvm/Target/TargetInstrDesc.h
include/llvm/Target/TargetInstrInfo.h
include/llvm/Target/TargetInstrItineraries.h
-include/llvm/Target/TargetIntrinsicInfo.h
include/llvm/Target/TargetJITInfo.h
include/llvm/Target/TargetLowering.h
include/llvm/Target/TargetMachOWriterInfo.h
@@ -380,7 +363,6 @@ include/llvm/Use.h
include/llvm/User.h
include/llvm/Value.h
include/llvm/ValueSymbolTable.h
-...@comment lib/.dir
lib/LLVMARMAsmPrinter.o
lib/LLVMARMCodeGen.o
lib/LLVMAlphaAsmPrinter.o
@@ -422,38 +404,8 @@ lib/libLLVMTarget.a
lib/libLLVMTransformUtils.a
lib/libLLVMipa.a
lib/libLLVMipo.a
-lib/libclangAST.a
-lib/libclangAnalysis.a
-lib/libclangBasic.a
-lib/libclangCodeGen.a
-lib/libclangDriver.a
-lib/libclangLex.a
-lib/libclangParse.a
-lib/libclangRewrite.a
-lib/libclangSema.a
lib/plugin_llvmc_Base.o
lib/plugin_llvmc_Clang.o
-lib/python${MODPY_VERSION}/site-packages/ccclib/
-lib/python${MODPY_VERSION}/site-packages/ccclib/Arguments.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Arguments.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Driver.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Driver.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/HostInfo.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/HostInfo.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Jobs.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Jobs.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Phases.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Phases.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/ToolChain.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/ToolChain.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Tools.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Tools.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Types.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Types.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/Util.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/Util.pyc
-lib/python${MODPY_VERSION}/site-packages/ccclib/__init__.py
-lib/python${MODPY_VERSION}/site-packages/ccclib/__init__.pyc
share/doc/llvm/
share/doc/llvm/html/
share/doc/llvm/html.tar.gz
@@ -502,7 +454,6 @@ share/doc/llvm/html/GettingStarted.html
share/doc/llvm/html/GettingStartedVS.html
share/doc/llvm/html/HowToReleaseLLVM.html
share/doc/llvm/html/HowToSubmitABug.html
-share/doc/llvm/html/InternalsManual.html
share/doc/llvm/html/LangRef.html
share/doc/llvm/html/Lexicon.html
share/doc/llvm/html/LinkTimeOptimization.html
@@ -568,8 +519,6 @@ share/doc/llvm/ps/llvmgxx.ps
share/doc/llvm/ps/opt.ps
share/doc/llvm/ps/tblgen.ps
share/llvm/
-share/llvm/scanview.css
-share/llvm/sorttable.js
share/man/
share/man/man1/
@man share/man/man1/bugpoint.1
llvm-gcc4.tgz
Description: application/tar-gz
