[cfe-commits] r149011 - in /cfe/trunk: lib/Driver/ test/Driver/ test/Driver/Inputs/basic_freebsd64_tree/usr/lib/ test/Driver/Inputs/basic_freebsd_tree/usr/lib/ test/Driver/Inputs/basic_freebsd_tree/usr/lib32/ test/Driver/Inputs/multiarch_freebsd64_tree/lib/ test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/ test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/

Chandler Carruth chandlerc at gmail.com
Wed Jan 25 17:35:15 PST 2012


Author: chandlerc
Date: Wed Jan 25 19:35:15 2012
New Revision: 149011

URL: http://llvm.org/viewvc/llvm-project?rev=149011&view=rev
Log:
Reintroduce r148981 with significantly improved regression test. Now it
both actually tests what it wants to, doesn't have bogus and broken
assertions in it, and is also formatted much more cleanly and
consistently. Probably still some more that can be improved here, but
its much better.

Original commit message:
----
Try to unbreak the FreeBSD toolchain's detection of 32-bit targets
inside a 64-bit freebsd machine with the 32-bit compatibility layer
installed. The FreeBSD image always has the /usr/lib32 directory, so
test for the more concrete existence of crt1.o. Also enhance the tests
for freebsd to clarify what these trees look like and exercise the new
code.

Thanks to all the FreeBSD folks for helping me understand what caused
the failure and how we might fix it. =] That helps a lot. Also, yay
build bots.

Added:
    cfe/trunk/test/Driver/Inputs/basic_freebsd64_tree/usr/lib/crt1.o
    cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib/crt1.o
    cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib32/.keep
    cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/lib/.keep
    cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/.keep
    cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/crt1.o
    cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/.keep
    cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/crt1.o
Modified:
    cfe/trunk/lib/Driver/ToolChains.cpp
    cfe/trunk/test/Driver/freebsd.c

Modified: cfe/trunk/lib/Driver/ToolChains.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=149011&r1=149010&r2=149011&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Jan 25 19:35:15 2012
@@ -1627,11 +1627,11 @@
 FreeBSD::FreeBSD(const Driver &D, const llvm::Triple& Triple)
   : Generic_ELF(D, Triple) {
 
-  // When targeting 32-bit platforms, look for '/usr/lib32' first and fall back
-  // to '/usr/lib' for the remaining cases.
+  // 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::ppc) &&
-      llvm::sys::fs::exists(getDriver().SysRoot + "/usr/lib32"))
+      llvm::sys::fs::exists(getDriver().SysRoot + "/usr/lib32/crt1.o"))
     getFilePaths().push_back(getDriver().SysRoot + "/usr/lib32");
   else
     getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");

Added: cfe/trunk/test/Driver/Inputs/basic_freebsd64_tree/usr/lib/crt1.o
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_freebsd64_tree/usr/lib/crt1.o?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib/crt1.o
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib/crt1.o?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib32/.keep
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/basic_freebsd_tree/usr/lib32/.keep?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/lib/.keep
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/lib/.keep?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/.keep
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/.keep?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/crt1.o
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/crt1.o?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/.keep
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/.keep?rev=149011&view=auto
==============================================================================
    (empty)

Added: cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/crt1.o
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/crt1.o?rev=149011&view=auto
==============================================================================
    (empty)

Modified: cfe/trunk/test/Driver/freebsd.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/freebsd.c?rev=149011&r1=149010&r2=149011&view=diff
==============================================================================
--- cfe/trunk/test/Driver/freebsd.c (original)
+++ cfe/trunk/test/Driver/freebsd.c Wed Jan 25 19:35:15 2012
@@ -1,20 +1,27 @@
-// RUN: %clang -no-canonical-prefixes --sysroot=%S/Inputs/basic_freebsd_tree -ccc-clang-archs "" -target powerpc64-pc-freebsd8 %s -### 2> %t
-// RUN: FileCheck --check-prefix=CHECK-PPC < %t %s
-//
-// CHECK-PPC: clang{{.*}}" "-cc1" "-triple" "powerpc64-pc-freebsd8"
+// RUN: %clang -no-canonical-prefixes -target powerpc-pc-freebsd8 %s \
+// RUN:   --sysroot=%S/Inputs/basic_freebsd_tree -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-PPC %s
+// CHECK-PPC: clang{{.*}}" "-cc1" "-triple" "powerpc-pc-freebsd8"
 // CHECK-PPC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"
 // CHECK-PPC: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"
-
-
-// Check that -m32 properly adjusts the toolchain flags.
 //
-// RUN: %clang -no-canonical-prefixes --sysroot=%S/Inputs/basic_freebsd64_tree -target x86_64-pc-freebsd8 -m32 -### %s 2> %t
-// RUN: FileCheck --check-prefix=CHECK-LIB32 < %t %s
+// RUN: %clang -no-canonical-prefixes -target powerpc64-pc-freebsd8 %s \
+// RUN:   --sysroot=%S/Inputs/basic_freebsd64_tree -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-PPC64 %s
+// CHECK-PPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64-pc-freebsd8"
+// CHECK-PPC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]"
+// CHECK-PPC64: "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"
+//
 //
+// Check that -m32 properly adjusts the toolchain flags.
+//
+// RUN: %clang -no-canonical-prefixes -target x86_64-pc-freebsd8 -m32 %s \
+// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -### 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-LIB32 %s
 // CHECK-LIB32: clang{{.*}}" "-cc1" "-triple" "i386-pc-freebsd8"
 // CHECK-LIB32: ld{{.*}}" {{.*}} "-m" "elf_i386_fbsd"
 //
-// RUN: %clang --sysroot=%S/Inputs/basic_freebsd64_tree -target x86_64-pc-freebsd8 -m32 -print-search-dirs %s > %t
-// RUN: FileCheck --check-prefix=CHECK-LIB32PATHS < %t %s
-//
+// RUN: %clang -target x86_64-pc-freebsd8 -m32 %s 2>&1 \
+// RUN:   --sysroot=%S/Inputs/multiarch_freebsd64_tree -print-search-dirs 2>&1 \
+// RUN:   | FileCheck --check-prefix=CHECK-LIB32PATHS %s
 // CHECK-LIB32PATHS: libraries: ={{.*:?}}/usr/lib32





More information about the cfe-commits mailing list