[all-commits] [llvm/llvm-project] 61b067: [LLD][COFF] Use lazy object mechanism instead of r...

Jacek Caban via All-commits all-commits at lists.llvm.org
Wed Apr 29 03:34:04 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 61b06773b79c59095f29804da123f4d053e58713
      https://github.com/llvm/llvm-project/commit/61b06773b79c59095f29804da123f4d053e58713
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2026-04-29 (Wed, 29 Apr 2026)

  Changed paths:
    M lld/COFF/Driver.cpp
    M lld/COFF/Driver.h
    A lld/test/COFF/arm64ec-thin-lib.s

  Log Message:
  -----------
  [LLD][COFF] Use lazy object mechanism instead of relying on the archive map for thin archives on ARM64EC (#194349)

On ARM64EC/ARM64X, an archive may contain both native and EC symbols in
the symbol table, which can potentially conflict. Regular archives
handle this using the extended archive format, which stores the EC
symbol table in a separate section, but this is not available for thin
archives.
    
Work around this limitation by lazily parsing all thin archive members
instead of relying on the archive symbol table. This uses the same
mechanism as when thin archive members are passed with
-start-lib/-end-lib, where symbols are added to the symbol table without
pulling in the object file unless it is referenced.
    
Fixing this at the archive format level would require changes to the
format. Currently, the ECSYMBOLS section is supported only by the COFF
archive format, while thin archives require the GNU format. We would
either need to extend the COFF format to support thin archives or
introduce ECSYMBOLS support in the GNU format.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list