[cfe-dev] Test failuire: Driver/baremetal.cpp

Peter Smith via cfe-dev cfe-dev at lists.llvm.org
Thu Jul 26 10:38:46 PDT 2018


My understanding is that the BareMetal driver will default to ld.lld
if clang has been configured with the default linker of "ld" which as
far as I know means ToolChain default. It looks like this will fail
when anyone builds clang with a different default linker to "ld" or
"ld.lld". I guess some cmake/lit magic could be done to disable the
test if the change default linker option has been used via REQUIRES,
but I don't know if that is worth it.

Peter

On 26 July 2018 at 18:19, Rui Ueyama via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> I didn't write this test, so I don't know what is intended. I'd create a
> patch to relax the regexp and send it to the person who wrote this test.
>
> On Thu, Jul 26, 2018 at 10:12 AM David A. Greene <dag at cray.com> wrote:
>>
>> Yes, that's fine by me.  We don't have a cross-linker gold, so I want to
>> make sure this isn't testing that a cross-linker is found.
>>
>>                             -David
>>
>> Rui Ueyama <ruiu at google.com> writes:
>>
>> > Hi,
>> >
>> > I wonder if this test really needs to depend on lld. Maybe you can
>> > replace `ld.lld` with `ld` so that the test passes for any linker?
>> >
>> > On Thu, Jul 26, 2018 at 9:21 AM David Greene via cfe-dev
>> > <cfe-dev at lists.llvm.org> wrote:
>> >
>> >     I've configured clang to use gold, which seems to cause
>> >     test/Driver/baremetal.cpp to fail. The test works like this:
>> >
>> >     // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
>> >     // RUN: -target armv6m-none-eabi \
>> >     // RUN: -T semihosted.lds \
>> >     // RUN: -L some/directory/user/asked/for \
>> >     // RUN: --sysroot=%S/Inputs/baremetal_arm \
>> >     // RUN: | FileCheck --check-prefix=CHECK-V6M-C %s
>> >     // CHECK-V6M-C: "[[PREFIX_DIR:.*]]{{[/\\]+}}{{[^/^\\]+}}
>> >     {{[/\\]+}}clang{{.*}}" "-cc1" "-triple" "thumbv6m-none--eabi"
>> >     // CHECK-V6M-C-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
>> >     // CHECK-V6M-C-SAME: "-isysroot" "[[SYSROOT:[^"]*]]"
>> >     // CHECK-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]
>> >     {{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
>> >     // CHECk-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]
>> >     {{[/\\]+}}include"
>> >     // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
>> >     // CHECK-V6M-C-NEXT: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o"
>> >     "-Bstatic"
>> >
>> >     The NEXT line is problematic as it assumes ld.lld. I did not build
>> >     lld,
>> >     though I could simply to get the test working. But building lld is
>> >     not
>> >     enough as I configured with CLANG_DEFAULT_LINKER=gold. It seems
>> >     like
>> >     the RUN line needs -fuse-ld=lld.
>> >
>> >     Is there a REQUIRES clause for lld being present and default? I
>> >     could
>> >     not find somthing appropriate in lit's config.available_features.
>> >
>> >     It's certainly possible I'm doing something wrong, as I assume
>> >     many
>> >     people use gold with clang. Maybe those people don't run the
>> >     tests?
>> >
>> >     I am happy to update the test if someone can point me to a good
>> >     REQUIRES
>> >     clause.
>> >
>> >     Thanks!
>> >
>> >     -David
>> >     _______________________________________________
>> >     cfe-dev mailing list
>> >     cfe-dev at lists.llvm.org
>> >     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>



More information about the cfe-dev mailing list