[PATCH] D142484: [LinkerWrapper] Only import static libraries with needed symbols

Joseph Huber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 24 10:38:27 PST 2023


jhuber6 added inline comments.


================
Comment at: clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp:1217-1218
+///   1) It defines an undefined symbol in a regular object filie.
+///   2) It defines a global symbol without hidden visibility that has not
+///      yet been defined.
+Expected<bool> getSymbols(StringRef Image, StringSaver &Saver,
----------------
tra wrote:
> jhuber6 wrote:
> > tra wrote:
> > > How do we handle conflicting symbols defined more than once? 
> > > 
> > I just assume that will be caught by the actual linker, it's not relevant for knowing which symbols to pull out.
> That would be the case when we were loading all libraries at once.
> However, now that we load them as needed one by one, we may end up loading only the first file which provides such symbol and would potentially ignore others, if no other symbol requires loading them. Given that we're checking the symbols anyways, it would be useful to diagnose it, IMO.
This is the expected behavior of static libraries right? `lld` has some option to print out why a certain library was extracted, we could do something similar?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142484



More information about the cfe-commits mailing list