MaskRay added a comment.

In D54747#1459175 <https://reviews.llvm.org/D54747#1459175>, @rocallahan wrote:

> Updated results for the rusoto test in 
> https://github.com/rust-lang/rust/issues/56068#issue-382175735. The test 
> changed a bit because I'm using an updated Rust toolchain and `rusoto_core` 
> 0.37.0.
>
> | Linker                                 | Size (bytes) | Real time (ms) |
> | GNU ld version 2.29.1-23.fc28          | 48,554,736   | 2234           |
> | GNU gold (version 2.29.1-23.fc28) 1.14 | 49,888,392   | 813            |
> | lld-6.0.1-1.fc28.x86_64                | 49,800,824   | 247            |
> | lld d918d74461724a22cedd0b76dc1237392f295656                                
>   | 49,873,960   | 224            |
> | lld d918d74461724a22cedd0b76dc1237392f295656 + this patch                   
>   | 5,390,632    | 158            |
> |


@rocallahan
Can you also share the linker command line? You may execute `export 
LLD_REPRODUCE=/tmp/reproduce.tar` before the linking stage. After unpacking, 
there is a `response.txt` file that contains the full command line. I know 
little about Rust crates but I worry some component doesn't use static archives 
.a correctly. If you don't have .a but you have a bunch of .o files, you may 
place them inside a `--start-lib ... --end-lib` to get the archive semantic.

If all debug information of an object file is discarded, it sounds like if you 
switch the build system to use archives, the member in the archive will just 
get discarded, i.e.

If you do `ld.lld main.o a.o b.o c.o d1.o d2.o d3.o` before, you should 
probably switch to

`ld.lld main.o --start-lib a.o b.o c.o --end-lib --start-lib d1.o d2.o d3.o 
--end-lib`


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D54747/new/

https://reviews.llvm.org/D54747



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to