[PATCH] D143540: [llvm-lib] Use COFF archive format in llvm-lib (other archive tools don't use this format).

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 22 20:27:50 PDT 2023


efriedma added inline comments.


================
Comment at: llvm/lib/Object/ArchiveWriter.cpp:769
+  // COFF symbol map uses 16-bit indexes, so we can't use it if there are too
+  // many members.
+  if (isCOFFArchive(Kind) && NewMembers.size() > 0xfffe)
----------------
jacek wrote:
> efriedma wrote:
> > jacek wrote:
> > > efriedma wrote:
> > > > I'm curious, what does MSVC lib do here?  Refuse to construct the archive?  Skip creating the symbol table? Use some other output format?
> > > According to my testing, it has a limit of 4090 object files. When I try to pass more, I get an ambiguous error:
> > > $ lib -out:test.lib -nologo @inputs/files.txt
> > > LINK : fatal error LNK1104: cannot open file 'inputs\a4091.obj'
> > That's strange... maybe accidentally running into the C library's file handle limit.  What happens if you try adding additional files to a library that already contains 4090 object files?
> Oh, right, I can get larger libraries this way. I can get up to 65535 object files by merging multiple libraries until I get an error:
> 
> LINK : fatal error LNK1189: library limit of 65535 objects exceeded
I guess we don't need to worry about that for compatibility, then.


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

https://reviews.llvm.org/D143540



More information about the llvm-commits mailing list