Date: Tue, 2 Jun 2009 20:40:23 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r193344 - in projects/clangbsd/contrib/llvm/tools/clang: lib/Driver lib/Frontend tools/clang-cc Message-ID: <200906022040.n52KeN4j027656@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906022040.n52KeN4j027656>