================
@@ -200,12 +200,10 @@
 // CHECK-NO-TARGETLIB-SAME: "-L."
 
 // RUN: mkdir -p %t.dir/myroot/target/lib
-// RUN: touch %t.dir/myroot/target/lib/crti.o
 // RUN: env SCE_PROSPERO_SDK_DIR=%t.dir/myroot %clang --target=x64_64-sie-ps5 
%s -### -Luser 2>&1 | FileCheck --check-prefixes=CHECK-TARGETLIB %s
 // RUN: %clang --target=x64_64-sie-ps5 %s -### -Luser --sysroot=%t.dir/myroot 
2>&1 | FileCheck --check-prefixes=CHECK-TARGETLIB %s
 
 // CHECK-TARGETLIB: {{ld(\.exe)?}}"
 // CHECK-TARGETLIB-SAME: "-Luser"
 // CHECK-TARGETLIB-SAME: "-L{{.*}}myroot{{/|\\\\}}target{{/|\\\\}}lib"
 // CHECK-TARGETLIB-SAME: "-L."
----------------
playstation-edd wrote:

> Just to check the thinking: we don't need to check how the linker is directed 
> to crti.o, these check lines are purely about ensuring the correct -L flags 
> come out of the driver?

In short: yes.

In full:

The deleted line checked that `crti.o` was resolved to 
`<user-supplied-sysroot>/target/lib/crti.o` by the driver. That resolution will 
still occur, because `-L<user-supplied-sysroot>/target/lib` and `-l:crti.o` are 
passed to the linker, but it will now be the linker that does the resolution 
instead of the driver.

The removed line below could have been replaced with:

```
// CHECK-TARGETLIB-SAME: "-l:crti.o"
```

But the user supplied sysroot has no interaction with this part - `"-l:crti.o"` 
appears regardless. And since the appearance of `"-l:crti.o"` and friends are 
checked elsewhere in this file, I didn't think it was worth repeating again 
here.

The remaining `CHECK-TARGETLIB` lines continue to confirm user supplied library 
paths are passed to the linker before the defaults (`<sysroot>/target/lib` and 
`.`).

https://github.com/llvm/llvm-project/pull/145869
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to