svn commit: r211573 - in head: contrib/llvm/tools/clang/lib/Driver
contrib/llvm/tools/clang/lib/Frontend lib/clang
Rui Paulo
rpaulo at FreeBSD.org
Sat Aug 21 15:46:34 UTC 2010
Author: rpaulo
Date: Sat Aug 21 15:46:33 2010
New Revision: 211573
URL: http://svn.freebsd.org/changeset/base/211573
Log:
Modify clang so that when TOOLS_PREFIX is defined we register the
CLANG_PREFIX macro. This changes the default header search path when we
are building clang as part of cross-tools.
Submitted by: Dimitry Andric <dimitry at andric.com>
Reviewed by: freebsd-current
Modified:
head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
head/lib/clang/clang.build.mk
Modified: head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp Sat Aug 21 15:39:06 2010 (r211572)
+++ head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp Sat Aug 21 15:46:33 2010 (r211573)
@@ -26,6 +26,10 @@
#include <cstdlib> // ::getenv
+#ifndef CLANG_PREFIX
+#define CLANG_PREFIX
+#endif
+
using namespace clang::driver;
using namespace clang::driver::toolchains;
@@ -869,11 +873,9 @@ FreeBSD::FreeBSD(const HostInfo &Host, c
getProgramPaths().push_back(getDriver().Dir + "/../libexec");
getProgramPaths().push_back("/usr/libexec");
if (Lib32) {
- getFilePaths().push_back(getDriver().Dir + "/../lib32");
- getFilePaths().push_back("/usr/lib32");
+ getFilePaths().push_back(CLANG_PREFIX "/usr/lib32");
} else {
- getFilePaths().push_back(getDriver().Dir + "/../lib");
- getFilePaths().push_back("/usr/lib");
+ getFilePaths().push_back(CLANG_PREFIX "/usr/lib");
}
}
Modified: head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Sat Aug 21 15:39:06 2010 (r211572)
+++ head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp Sat Aug 21 15:46:33 2010 (r211573)
@@ -30,6 +30,9 @@
#define WIN32_LEAN_AND_MEAN 1
#include <windows.h>
#endif
+#ifndef CLANG_PREFIX
+#define CLANG_PREFIX
+#endif
using namespace clang;
using namespace clang::frontend;
@@ -408,9 +411,10 @@ static bool getWindowsSDKDir(std::string
void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple,
const HeaderSearchOptions &HSOpts) {
-#if 0 /* Remove unneeded include paths. */
// FIXME: temporary hack: hard-coded paths.
- AddPath("/usr/local/include", System, true, false, false);
+#ifndef __FreeBSD__
+ AddPath(CLANG_PREFIX "/usr/local/include", System, true, false, false);
+#endif
// Builtin includes use #include_next directives and should be positioned
// just prior C include dirs.
@@ -421,7 +425,6 @@ void InitHeaderSearch::AddDefaultCInclud
P.appendComponent("include");
AddPath(P.str(), System, false, false, false, /*IgnoreSysRoot=*/ true);
}
-#endif
// Add dirs specified via 'configure --with-c-include-dirs'.
llvm::StringRef CIncludeDirs(C_INCLUDE_DIRS);
@@ -518,13 +521,15 @@ void InitHeaderSearch::AddDefaultCInclud
case llvm::Triple::MinGW32:
AddPath("c:/mingw/include", System, true, false, false);
break;
+ case llvm::Triple::FreeBSD:
+ AddPath(CLANG_PREFIX "/usr/include/clang/" CLANG_VERSION_STRING,
+ System, false, false, false);
+ break;
default:
break;
}
- AddPath("/usr/include/clang/" CLANG_VERSION_STRING,
- System, false, false, false);
- AddPath("/usr/include", System, false, false, false);
+ AddPath(CLANG_PREFIX "/usr/include", System, false, false, false);
}
void InitHeaderSearch::
@@ -726,8 +731,10 @@ AddDefaultCPlusPlusIncludePaths(const ll
case llvm::Triple::FreeBSD:
// FreeBSD 8.0
// FreeBSD 7.3
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2", "", "", "", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2/backward", "", "", "", triple);
+ AddGnuCPlusPlusIncludePaths(CLANG_PREFIX "/usr/include/c++/4.2",
+ "", "", "", triple);
+ AddGnuCPlusPlusIncludePaths(CLANG_PREFIX "/usr/include/c++/4.2/backward",
+ "", "", "", triple);
break;
case llvm::Triple::Minix:
AddGnuCPlusPlusIncludePaths("/usr/gnu/include/c++/4.4.3",
Modified: head/lib/clang/clang.build.mk
==============================================================================
--- head/lib/clang/clang.build.mk Sat Aug 21 15:39:06 2010 (r211572)
+++ head/lib/clang/clang.build.mk Sat Aug 21 15:46:33 2010 (r211573)
@@ -28,6 +28,10 @@ LLVM_REQUIRES_RTTI=
CFLAGS+=-fno-rtti
.endif
+.ifdef TOOLS_PREFIX
+CFLAGS+=-DCLANG_PREFIX=\"${TOOLS_PREFIX}\"
+.endif
+
.PATH: ${LLVM_SRCS}/${SRCDIR}
TBLGEN=tblgen ${CFLAGS:M-I*}
More information about the svn-src-head
mailing list