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