svn commit: r211573 - in head:
contrib/llvm/tools/clang/lib/Driver
contrib/llvm/tools/clang/lib/Frontend lib/clang
Roman Divacky
rdivacky at FreeBSD.org
Sun Aug 22 20:42:55 UTC 2010
are they interested in this upstream? I think they can be
and it would save us some effort on the next merge
On Sat, Aug 21, 2010 at 03:46:34PM +0000, Rui Paulo wrote:
> 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