r193601 - Teach the driver to not try to use 'lib32' multilib spellings on ARM

Rafael EspĂ­ndola rafael.espindola at gmail.com
Tue Oct 29 07:40:17 PDT 2013


>  // Check fedora 18 on arm.
>  // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
>  // RUN:     --target=armv7-unknown-linux-gnueabihf \
>  // RUN:     --sysroot=%S/Inputs/fedora_18_tree \
>  // RUN:   | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s
>  // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
> -// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..{{/|\\\\}}crt1.o"
> -// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..{{/|\\\\}}crti.o"
> +// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o"
> +// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o"
>  // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o"
>  // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2"
> -// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../.."
> +// CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib"
>  // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o"
> -// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..{{/|\\\\}}crtn.o"
> +// CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o"

This is a regression. This patch is almost the same as Logan's
original patch (http://llvm-reviews.chandlerc.com/D2030).

To avoid it is why I added the check for the distro. You kept saying
there was a better way to check it, but in the end you just changed
the test to register the regression without even asking for a review.

Gcc on fedora 18 arm uses 2 -L options:

-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2
-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..

Before your patch clang would use

-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2
-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..
-L/lib
-L/usr/lib

We now use

-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2
-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib
-L/lib/../lib
-L/usr/lib/../lib
-L/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../..
-L/lib
-L/usr/lib

Which adds redundant -L lines and the redundant "../lib". Do you
actually have a plan to fix this?

Cheers,
Rafael



More information about the cfe-commits mailing list