Commit 81336e47 authored by brooks's avatar brooks
Browse files

In preparation for updating llvm and clang to 3.2, create temporary

ports of 3.1 so ports that don't yet work with 3.2 continue to work.
parent 8b093c47
......@@ -1122,6 +1122,7 @@
SUBDIR += llvm
SUBDIR += llvm-devel
SUBDIR += llvm29
SUBDIR += llvm31
SUBDIR += lmdbg
SUBDIR += lndir
SUBDIR += lockfree-malloc
......
# New ports collection makefile for: llvm
# Date created: 20 Nov 2005
# Whom: Hye-Shik Chang
#
# $FreeBSD$
#
PORTNAME= llvm31
PORTVERSION= 3.1
CATEGORIES= devel lang
MASTER_SITES= http://llvm.org/releases/${PORTVERSION}/
DISTNAME= llvm-${PORTVERSION}.src
MAINTAINER= brooks@FreeBSD.org
COMMENT= Low Level Virtual Machine
LIB_DEPENDS= execinfo:${PORTSDIR}/devel/libexecinfo
.if defined(PACKAGE_BUILDING) || defined(MAINTAINER_MODE)
BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash
.endif
.if defined(MAINTAINER_MODE)
BUILD_DEPENDS+= f2c:${PORTSDIR}/lang/f2c
.endif
CONFLICTS= llvm-[3]* llvm-devel-[23]* llvm29-*
GNU_CONFIGURE= yes
USE_GCC= 4.2+
USE_GMAKE= yes
USE_LDCONFIG= yes
USE_PERL5= yes
USE_PYTHON_BUILD= yes
MAKE_JOBS_SAFE= yes
# Suggested tweaks from http://llvm.org/docs/Packaging.html
CONFIGURE_ARGS+= --enable-shared
MAKE_ARGS+= REQUIRES_RTTI=1
LIBNAME= libLLVM-${DISTVERSION:C/\.r[0-9]*//}.so
CONFIGURE_ARGS+= --enable-bindings=none
OPTIONS_DEFINE= ASSERTS DOCS LTOPLUGIN
ASSERTS_DESC= Enable assertions (thread unsafe)
LTOPLUGIN_DESC= Build LTO plugin (requires gold)
MAN1= bugpoint.1 lit.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
llvm-bcanalyzer.1 llvm-config.1 llvm-cov.1 llvm-diff.1 \
llvm-dis.1 llvm-extract.1 llvm-ld.1 llvm-link.1 llvm-nm.1 \
llvm-prof.1 llvm-ranlib.1 llvm-stress.1 opt.1 tblgen.1
PLIST_SUB+= PORTVERSION=${PORTVERSION}
.include <bsd.port.options.mk>
.if defined(MAINTAINER_MODE)
CONFIGURE_ARGS+= --with-f2c=${LOCALBASE}
.else
CONFIGURE_ARGS+= --enable-optimized
.endif
.if ${PORT_OPTIONS:MDOCS}
CONFIGURE_ARGS+= --enable-docs
.else
CONFIGURE_ARGS+= --disable-docs
.endif
.if ${PORT_OPTIONS:MASSERTS}
CONFIGURE_ARGS+= --enable-assertions
.else
CONFIGURE_ARGS+= --disable-assertions
.endif
.if ${PORT_OPTIONS:MLTOPLUGIN}
BUILD_DEPENDS+= ld.gold:${PORTSDIR}/devel/binutils
RUN_DEPENDS+= ld.gold:${PORTSDIR}/devel/binutils
CONFIGURE_ARGS+= --with-binutils-include=${LOCALBASE}/include
PLIST_FILES+= lib/LLVMgold.so
.endif
.include <bsd.port.pre.mk>
.if ${ARCH} == "arm"
BROKEN= Does not compile on arm
.elif ${ARCH} == "sparc64"
BROKEN= does not compile on sparc64
.endif
.if ${ARCH} == "amd64" || ${ARCH} == "ia64"
CONFIGURE_ARGS+= --enable-pic --with-pic
.endif
.if ${ARCH} == "i386"
CONFIGURE_ARGS+= --with-optimize-option=-O2
.endif
post-patch:
${REINPLACE_CMD} -e 's|\(PROJ_docsdir.*:=\).*$$|\1${DOCSDIR}|g' \
${WRKSRC}/Makefile.config.in
${REINPLACE_CMD} -e 's|\(PROJ_mandir.*:=\).*$$|\1${MANPREFIX}/man|g' \
${WRKSRC}/Makefile.config.in
.if empty(PORT_OPTIONS:MDOCS)
post-build:
@cd ${WRKSRC}/docs/CommandGuide && ${GMAKE} ${MAN1}
.endif
post-install:
${MV} ${PREFIX}/lib/${LIBNAME} ${PREFIX}/lib/${LIBNAME}.0
${LN} -s ${LIBNAME}.0 ${PREFIX}/lib/${LIBNAME}
.if empty(PORT_OPTIONS:MDOCS)
.for man in ${MAN1}
@${INSTALL_MAN} ${WRKSRC}/docs/CommandGuide/${man} \
${MANPREFIX}/man/man1/
.endfor
.endif
TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${GMAKE} check-local-lit)'
regression-test: ${BUILD_COOKIE}
if [ `${ID} -u` = 0 ]; then \
${CHOWN} -R nobody ${WRKSRC}/test; \
su -m nobody -c ${TEST_CMD}; \
else \
${SH} -c ${TEST_CMD}; \
fi
PLIST_FILE_LIST= bin/bugpoint \
bin/llc \
bin/lli \
bin/llvm* \
bin/macho-dump \
bin/opt \
lib/BugpointPasses.so \
lib/LLVMHello.so \
lib/libLTO.* \
lib/libLLVM* \
lib/libprofile_rt.a \
lib/libprofile_rt.so
PLIST_DIR_LIST= include/llvm-c \
include/llvm
build-plist:
${RM} -f ${PLIST}
cd ${PREFIX} && \
(ls ${PLIST_FILE_LIST}; ${FIND} ${PLIST_DIR_LIST} -type f) | \
${SED} -e 's|${PORTVERSION}|%%PORTVERSION%%|' | \
${SORT} >> ${PLIST}
${FIND} ${DOCSDIR} -type f | \
${SED} -e 's|${DOCSDIR}|%%PORTDOCS%%%%DOCSDIR%%|' | \
${SORT} >> ${PLIST}
cd ${PREFIX} && \
${FIND} ${PLIST_DIR_LIST} -type d | \
${SORT} -r | ${SED} -e 's|^|@dirrm |' >> ${PLIST}
${FIND} ${DOCSDIR} -type d | ${SORT} -r | \
${SED} -e 's|${DOCSDIR}|%%DOCSDIR%%|' \
-e 's|^|%%PORTDOCS%%@dirrm |' >> ${PLIST}
.include <bsd.port.post.mk>
SHA256 (llvm-3.1.src.tar.gz) = 1ea05135197b5400c1f88d00ff280d775ce778f8f9ea042e25a1e1e734a4b9ab
SIZE (llvm-3.1.src.tar.gz) = 11077429
$FreeBSD$
--- utils/llvm-build/llvmbuild/main.py.orig
+++ utils/llvm-build/llvmbuild/main.py
@@ -633,7 +633,13 @@
# We handle a few special cases of target names here for historical
# reasons, as these are the names configure currently comes up with.
- native_target_name = { 'x86' : 'X86',
+ native_target_name = { 'amd64' : 'X86',
+ 'arm' : 'ARM',
+ 'i386' : 'X86',
+ 'mips' : 'Mips',
+ 'powerpc' : 'PowerPC',
+ 'sparc64' : 'Sparc',
+ 'x86' : 'X86',
'x86_64' : 'X86',
'Unknown' : None }.get(opts.native_target,
opts.native_target)
Low Level Virtual Machine (LLVM) is:
- A compilation strategy designed to enable effective program
optimization across the entire lifetime of a program.
- A virtual instruction set.
- A compiler infrastructure.
- LLVM does not imply things that you would expect from a high-level
virtual machine. It does not require garbage collection or run-time
code generation.
WWW: http://llvm.org/
This diff is collapsed.
......@@ -31,6 +31,7 @@
SUBDIR += cint
SUBDIR += clang
SUBDIR += clang-devel
SUBDIR += clang31
SUBDIR += clay
SUBDIR += clisp
SUBDIR += clojure
......
# New ports collection makefile for: clang
# Date created: 24 Oct 2009
# Whom: Brooks Davis
#
# $FreeBSD$
#
PORTNAME= clang31
PORTVERSION= 3.1
CATEGORIES= lang devel
MASTER_SITES= http://llvm.org/releases/${PORTVERSION}/
DISTNAME= clang-${PORTVERSION}.src
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
${LLVM_SOURCE}
EXTRACT_ONLY= ${LLVM_SOURCE}
MAINTAINER= brooks@FreeBSD.org
COMMENT= C, Objective-C, and (alpha-quality) C++ compiler
CONFLICTS= clang-[23]* clang-devel-[23]*
CLANG_NAME= clang-${PORTVERSION}.src
CLANG_SOURCE= ${CLANG_NAME}${EXTRACT_SUFX}
LLVM_NAME= llvm-${PORTVERSION}.src
LLVM_SOURCE= ${LLVM_NAME}${EXTRACT_SUFX}
WRKSRC= ${WRKDIR}/${LLVM_NAME}
BUILD_WRKSRC= ${WRKSRC}/tools/clang
INSTALL_WRKSRC= ${WRKSRC}/tools/clang
BUILD_DEPENDS+= llvm31>=${PORTVERSION}:${PORTSDIR}/devel/llvm
RUN_DEPENDS+= llvm31>=${PORTVERSION}:${PORTSDIR}/devel/llvm
.if defined(PACKAGE_BUILDING) || defined(MAINTAINER_MODE)
BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
.endif
.if defined(MAINTAINER_MODE)
BUILD_DEPENDS+= f2c:${PORTSDIR}/lang/f2c
.endif
GNU_CONFIGURE= yes
USE_GCC= 4.2+
USE_GMAKE= yes
USE_LDCONFIG= yes
USE_PERL5= yes
USE_PYTHON= yes
MAKE_JOBS_SAFE= yes
MAKE_ARGS= CLANG_TBLGEN=${WRKSRC}/${RELTYPE}/bin/clang-tblgen \
LLVMIncDir=${LOCALBASE}/include \
LLVMToolDir=${LOCALBASE}/bin \
LLVMLibDir=${LOCALBASE}/lib
OPTIONS_DEFINE= ASSERTS DOCS
ASSERTS_DESC= Enable assertions (thread unsafe)
MAN1= clang.1
PLIST_SUB+= PORTVERSION=${PORTVERSION}
.include <bsd.port.options.mk>
.if defined(MAINTAINER_MODE)
CONFIGURE_ARGS+= --with-f2c=${LOCALBASE}
.else
CONFIGURE_ARGS+= --enable-optimized
.endif
.if ${PORT_OPTIONS:MDOCS}
CONFIGURE_ARGS+= --enable-docs
.else
CONFIGURE_ARGS+= --disable-docs
.endif
.if ${PORT_OPTIONS:MASSERTS}
CONFIGURE_ARGS+= --enable-assertions
RELTYPE= Release+Asserts
.else
CONFIGURE_ARGS+= --disable-assertions
RELTYPE= Release
.endif
.include <bsd.port.pre.mk>
.if ${ARCH} == "sparc64"
BROKEN= Does not compile on sparc64
.endif
post-extract:
cd ${WRKSRC}/tools && \
tar xf ${DISTDIR}/${CLANG_SOURCE} && \
${MV} ${CLANG_NAME} clang
post-patch:
${REINPLACE_CMD} -e 's|\(PROJ_docsdir.*:=\).*$$|\1${DOCSDIR}|g' \
${WRKSRC}/Makefile.config.in
${REINPLACE_CMD} -e 's|\(PROJ_mandir.*:=\).*$$|\1${MANPREFIX}/man|g' \
${WRKSRC}/Makefile.config.in
${REINPLACE_CMD} -e 's|/usr/bin/env perl|${PERL}|' \
-e 's|%%DATADIR%%|${DATADIR}|' \
${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/c++-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/scan-build
${REINPLACE_CMD} -e 's|/usr/bin/env python|${PYTHON_CMD}|' \
${WRKSRC}/tools/clang/tools/scan-view/scan-view
pre-build:
${LN} -sf ${LOCALBASE}/include/llvm/Intrinsics.gen ${WRKSRC}/include/llvm/
${MKDIR} ${WRKSRC}/${RELTYPE}/lib
${LN} -sf ${LOCALBASE}/lib/libLLVM-${PORTVERSION}.so ${WRKSRC}/${RELTYPE}/lib/
${LN} -sf ${LOCALBASE}/lib/libLLVMTableGen.a ${WRKSRC}/${RELTYPE}/lib/
${LN} -sf ${LOCALBASE}/lib/libLLVMSupport.a ${WRKSRC}/${RELTYPE}/lib/
cd ${WRKSRC}/utils/unittest && ${GMAKE}
.if empty(PORT_OPTIONS:MDOCS)
post-build:
@cd ${WRKSRC}/tools/clang/docs/tools && ${GMAKE} clang.1
.endif
post-install:
@${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/c++-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/scan-build \
${WRKSRC}/tools/clang/tools/scan-view/scan-view \
${PREFIX}/bin
@${MKDIR} ${PYTHONPREFIX_SITELIBDIR}
@${MKDIR} ${PYTHONPREFIX_SITELIBDIR}/Resources
@${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-view/*.py \
${PYTHONPREFIX_SITELIBDIR}
@${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-view/Resources/* \
${PYTHONPREFIX_SITELIBDIR}/Resources
@${MKDIR} ${DATADIR}
@${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/scanview.css ${DATADIR}
@${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js ${DATADIR}
.if empty(PORT_OPTIONS:MDOCS)
@${INSTALL_MAN} ${WRKSRC}/tools/clang/docs/tools/clang.1 \
${MANPREFIX}/man/man1/
.else
@${RMDIR} ${DOCSDIR}/html/img
.endif
TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} ${GMAKE} check)'
regression-test: ${BUILD_COOKIE}
if [ `${ID} -u` = 0 ]; then \
${CHOWN} -R nobody ${WRKSRC}/test; \
su -m nobody -c ${TEST_CMD}; \
else \
${SH} -c ${TEST_CMD}; \
fi
PLIST_FILE_LIST= bin/ccc-analyzer \
bin/c++-analyzer \
bin/clang \
bin/clang++ \
bin/clang-tblgen \
bin/c-index-test \
bin/scan-build \
bin/scan-view \
lib/libclang*
PLIST_DIR_LIST= include/clang \
include/clang-c \
lib/clang
PLIST_PYFILE_LIST= ScanView.py \
Reporter.py \
Resources/* \
startfile.py
PLIST_PYDIR_LIST= Resources
build-plist:
${RM} -f ${PLIST}
cd ${PREFIX} && \
(ls ${PLIST_FILE_LIST}; ${FIND} ${PLIST_DIR_LIST} -type f) | \
${SED} -e 's|${PORTVERSION}|%%PORTVERSION%%|' | ${SORT} >> ${PLIST}
${FIND} ${DATADIR} ${DOCSDIR} -type f | \
${SED} -e 's|${DATADIR}|%%DATADIR%%|' \
-e 's|${DOCSDIR}|%%PORTDOCS%%%%DOCSDIR%%|' | ${SORT} >> ${PLIST}
cd ${PYTHONPREFIX_SITELIBDIR} && \
ls ${PLIST_PYFILE_LIST} | ${SORT} | \
${SED} -e 's|^|%%PYTHON_SITELIBDIR%%/|' >> ${PLIST}
cd ${PREFIX} && \
${FIND} ${PLIST_DIR_LIST} -type d | \
${SED} -e 's|${PORTVERSION}|%%PORTVERSION%%|' | \
${SORT} -r | ${SED} -e 's|^|@dirrm |' >> ${PLIST}
cd ${PYTHONPREFIX_SITELIBDIR} && \
${FIND} ${PLIST_PYDIR_LIST} -type d | ${SORT} -r | \
${SED} -e 's|^|@dirrm %%PYTHON_SITELIBDIR%%/|' >> ${PLIST}
${FIND} ${DATADIR} ${DOCSDIR} -type d | ${SORT} -r | \
${SED} -e 's|${DATADIR}|@dirrm %%DATADIR%%|' \
-e 's|${DOCSDIR}|%%PORTDOCS%%@dirrm %%DOCSDIR%%|' >> ${PLIST}
.include <bsd.port.post.mk>
SHA256 (clang-3.1.src.tar.gz) = ff63e215dcd3e2838ffdea38502f8d35bab17e487f3c3799579961e452d5a786
SIZE (clang-3.1.src.tar.gz) = 8158418
SHA256 (llvm-3.1.src.tar.gz) = 1ea05135197b5400c1f88d00ff280d775ce778f8f9ea042e25a1e1e734a4b9ab
SIZE (llvm-3.1.src.tar.gz) = 11077429
$FreeBSD$
--- tools/clang/include/clang/Analysis/Analyses/FormatString.h.orig
+++ tools/clang/include/clang/Analysis/Analyses/FormatString.h
@@ -143,6 +143,10 @@
// ** Printf-specific **
+ // FreeBSD specific specifiers
+ bArg,
+ DArg,
+
// Objective-C specific specifiers.
ObjCObjArg, // '@'
ObjCBeg = ObjCObjArg, ObjCEnd = ObjCObjArg,
$FreeBSD$
--- tools/clang/lib/Analysis/PrintfFormatString.cpp.orig
+++ tools/clang/lib/Analysis/PrintfFormatString.cpp
@@ -192,11 +192,20 @@
case '@': k = ConversionSpecifier::ObjCObjArg; break;
// Glibc specific.
case 'm': k = ConversionSpecifier::PrintErrno; break;
+ // FreeBSD format extensions
+ case 'b': k = ConversionSpecifier::bArg; break; /* check for int and then char * */
+ case 'r': k = ConversionSpecifier::xArg; break;
+ case 'y': k = ConversionSpecifier::iArg; break;
+ case 'D': k = ConversionSpecifier::DArg; break; /* check for u_char * pointer and a char * string */
+
}
PrintfConversionSpecifier CS(conversionPosition, k);
FS.setConversionSpecifier(CS);
if (CS.consumesDataArgument() && !FS.usesPositionalArg())
FS.setArgIndex(argIndex++);
+ // FreeBSD extension
+ if (k == ConversionSpecifier::bArg || k == ConversionSpecifier::DArg)
+ argIndex++;
if (k == ConversionSpecifier::InvalidSpecifier) {
// Assume the conversion takes one argument.
$FreeBSD$
--- tools/clang/lib/Headers/Makefile.orig
+++ tools/clang/lib/Headers/Makefile
@@ -13,7 +13,7 @@
# FIXME: Get version from a common place.
HeaderDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/1.0/include
-HEADERS := $(notdir $(wildcard $(PROJ_SRC_DIR)/*.h))
+HEADERS := $(notdir $(wildcard $(PROJ_SRC_DIR)/*mm*.h))
OBJHEADERS := $(addprefix $(HeaderDir)/, $(HEADERS))
$FreeBSD$
--- tools/clang/lib/Sema/SemaChecking.cpp.orig
+++ tools/clang/lib/Sema/SemaChecking.cpp
@@ -1511,6 +1511,39 @@
CoveredArgs.set(argIndex);
}
+ // FreeBSD extensions
+ if (CS.getKind() == ConversionSpecifier::bArg || CS.getKind() == ConversionSpecifier::DArg) {
+ // claim the second argument
+ CoveredArgs.set(argIndex + 1);
+
+ // Now type check the data expression that matches the
+ // format specifier.
+ const Expr *Ex = getDataArg(argIndex);
+ QualType type = (CS.getKind() == ConversionSpecifier::bArg) ? S.Context.IntTy : S.Context.getPointerType(S.Context.UnsignedCharTy);
+ //const analyze_printf::ArgTypeResult &ATR = S.Context.IntTy;
+ const analyze_printf::ArgTypeResult &ATR = type;
+ if (ATR.isValid() && !ATR.matchesType(S.Context, Ex->getType()))
+ S.Diag(getLocationOfByte(CS.getStart()),
+ diag::warn_printf_conversion_argument_type_mismatch)
+ << ATR.getRepresentativeType(S.Context) << Ex->getType()
+ << getSpecifierRange(startSpecifier, specifierLen)
+ << Ex->getSourceRange();
+
+ // Now type check the data expression that matches the
+ // format specifier.
+ Ex = getDataArg(argIndex + 1);
+ const analyze_printf::ArgTypeResult &ATR2 = ArgTypeResult::CStrTy;
+ if (ATR2.isValid() && !ATR2.matchesType(S.Context, Ex->getType()))
+ S.Diag(getLocationOfByte(CS.getStart()),
+ diag::warn_printf_conversion_argument_type_mismatch)
+ << ATR2.getRepresentativeType(S.Context) << Ex->getType()
+ << getSpecifierRange(startSpecifier, specifierLen)
+ << Ex->getSourceRange();
+
+ return true;
+ }
+ // END OF FREEBSD EXTENSIONS
+
// Check for using an Objective-C specific conversion specifier
// in a non-ObjC literal.
if (!IsObjCLiteral && CS.isObjCArg()) {
$FreeBSD$
--- tools/clang/lib/Sema/SemaDeclCXX.cpp.orig
+++ tools/clang/lib/Sema/SemaDeclCXX.cpp
@@ -10795,14 +10795,23 @@
void Sema::MarkVirtualMembersReferenced(SourceLocation Loc,
const CXXRecordDecl *RD) {
- for (CXXRecordDecl::method_iterator i = RD->method_begin(),
- e = RD->method_end(); i != e; ++i) {
- CXXMethodDecl *MD = *i;
-
- // C++ [basic.def.odr]p2:
- // [...] A virtual member function is used if it is not pure. [...]
- if (MD->isVirtual() && !MD->isPure())
- MarkFunctionReferenced(Loc, MD);
+ // Mark all functions which will appear in RD's vtable as used.
+ CXXFinalOverriderMap FinalOverriders;
+ RD->getFinalOverriders(FinalOverriders);
+ for (CXXFinalOverriderMap::const_iterator I = FinalOverriders.begin(),
+ E = FinalOverriders.end();
+ I != E; ++I) {
+ for (OverridingMethods::const_iterator OI = I->second.begin(),
+ OE = I->second.end();
+ OI != OE; ++OI) {
+ assert(OI->second.size() > 0 && "no final overrider");
+ CXXMethodDecl *Overrider = OI->second.front().Method;
+
+ // C++ [basic.def.odr]p2:
+ // [...] A virtual member function is used if it is not pure. [...]
+ if (!Overrider->isPure())
+ MarkFunctionReferenced(Loc, Overrider);
+ }
}
// Only classes that have virtual bases need a VTT.
$FreeBSD$
--- tools/clang/tools/scan-build/scan-build.orig
+++ tools/clang/tools/scan-build/scan-build
@@ -423,7 +423,7 @@
my $Dir = shift;
- my $JS = Cwd::realpath("$RealBin/sorttable.js");
+ my $JS = Cwd::realpath("%%DATADIR%%/sorttable.js");
DieDiag("Cannot find 'sorttable.js'.\n")
if (! -r $JS);
@@ -433,7 +433,7 @@
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("%%DATADIR%%/scanview.css");
DieDiag("Cannot find 'scanview.css'.\n")
if (! -r $CSS);
$FreeBSD$
--- utils/llvm-build/llvmbuild/main.py.orig
+++ utils/llvm-build/llvmbuild/main.py
@@ -633,7 +633,13 @@
# We handle a few special cases of target names here for historical
# reasons, as these are the names configure currently comes up with.
- native_target_name = { 'x86' : 'X86',
+ native_target_name = { 'amd64' : 'X86',
+ 'arm' : 'ARM',
+ 'i386' : 'X86',
+ 'mips' : 'Mips',
+ 'powerpc' : 'PowerPC',
+ 'sparc64' : 'Sparc',
+ 'x86' : 'X86',
'x86_64' : 'X86',
'Unknown' : None }.get(opts.native_target,
opts.native_target)
The goal of the Clang project is to create a new C, C++, Objective C and