diff options
author | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2017-06-19 17:29:08 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2017-06-21 18:17:54 +0000 |
commit | ca117e7f49a618883b0fdaa83bd653e31df0046d (patch) | |
tree | 031a4425ef862a7271fb4e81df9640f62aad7e51 /util/crossgcc/patches | |
parent | 3b5934936e5f41a8cfd7a2bc29851451ce8de17a (diff) |
crossgcc: Update to clang 4.0
Drop Edward's cfe patch because it has been implemented by
upstream clang differently. Instead of
$ clang --print-librt-file-name
the right way to get ahold of the compiler-rt builtin library is
$ clang -rtlib=compiler-rt --print-libgcc-file-name
Change-Id: I8aac5256da5bfb6f7bebeff0959f16b53867c581
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: https://review.coreboot.org/20274
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'util/crossgcc/patches')
-rw-r--r-- | util/crossgcc/patches/cfe-3.9.1.src_frontend.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/util/crossgcc/patches/cfe-3.9.1.src_frontend.patch b/util/crossgcc/patches/cfe-3.9.1.src_frontend.patch deleted file mode 100644 index 3b8e6b70b7..0000000000 --- a/util/crossgcc/patches/cfe-3.9.1.src_frontend.patch +++ /dev/null @@ -1,79 +0,0 @@ -Frontend driver patch from Edward O'Callaghan - -https://llvm.org/bugs/show_bug.cgi?id=21538 - -Index: include/clang/Driver/Driver.h -=================================================================== ---- cfe-3.7.1.src/include/clang/Driver/Driver.h (revision 211898) -+++ cfe-3.8.0.src/include/clang/Driver/Driver.h (working copy) -@@ -357,6 +357,14 @@ - // FIXME: This should be in CompilationInfo. - std::string GetFilePath(const char *Name, const ToolChain &TC) const; - -+ /// GetCompilerRTPath - Find Compiler-RT library path -+ /// -+ /// \param TC - The provided tool chain for additional information on -+ /// directories to search. -+ // -+ // FIXME: This should be in CompilationInfo. -+ std::string GetCompilerRTPath(const ToolChain &TC) const; -+ - /// GetProgramPath - Lookup \p Name in the list of program search paths. - /// - /// \param TC - The provided tool chain for additional information on -Index: include/clang/Driver/Options.td -=================================================================== ---- cfe-3.7.1.src/include/clang/Driver/Options.td (revision 211898) -+++ cfe-3.8.0.src/include/clang/Driver/Options.td (working copy) -@@ -1669,6 +1669,8 @@ - HelpText<"Enable Objective-C Ivar layout bitmap print trace">; - def print_libgcc_file_name : Flag<["-", "--"], "print-libgcc-file-name">, - HelpText<"Print the library path for \"libgcc.a\"">; -+def print_librt_file_name : Flag<["-", "--"], "print-librt-file-name">, -+ HelpText<"Print the library path for \"libclang_rt.builtins-ARCH.a\"">; - def print_multi_directory : Flag<["-", "--"], "print-multi-directory">; - def print_multi_lib : Flag<["-", "--"], "print-multi-lib">; - def print_multi_os_directory : Flag<["-", "--"], "print-multi-os-directory">; -Index: lib/Driver/Driver.cpp -=================================================================== ---- cfe-3.7.1.src/lib/Driver/Driver.cpp (revision 211898) -+++ cfe-3.8.0.src/lib/Driver/Driver.cpp (working copy) -@@ -910,6 +910,11 @@ - return false; - } - -+ if (C.getArgs().hasArg(options::OPT_print_librt_file_name)) { -+ llvm::outs() << GetCompilerRTPath(TC) << "\n"; -+ return false; -+ } -+ - if (C.getArgs().hasArg(options::OPT_print_multi_lib)) { - for (const Multilib &Multilib : TC.getMultilibs()) - llvm::outs() << Multilib << "\n"; -@@ -2153,6 +2158,26 @@ - return false; - } - -+std::string Driver::GetCompilerRTPath(const ToolChain &TC) const { -+ // The runtimes are located in the OS-specific resource directory. -+ SmallString<128> Res(TC.getDriver().ResourceDir); -+ const llvm::Triple &Triple = TC.getTriple(); -+ -+ // TC.getOS() yield "freebsd10.0" whereas "freebsd" is expected. -+ StringRef OSLibName = (Triple.getOS() == llvm::Triple::FreeBSD) ? -+ "freebsd" : TC.getOS(); -+ llvm::sys::path::append(Res, "lib", OSLibName); -+ -+ StringRef archName = TC.getArchName(); -+ // Until ARM libraries are build separately, we have them all in one library -+ if (TC.getArch() == llvm::Triple::arm || -+ TC.getArch() == llvm::Triple::armeb) -+ archName = "arm"; -+ -+ llvm::sys::path::append(Res, Twine("libclang_rt.builtins-") + archName + ".a"); -+ return Res.str(); -+} -+ - std::string Driver::GetProgramPath(const char *Name, - const ToolChain &TC) const { - SmallVector<std::string, 2> TargetSpecificExecutables; |