diff options
Diffstat (limited to 'sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch')
-rw-r--r-- | sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch b/sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch new file mode 100644 index 0000000..702606f --- /dev/null +++ b/sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch @@ -0,0 +1,20 @@ +This patch causes problem for multilib: GCCInstallation.getInstallPath() is +empty in that case and 'clang -m32 foo.c' will put a -L with nothing after it +but the .o file generated, effectively dropping it. +With recent freebsd-lib versions, it is only needed for c++ with libstdc++, +which is actually broken because clang++ cannot find the headers. it is fine +with clang++ -stdlib=libc++. +aballier@g.o + +diff -upNr a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp +--- a/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 04:08:48.393073000 -0400 ++++ b/llvm-3.1.src/tools/clang/lib/Driver/ToolChains.cpp 2012-05-24 04:11:38.113153421 -0400 +@@ -1635,6 +1635,8 @@ FreeBSD::FreeBSD(const Driver &D, const + getFilePaths().push_back(getDriver().SysRoot + "/usr/lib32"); + else + getFilePaths().push_back(getDriver().SysRoot + "/usr/lib"); ++ ++ getFilePaths().push_back(GCCInstallation.getInstallPath()); + } + + Tool &FreeBSD::SelectTool(const Compilation &C, const JobAction &JA, |