svn commit: r193344 - in
projects/clangbsd/contrib/llvm/tools/clang: lib/Driver
lib/Frontend tools/clang-cc
Ed Schouten
ed at FreeBSD.org
Tue Jun 2 20:40:24 UTC 2009
Author: ed
Date: Tue Jun 2 20:40:23 2009
New Revision: 193344
URL: http://svn.freebsd.org/changeset/base/193344
Log:
Add local modifications to the Clang sources.
- Custom include paths. Use proper relative pathnames, to prevent stock
header files from being included during buildworld, etc.
- Experimental ARM modifications. I haven't submitted these yet, because
I haven't tested them enough.
Modified:
projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
projects/clangbsd/contrib/llvm/tools/clang/tools/clang-cc/clang-cc.cpp
Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Driver.cpp Tue Jun 2 20:35:15 2009 (r193343)
+++ projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Driver.cpp Tue Jun 2 20:40:23 2009 (r193344)
@@ -53,6 +53,9 @@ Driver::Driver(const char *_Name, const
// Only use clang on i386 and x86_64 by default.
CCCClangArchs.insert("i386");
CCCClangArchs.insert("x86_64");
+
+ // XXX: Enable ARM
+ CCCClangArchs.insert("arm");
}
Driver::~Driver() {
Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Tue Jun 2 20:35:15 2009 (r193343)
+++ projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Tue Jun 2 20:40:23 2009 (r193344)
@@ -352,7 +352,7 @@ void Clang::ConstructJob(Compilation &C,
if (getToolChain().getArchName() == "x86_64")
CmdArgs.push_back("--mcpu=x86-64");
else if (getToolChain().getArchName() == "i386")
- CmdArgs.push_back("--mcpu=pentium4");
+ CmdArgs.push_back("--mcpu=i486");
}
}
@@ -1734,6 +1734,8 @@ void freebsd::Assemble::ConstructJob(Com
// instruct as in the base system to assemble 32-bit code.
if (getToolChain().getArchName() == "i386")
CmdArgs.push_back("--32");
+ else if (getToolChain().getArchName() == "arm")
+ CmdArgs.push_back("-mfpu=softvfp");
Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,
options::OPT_Xassembler);
Modified: projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Tue Jun 2 20:35:15 2009 (r193343)
+++ projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Tue Jun 2 20:40:23 2009 (r193344)
@@ -106,7 +106,11 @@ void InitHeaderSearch::AddDefaultSystemI
// FIXME: temporary hack: hard-coded paths.
// FIXME: get these from the target?
-#ifdef LLVM_ON_WIN32
+#if defined(LLVM_ON_FREEBSD)
+ if (Lang.CPlusPlus)
+ AddPath("/usr/include/c++/4.2", System, true, false, false);
+ AddPath("/usr/include", System, false, false, false);
+#elif defined(LLVM_ON_WIN32)
if (Lang.CPlusPlus) {
// Mingw32 GCC version 4
AddPath("c:/mingw/lib/gcc/mingw32/4.3.0/include/c++",
Modified: projects/clangbsd/contrib/llvm/tools/clang/tools/clang-cc/clang-cc.cpp
==============================================================================
--- projects/clangbsd/contrib/llvm/tools/clang/tools/clang-cc/clang-cc.cpp Tue Jun 2 20:35:15 2009 (r193343)
+++ projects/clangbsd/contrib/llvm/tools/clang/tools/clang-cc/clang-cc.cpp Tue Jun 2 20:40:23 2009 (r193344)
@@ -1214,15 +1214,36 @@ void InitializeIncludePaths(const char *
MainExecutablePath.eraseComponent(); // Remove /bin from foo/bin
// Get foo/lib/clang/<version>/include
+#ifdef LLVM_ON_FREEBSD
+ MainExecutablePath.appendComponent("include");
+ MainExecutablePath.appendComponent("clang");
+ MainExecutablePath.appendComponent("1.0");
+#else
MainExecutablePath.appendComponent("lib");
MainExecutablePath.appendComponent("clang");
MainExecutablePath.appendComponent(CLANG_VERSION_STRING);
MainExecutablePath.appendComponent("include");
+#endif
// We pass true to ignore sysroot so that we *always* look for clang headers
// relative to our executable, never relative to -isysroot.
Init.AddPath(MainExecutablePath.c_str(), InitHeaderSearch::System,
false, false, false, true /*ignore sysroot*/);
+
+#ifdef LLVM_ON_FREEBSD
+ if (!nostdinc) {
+ MainExecutablePath.eraseComponent();
+ MainExecutablePath.eraseComponent();
+ if (Lang.CPlusPlus) {
+ MainExecutablePath.appendComponent("c++");
+ MainExecutablePath.appendComponent("4.2");
+ Init.AddPath(MainExecutablePath.c_str(), InitHeaderSearch::System, true, false, false);
+ MainExecutablePath.eraseComponent();
+ MainExecutablePath.eraseComponent();
+ }
+ Init.AddPath(MainExecutablePath.c_str(), InitHeaderSearch::System, false, false, false);
+ }
+#endif
}
if (!nostdinc)
More information about the svn-src-projects
mailing list