summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2018-02-12 22:22:01 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2018-02-12 22:22:01 +0000
commitf7854b669a3ce7fbc27824185b6ac7de5d17b554 (patch)
treedf28efe32ba2da43410b7ccc6972e0f1cb33395d /clang
parent0537deb5cddbf8f4c512e848bfd0220b7ed29c3c (diff)
downloadbcm5719-llvm-f7854b669a3ce7fbc27824185b6ac7de5d17b554.tar.gz
bcm5719-llvm-f7854b669a3ce7fbc27824185b6ac7de5d17b554.zip
Look for 32-bit libraries in /usr/lib32 for MIPS O32 on FreeBSD.
Summary: FreeBSD N64 MIPS systems can include 32-bit libraries for O32 in /usr/lib32 similar to the 32-bit compatibility libraries provided for FreeBSD/amd64 and FreeBSD/powerpc64. Reviewers: dim Reviewed By: dim Differential Revision: https://reviews.llvm.org/D42972 llvm-svn: 324948
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains/FreeBSD.cpp2
-rw-r--r--clang/test/Driver/freebsd.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/FreeBSD.cpp b/clang/lib/Driver/ToolChains/FreeBSD.cpp
index 79ad910b8d4..844b0b349bc 100644
--- a/clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ b/clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -317,6 +317,8 @@ FreeBSD::FreeBSD(const Driver &D, const llvm::Triple &Triple,
// When targeting 32-bit platforms, look for '/usr/lib32/crt1.o' and fall
// back to '/usr/lib' if it doesn't exist.
if ((Triple.getArch() == llvm::Triple::x86 ||
+ Triple.getArch() == llvm::Triple::mips ||
+ Triple.getArch() == llvm::Triple::mipsel ||
Triple.getArch() == llvm::Triple::ppc) &&
D.getVFS().exists(getDriver().SysRoot + "/usr/lib32/crt1.o"))
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib32");
diff --git a/clang/test/Driver/freebsd.c b/clang/test/Driver/freebsd.c
index 0f89d25ac4f..ac663ffacc7 100644
--- a/clang/test/Driver/freebsd.c
+++ b/clang/test/Driver/freebsd.c
@@ -36,6 +36,12 @@
// RUN: | FileCheck --check-prefix=CHECK-LIB32PATHS %s
// CHECK-LIB32PATHS: libraries: ={{.*:?}}/usr/lib32
//
+// Check that O32 MIPS uses /usr/lib32 on a 64-bit tree.
+//
+// RUN: %clang -target mips-freebsd12 %s \
+// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -print-search-dirs 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-LIB32PATHS %s
+//
// Check that the new linker flags are passed to FreeBSD
// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -m32 %s \
// RUN: --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
OpenPOWER on IntegriCloud