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,