From owner-svn-src-projects@FreeBSD.ORG Tue Jun 2 20:40:24 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 574F71065670; Tue, 2 Jun 2009 20:40:24 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4337A8FC1A; Tue, 2 Jun 2009 20:40:24 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n52KeON7027660; Tue, 2 Jun 2009 20:40:24 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n52KeN4j027656; Tue, 2 Jun 2009 20:40:23 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <200906022040.n52KeN4j027656@svn.freebsd.org> From: Ed Schouten Date: Tue, 2 Jun 2009 20:40:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r193344 - in projects/clangbsd/contrib/llvm/tools/clang: lib/Driver lib/Frontend tools/clang-cc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jun 2009 20:40:24 -0000 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//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)