This is an archive of the discontinued LLVM Phabricator instance.

[Driver] Improve linking options for target AVR
ClosedPublic

Authored by benshi001 on May 23 2022, 4:09 AM.

Details

Diff Detail

Event Timeline

benshi001 created this revision.May 23 2022, 4:09 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 23 2022, 4:09 AM
benshi001 requested review of this revision.May 23 2022, 4:09 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 23 2022, 4:09 AM
benshi001 updated this revision to Diff 431332.May 23 2022, 4:44 AM
benshi001 added inline comments.May 23 2022, 4:49 AM
clang/lib/Driver/ToolChains/AVR.cpp
461

This check is no longer needed, since we will check if (!llvm::sys::fs::can_execute(FullPath)) at above lines.

526

I am not familiar with avr-ld internal, but it will implicitly:

  1. Use __vectors as the entry;
  2. Use $AVR-LIBC/lib/ldscripts/$FamilyName.xn as the linker script;
benshi001 updated this revision to Diff 431565.May 23 2022, 7:54 PM
benshi001 added inline comments.May 24 2022, 5:47 PM
clang/lib/Driver/ToolChains/AVR.cpp
440

We report an error if the linker specified via -fuse-ld is not executable.

526

Use $AVR-LIBC/lib/ldscripts/$FamilyName.x as the default linker script.

MaskRay added inline comments.May 26 2022, 5:45 PM
clang/lib/Driver/ToolChains/AVR.cpp
434–438

You can just call ToolChain.GetLinkerPath(). I don't think checking can_execute is necessary.

MaskRay added inline comments.May 26 2022, 5:47 PM
clang/lib/Driver/ToolChains/AVR.cpp
530

I am concerned with the magic here. Shouldn't you let users specify explicit -T?

benshi001 updated this revision to Diff 432457.May 26 2022, 9:29 PM
benshi001 marked 2 inline comments as done.May 26 2022, 9:33 PM
benshi001 added inline comments.
clang/lib/Driver/ToolChains/AVR.cpp
434–438

Thanks. This way makes my code more clear.

530

I have changed the logic to

  1. Use the user specified linker script as first choice, and the entry point is expected to be specified in it.
  1. Otherwise use default entry point (__vectors) and default linker script of avr-libc.
benshi001 marked 2 inline comments as done.May 26 2022, 9:34 PM
benshi001 updated this revision to Diff 432459.May 26 2022, 9:36 PM
benshi001 added inline comments.May 26 2022, 9:40 PM
clang/lib/Driver/ToolChains/AVR.cpp
461

This check is still unnecessary, since the driver will complaint invalid linker ... if avr-ld is invalid.

benshi001 updated this revision to Diff 432460.May 26 2022, 9:43 PM
benshi001 added inline comments.May 26 2022, 9:54 PM
clang/lib/Driver/ToolChains/AVR.cpp
536

Though I can seperate my AVR project to two steps,

  1. clang -c ...
  2. ld.lld with these options exeplicitly specified.

it is much more convenient if we can use a single clang ... command including all.

I am still uncomfortable with such a change. Trying to be smart sometimes may get in the way.

benshi001 retitled this revision from [Driver] Support linking with lld for target AVR to [Driver] Improve linking options for target AVR.
benshi001 updated this revision to Diff 433300.Jun 1 2022, 12:00 AM

I am still uncomfortable with such a change. Trying to be smart sometimes may get in the way.

I have removed the guess of default linker script. Currently my patch only does

  1. Support linking with lld if user specifed -fuse-ld=lld
  2. Support user specifed linker script
benshi001 edited the summary of this revision. (Show Details)Jun 1 2022, 12:04 AM

I have a bit confused, why clang --target=x86_64 -fuse-ld=lld needs not to be explicitly specified with a linker script and produces a runnable x86_64 ELF? How does lld arrange code/data addresses for x86_64 by default ?

My original will is clang --target=avr -fuse-lld abc.c can correctly produce an AVR ELF, as both clang --target=x86_64 -fuse-ld=lld abc.c and avr-gcc abc.c do. The avr-gcc abc.c command will use the default linker script inside avr-libc.

ping ....

I have simplified my patch. Only support -T and -fuse-ld=lld according to user specification.

MaskRay added inline comments.Jun 6 2022, 7:43 PM
clang/lib/Driver/ToolChains/AVR.cpp
509

Just do Args.AddAllArgs. Please check how Gnu.cpp passes -T

benshi001 updated this revision to Diff 434684.Jun 6 2022, 8:39 PM
benshi001 marked an inline comment as done.
benshi001 added inline comments.
clang/lib/Driver/ToolChains/AVR.cpp
509

Thanks. Args.AddAllArgs does make code more clear.

benshi001 marked an inline comment as done.Jun 6 2022, 8:40 PM

a gentle ping ...

MaskRay accepted this revision.Jun 13 2022, 4:15 PM

It is fine if you don't add a magic linker script for -fuse-ld=lld.

This revision is now accepted and ready to land.Jun 13 2022, 4:15 PM
This revision was automatically updated to reflect the committed changes.
haowei added a subscriber: haowei.Jun 14 2022, 9:58 AM

We are seeing Clang driver test failures after this patch. On Fuchsia's mac clang builder, Clang :: Driver/avr-ld.c and Clang :: Driver/avr-toolchain.c are failing.
Failed build task: https://ci.chromium.org/ui/p/fuchsia/builders/toolchain.ci/clang-mac-x64/b8811424628472375921/overview Error message:

Clang :: Driver/avr-toolchain.c;

Script:
--
: 'RUN: at line 4';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -resource-dir=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/resource_dir 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=CHECK1 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 15';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree_2/opt/local -S 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=CHECK2 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 21';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree_2 -S 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=CHECK3 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 27';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix=CC1 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 30';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr -fuse-init-array -fuse-cxa-atexit 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix=CHECK4 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 35';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree 2>&1 -nostdinc | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOSTDINC /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 36';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree 2>&1 -nostdlibinc | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOSTDINC /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 39';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOWARN /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 40';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 -S /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOWARN /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 41';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 -S /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOWARN /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 44';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -S /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefixes=NOMCU,LINKA /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 45';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/ -S /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefixes=NOMCU,LINKA /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 46';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefixes=NOMCU,LINKB /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 55';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefixes=NOGCC /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 61';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c -fuse-ld=avrld 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=NOLD /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 64';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c -fuse-ld=lld 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=LLD /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 69';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c -T avr.lds 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=LDS0 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 72';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr --sysroot=/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c -fuse-ld=lld -T avr.lds 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck --check-prefix=LDS1 /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c
--
Exit Code: 1

Command Output (stderr):
--
/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c:11:12: error: CHECK1: expected string not found in input
// CHECK1: avr-ld"
           ^
<stdin>:8:889: note: scanning from here
 "/opt/s/w/ir/x/w/staging/llvm_build/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-toolchain.c" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-target-linker-version" "609.5" "-fcoverage-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-resource-dir" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/resource_dir" "-isysroot" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-toolchain-1844e8.o" "-x" "c" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^
<stdin>:8:1070: note: possible intended match here
 "/opt/s/w/ir/x/w/staging/llvm_build/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-toolchain.c" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-target-linker-version" "609.5" "-fcoverage-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-resource-dir" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/resource_dir" "-isysroot" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-toolchain-1844e8.o" "-x" "c" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^

Input file: <stdin>
Check file: /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: clang-15: warning: no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name> [-Wavr-rtlib-linking-quirks] 
            2: Fuchsia clang version 15.0.0 (https://llvm.googlesource.com/a/llvm-project 145cc9db2b442fc0533e275b92943a9894e33337) 
            3: Target: avr 
            4: Thread model: posix 
            5: InstalledDir: /opt/s/w/ir/x/w/staging/llvm_build/bin 
            6: clang-15: warning: standard library not linked and so no interrupt vector table or compiler runtime routines will be linked [-Wavr-rtlib-linking-quirks] 
            7: clang-15: warning: support for passing the data section address to the linker for microcontroller '' is not implemented [-Wavr-rtlib-linking-quirks] 
            8:  "/opt/s/w/ir/x/w/staging/llvm_build/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-toolchain.c" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-target-linker-version" "609.5" "-fcoverage-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-resource-dir" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/resource_dir" "-isysroot" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-toolchain-1844e8.o" "-x" "c" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-toolchain.c" 
check:11'0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
check:11'1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ?                                                                                                       possible intended match
            9:  "/opt/s/w/ir/x/w/staging/llvm_build/bin/ld.lld" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-toolchain-1844e8.o" "-o" "a.out" "--gc-sections" 
check:11'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

Clang :: Driver/avr-ld.c:

Script:
--
: 'RUN: at line 1';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=at90s2313 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKA /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 4';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=at90s8515 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKB /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 7';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=attiny13 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKC /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 10';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=attiny44 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKD /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 13';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega103 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKE /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 16';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega8u2 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKF /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 19';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega48pa --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKG /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 22';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega328 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKH /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 25';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega1281 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKI /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 28';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atmega2560 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKJ /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 31';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=attiny10 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKK /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 34';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atxmega16a4 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKL /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 37';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atxmega64b3 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKM /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 40';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atxmega128a3u --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKN /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
: 'RUN: at line 43';   /opt/s/w/ir/x/w/staging/llvm_build/bin/clang -### --target=avr -mmcu=atxmega128a1 --sysroot /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c 2>&1 | /opt/s/w/ir/x/w/staging/llvm_build/bin/FileCheck -check-prefix LINKO /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c
--
Exit Code: 1

Command Output (stderr):
--
/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c:2:11: error: LINKA: expected string not found in input
// LINKA: {{".*ld.*"}} {{.*}} {{"-L.*tiny-stack"}} {{.*}} "-Tdata=0x800060" "--start-group" {{.*}} "-lat90s2313" "--end-group" "-mavr2"
          ^
<stdin>:1:1: note: scanning from here
Fuchsia clang version 15.0.0 (https://llvm.googlesource.com/a/llvm-project 145cc9db2b442fc0533e275b92943a9894e33337)
^

Input file: <stdin>
Check file: /opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c

-dump-input=help explains the following input dump.

Input was:
<<<<<<
         1: Fuchsia clang version 15.0.0 (https://llvm.googlesource.com/a/llvm-project 145cc9db2b442fc0533e275b92943a9894e33337) 
check:2     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
         2: Target: avr 
check:2     ~~~~~~~~~~~~
         3: Thread model: posix 
check:2     ~~~~~~~~~~~~~~~~~~~~
         4: InstalledDir: /opt/s/w/ir/x/w/staging/llvm_build/bin 
check:2     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         5:  "/opt/s/w/ir/x/w/staging/llvm_build/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-ld.c" "-mrelocation-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-target-cpu" "at90s2313" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debugger-tuning=gdb" "-target-linker-version" "609.5" "-fcoverage-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-resource-dir" "/opt/s/w/ir/x/w/staging/llvm_build/lib/clang/15.0.0" "-isysroot" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/opt/s/w/ir/x/w/staging/llvm_build/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-ld-7bfa74.o" "-x" "c" "/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/avr-ld.c" 
check:2     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         6:  "/opt/s/w/ir/x/w/staging/llvm_build/bin/ld.lld" "/opt/s/w/ir/x/t/lit-tmp-688ggc9o/avr-ld-7bfa74.o" "-o" "a.out" "--gc-sections" "-L/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/lib/tiny-stack" "-L/opt/s/w/ir/x/w/llvm-llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/tiny-stack" "-Tdata=0x800060" "--start-group" "-l:crtat90s2313.o" "-lgcc" "-lm" "-lc" "-lat90s2313" "--end-group" 
check:2     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

Clang :: Driver/avr-ld.c also failed on Fuchsia's Clang Windows builder as well: https://ci.chromium.org/ui/p/fuchsia/builders/toolchain.ci/clang-windows-x64/b8811369240303052481/overview. Could you take a look please? If it takes a long time to fix, could you revert your change first? Thanks.

I will fix it soon.

I already reverted the change in https://github.com/llvm/llvm-project/commit/7fae15f9251d3b392058e2fc84898b53619d36ad . It is likely the breakage is caused by the fact that Fuchsia's Clang by default use lld, see clang/cmake/caches/Fuchsia-stage2.cmake:set(CLANG_DEFAULT_LINKER lld CACHE STRING "") . Please let me know if you need to test your new patch with this configuration. I am happy to help.

I think I have fixed in another patch https://reviews.llvm.org/D127814, could you please have a look?

@haowei

I have not your environment, my patch works on my ubuntu system, could you please try it on your build machine ?

benshi001 updated this revision to Diff 436992.Jun 14 2022, 6:18 PM
benshi001 added a reviewer: haowei.

I already reverted the change in https://github.com/llvm/llvm-project/commit/7fae15f9251d3b392058e2fc84898b53619d36ad . It is likely the breakage is caused by the fact that Fuchsia's Clang by default use lld, see clang/cmake/caches/Fuchsia-stage2.cmake:set(CLANG_DEFAULT_LINKER lld CACHE STRING "") . Please let me know if you need to test your new patch with this configuration. I am happy to help.

I have uploaded a new version of my patch, which should fixes the issue on your platfrom that lld is default. Could you please help me test ? Please ignore another patch.

Emmm, I applied your latest patch on top of main(6e02e27536b9de25a651cfc9c2966ce471169355) but I still get a test failure on Clang :: Driver/avr-toolchain.c.

Clang :: Driver/avr-ld.c no longer fail.
Error message:

FAIL: Clang :: Driver/avr-toolchain.c (7349 of 16540)
******************** TEST 'Clang :: Driver/avr-toolchain.c' FAILED ********************
Script:
--
: 'RUN: at line 4';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
-resource-dir=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/resource_dir 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK1 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 15';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
_2/opt/local -S 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK2 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 21';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
_2 -S 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK3 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 27';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck -check-pre
fix=CC1 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 30';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr -fuse-init-array -fuse-cxa-atexit 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-re
vert-test/bin/FileCheck -check-prefix=CHECK4 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 35';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
 2>&1 -nostdinc | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOSTDINC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 36';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
 2>&1 -nostdlibinc | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOSTDINC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 39';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 40';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Dri
ver/avr-toolchain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 41';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolch
ain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 44';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchai
n.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKA /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 45';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /mn
t/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKA /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 46';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKB /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 55';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain
.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOGCC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 61';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=avrld 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOLD /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 64';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LLD /mnt/nvme_sec/SRC/llvm-project/clang/test/Dr
iver/avr-toolchain.c
: 'RUN: at line 69';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -T avr.lds 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LDS0 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 72';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld -T avr.lds 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LDS1 /mnt/nvme_sec/SRC/llvm-project/c
lang/test/Driver/avr-toolchain.c
--
Exit Code: 1

Command Output (stderr):
--
/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c:65:9: error: LLD: expected string not found in input
// LLD: {{".*lld"}}
        ^
<stdin>:1:1: note: scanning from here
Fuchsia clang version 15.0.0 (git@github.com:llvm/llvm-project.git 6e02e27536b9de25a651cfc9c2966ce471169355)
^
<stdin>:5:139: note: possible intended match here
clang-15: error: invalid linker name in argument '-fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld'
                                                                                                                                          ^

Input file: <stdin>
Check file: /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: Fuchsia clang version 15.0.0 (git@github.com:llvm/llvm-project.git 6e02e27536b9de25a651cfc9c2966ce471169355)
check:65'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
            2: Target: avr
check:65'0     ~~~~~~~~~~~~
            3: Thread model: posix
check:65'0     ~~~~~~~~~~~~~~~~~~~~
            4: InstalledDir: /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            5: clang-15: error: invalid linker name in argument '-fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld'
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:65'1                                                                                                                                               ?        possible intended match
            6:  "/mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-toolchain.c" "-mrelocation
-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-target-cpu" "atmega328" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debug
ger-tuning=gdb" "-fcoverage-compilation-dir=/mnt/nvme_sec/SRC/llvm-project/build-revert-test/tools/clang/test/Driver" "-resource-dir" "/mnt/nvme_sec/SRC/llvm-project/build-revert-test/lib/clang/15.0.0" "-isysroot" "/mnt/nvme_sec/SRC/llvm-project
/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/mnt/nvme_sec/SRC/llvm-project/build-rever
t-test/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/tmp/lit-tmp-a4e1rfqj/avr-toolchain-f24e25.o" "-x" "c" "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c"
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            7:  "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../../bin/avr-ld" "/tmp/lit-tmp-a4e1rfqj/avr-toolchain-f24e25.o" "-o" "a.out" "--gc-sections" "-L/mnt/nvme_sec/SRC/llvm-project/c
lang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5" "-L/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/avr5" "-Tdata=0x800100" "--start-group" "-l:crtatmega328.o" "-lgc
c" "-lm" "-lc" "-latmega328" "--end-group" "-mavr5"
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

********************
********************

Emmm, I applied your latest patch on top of main(6e02e27536b9de25a651cfc9c2966ce471169355) but I still get a test failure on Clang :: Driver/avr-toolchain.c.

Clang :: Driver/avr-ld.c no longer fail.
Error message:

FAIL: Clang :: Driver/avr-toolchain.c (7349 of 16540)
******************** TEST 'Clang :: Driver/avr-toolchain.c' FAILED ********************
Script:
--
: 'RUN: at line 4';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
-resource-dir=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/resource_dir 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK1 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 15';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
_2/opt/local -S 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK2 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 21';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
_2 -S 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=CHECK3 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 27';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck -check-pre
fix=CC1 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 30';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr -fuse-init-array -fuse-cxa-atexit 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-re
vert-test/bin/FileCheck -check-prefix=CHECK4 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 35';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
 2>&1 -nostdinc | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOSTDINC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 36';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree
 2>&1 -nostdlibinc | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOSTDINC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 39';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 40';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Dri
ver/avr-toolchain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 41';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolch
ain.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOWARN /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 44';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchai
n.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKA /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 45';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -S /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c 2>&1 | /mn
t/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKA /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 46';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOMCU,LINKB /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 55';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/ -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain
.c 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefixes=NOGCC /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 61';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=avrld 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=NOLD /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 64';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LLD /mnt/nvme_sec/SRC/llvm-project/clang/test/Dr
iver/avr-toolchain.c
: 'RUN: at line 69';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -T avr.lds 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LDS0 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c
: 'RUN: at line 72';   /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang -### --target=avr --sysroot=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree -mmcu=atmega328 /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver
/avr-toolchain.c -fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld -T avr.lds 2>&1 | /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/FileCheck --check-prefix=LDS1 /mnt/nvme_sec/SRC/llvm-project/c
lang/test/Driver/avr-toolchain.c
--
Exit Code: 1

Command Output (stderr):
--
/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c:65:9: error: LLD: expected string not found in input
// LLD: {{".*lld"}}
        ^
<stdin>:1:1: note: scanning from here
Fuchsia clang version 15.0.0 (git@github.com:llvm/llvm-project.git 6e02e27536b9de25a651cfc9c2966ce471169355)
^
<stdin>:5:139: note: possible intended match here
clang-15: error: invalid linker name in argument '-fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld'
                                                                                                                                          ^

Input file: <stdin>
Check file: /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: Fuchsia clang version 15.0.0 (git@github.com:llvm/llvm-project.git 6e02e27536b9de25a651cfc9c2966ce471169355)
check:65'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
            2: Target: avr
check:65'0     ~~~~~~~~~~~~
            3: Thread model: posix
check:65'0     ~~~~~~~~~~~~~~~~~~~~
            4: InstalledDir: /mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            5: clang-15: error: invalid linker name in argument '-fuse-ld=/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld'
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:65'1                                                                                                                                               ?        possible intended match
            6:  "/mnt/nvme_sec/SRC/llvm-project/build-revert-test/bin/clang-15" "-cc1" "-triple" "avr" "-emit-obj" "-mrelax-all" "--mrelax-relocations" "-disable-free" "-clear-ast-before-backend" "-main-file-name" "avr-toolchain.c" "-mrelocation
-model" "static" "-mframe-pointer=all" "-fmath-errno" "-ffp-contract=on" "-fno-rounding-math" "-mconstructor-aliases" "-fno-use-init-array" "-fno-use-cxa-atexit" "-target-cpu" "atmega328" "-mllvm" "-treat-scalable-fixed-error-as-warning" "-debug
ger-tuning=gdb" "-fcoverage-compilation-dir=/mnt/nvme_sec/SRC/llvm-project/build-revert-test/tools/clang/test/Driver" "-resource-dir" "/mnt/nvme_sec/SRC/llvm-project/build-revert-test/lib/clang/15.0.0" "-isysroot" "/mnt/nvme_sec/SRC/llvm-project
/clang/test/Driver/Inputs/basic_avr_tree" "-internal-isystem" "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/include" "-fdebug-compilation-dir=/mnt/nvme_sec/SRC/llvm-project/build-rever
t-test/tools/clang/test/Driver" "-ferror-limit" "19" "-fgnuc-version=4.2.1" "-faddrsig" "-o" "/tmp/lit-tmp-a4e1rfqj/avr-toolchain-f24e25.o" "-x" "c" "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/avr-toolchain.c"
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            7:  "/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../../bin/avr-ld" "/tmp/lit-tmp-a4e1rfqj/avr-toolchain-f24e25.o" "-o" "a.out" "--gc-sections" "-L/mnt/nvme_sec/SRC/llvm-project/c
lang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5" "-L/mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/lib/gcc/avr/5.4.0/avr5" "-Tdata=0x800100" "--start-group" "-l:crtatmega328.o" "-lgc
c" "-lm" "-lc" "-latmega328" "--end-group" "-mavr5"
check:65'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

--

********************
********************

Do you have an empty file /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld on your disk ?

It seems the file /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld is missing on your machine, which I have newly created in current patch.

It seems the file /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld is missing on your machine, which I have newly created in current patch.

That file was missing. For some reason, it was missing from the patch I downloaded from phabricator( if you look at https://reviews.llvm.org/file/data/2wqpf52swpb3xkcz7lip/PHID-FILE-filks6eto62wxww6m23w/D126192.vson.id436992.diff).

After manually create clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld and set permission to 0755 (test will fail if I don't do it). All tests will pass under linux-x64. I will need to test it on a Windows host to make sure it all pass, which will take a while.

It seems the file /mnt/nvme_sec/SRC/llvm-project/clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld is missing on your machine, which I have newly created in current patch.

That file was missing. For some reason, it was missing from the patch I downloaded from phabricator( if you look at https://reviews.llvm.org/file/data/2wqpf52swpb3xkcz7lip/PHID-FILE-filks6eto62wxww6m23w/D126192.vson.id436992.diff).

After manually create clang/test/Driver/Inputs/basic_avr_tree/usr/bin/ld.lld and set permission to 0755 (test will fail if I don't do it). All tests will pass under linux-x64. I will need to test it on a Windows host to make sure it all pass, which will take a while.

Thanks. I really appreciate your help.

I tested this patch on our windows builder and it passed as well.
This patch LGTM. (I cannot click accept as the this review is already closed)

This revision was landed with ongoing or failed builds.Jun 14 2022, 7:57 PM