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-all mailing list