summaryrefslogtreecommitdiff
path: root/sys-devel/clang/files/clang-3.1-gentoo-freebsd-fix-lib-path.patch
diff options
context:
space:
mode:
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.patch20
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,