- User Since
- Jan 18 2017, 9:47 AM (321 w, 5 d)
Nov 22 2022
Fix for test failure on *nix.
Nov 21 2022
Nov 16 2022
Set DLL storage class for guard variables correctly to avoid a link error when code using a guard variable is inlined into a module that imports the code.
Oct 18 2022
Addressed review comments.
Oct 17 2022
Oct 13 2022
Abandoned in favour of: https://reviews.llvm.org/D135897.
Oct 12 2022
Improve testing and add tests to show that symbol foo is considered referenced by LLD even if all references are redirected by --wrap foo. This property means that a __wrap_foo function that contains calls to __real_foo will not be called if foo is not included in the link.
Oct 11 2022
Sep 29 2022
Address final review comments.
Sep 28 2022
Thanks for the review. I addressed your comments and also consolidated the tests into a single test using split-file.
Sep 27 2022
Whilst reviewing the impact of these dllimport/export restrictions I noticed that LLVM IR does not reject dllimport/export on local linkage globals. I have put up a PR for adding that restriction: D134784 (https://reviews.llvm.org/D134784).
Sep 21 2022
Sep 20 2022
I reverted this change as it breaks the tests on windows. It seems that distutils.spawn.find_executable is not exactly equivalent to shutil.which on Windows as the former adds ".exe" and the latter adds the extensions from PATHEXT. Furthermore we are invoking these functions on a full path e.g. "C:\p\15\vs2019\bin\clang" and looking at the docs I'm not sure what the behaviour of either function should be in that case.
Sep 12 2022
Sep 7 2022
This approach doesn't account for the implementation of -fvisibility-global-new-delete-hidden. The following case now fails after this change:
Sep 6 2022
Hi! Sorry for not raising this issue prior to commit. The dllimport restriction seems correct to us. However, in PlayStation we are using dllexportclass=dllexport visibility=protected GlobalValues in LLVM IR. The protected visibility indicates that the symbol cannot be preempted and could be exported and dllexport indicates that it should be exported. This allows for implementing export control from C/C++ source code. This change has made this usage illegal. It doesn't makes sense semantically to restrict dllexport to visibility=default in LLVM IR, the restriction should be to visibility != hidden as hidden symbols cannot be exported by ELF linkers. Thanks.
Jul 1 2022
Jun 30 2022
Addressed review comments.
Jun 29 2022
Added some reviewer from D112160 where PGL has recently been made to work for macho LLD. It seems likely (to me!) that macho is also affected by this issue.
Jun 28 2022
Jun 23 2022
- Removed the LLD_IN_TEST un-setting in the lit test as we have moved the code earlier now.
- Removed checking for the period/full-stop in the lit test to allow customizers to extend the sentence without adjusting this test.
Ensure added lit test passes for LLVM_ENABLE_BACKTRACES=off builds.
Added differential URL to release note.
Used regex so that test doesn't care about contents of the bug report URL.
Jun 22 2022
Move to lld.cpp
Jun 21 2022
Remove accidentally committed comments.
Addressed style comments.
Jun 20 2022
Added useful reminder message as suggested by Peter.
I have made a commit with the current improvements.
Jun 17 2022
I have asked around and no one made use of those numbers so I have removed them in the latest diff. However, people would have found the exception code useful so I have added that. Output now looks like:
Jun 15 2022
May 27 2022
Sorry for the delay. I wanted to wait until https://github.com/llvm/llvm-project/issues/55527 was fully understood in case we needed to adjust the test or add extra cases.
May 18 2022
May 17 2022
update diff to a working regression test!
@DiggerLin there are a number of tests e.g: llvm\test\tools\llvm-ar\regular-to-thin-archive.test that are still marked "XFAIL: system-aix" that probably need looking at. It might be good to write down what testing strategy you want for AIX. Are you happy to rely on --format=gnu test coverage for most of the tests and have a few specifically --format=aix tests?
May 16 2022
@MaskRay - thanks for the review comments, I will keep your advise w.r.t. urls in commit comments in mind.
Hi @DiggerLin. Currently the --help text states --format=aix but llvm-ar accepts --format=bigarchive. Could you fix that please.
May 13 2022
Address final comments.
May 12 2022
Now using split-file and cd. Removed an invalid test-case. Addressed review comments.
Improved test and addressed review comments.
May 11 2022
Feb 15 2022
I am slightly concerned about penalising links with low utilisation archives. However, I don't have any specific data on low utilisation archives or any example of them. We did do some testing of a similar feature (in our proprietary linker) on game code, and low utilisation archives did not cause a problem for any of the games tested. Users should be able to create high utilisation versions of problematic archives in any case.
Feb 9 2022
Feb 7 2022
Feb 2 2022
Jan 24 2022
Jan 19 2022
Jan 14 2022
Another advantage is that this behaviour allows users to "repair" archives with incomplete symbol tables by stripping the symbol table (maybe someone has added both ET_RELs and bitcode objects to the same archive with an ar which ignored the bitcocde symbols).
Dec 9 2021
Sorry I missed this review - looks great! Did you try getting performance numbers using the tar packages that Rafael gathered up?
Oct 11 2021
Do not test reloc offset as its value isn't important.
Sep 30 2021
Additionally augmented weak-undef.s and weak-undef-rw.s with a --hex-dump test.
Sep 29 2021
Sep 23 2021
Sep 20 2021
Thanks for working on this. In the past I have resorted to hacking in my own ad-hoc versions of such features to solve particularly horrible dependency cases. As mentioned above there's a case for more powerful dependency tracking e.g. https://reviews.llvm.org/D69607. The more of these debugging features available the better IMO :)