From: John Baldwin Date: Mon, 12 Feb 2018 22:22:01 +0000 (+0000) Subject: Look for 32-bit libraries in /usr/lib32 for MIPS O32 on FreeBSD. X-Git-Tag: llvmorg-7.0.0-rc1~13021 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f7854b669a3ce7fbc27824185b6ac7de5d17b554;p=platform%2Fupstream%2Fllvm.git 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 --- diff --git a/clang/lib/Driver/ToolChains/FreeBSD.cpp b/clang/lib/Driver/ToolChains/FreeBSD.cpp index 79ad910..844b0b3 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 0f89d25..ac663ff 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 \