Commit Graph

87 Commits

Author SHA1 Message Date
Nikita Smith 3c0c531c53 reloc helper 2025-09-24 12:42:17 -07:00
Nikita Smith b646e1cd43 fix compiler errors 2025-09-17 15:21:37 -07:00
Nikita Smith 630c3b42a7 do lightweight import gathering while resolving links 2025-09-17 15:21:37 -07:00
Ryan Fleury 937c6c8bce eliminate radcon, eliminate unused string helpers 2025-09-16 10:17:02 -07:00
Nikita Smith bbe430cc2f write first linker member header with symbol names grouped by member 2025-09-08 16:07:31 -07:00
Nikita Smith ee3832ea3b parallel for lib symbol search 2025-09-08 16:07:31 -07:00
Nikita Smith f2ee135439 fix up symbols visibility 2025-09-05 15:19:31 -07:00
Nikita Smith 6a3d7e65f3 remove year from the copyright 2025-09-05 15:19:31 -07:00
Nikita Smith c397b1dfb1 handle common section case 2025-09-05 15:19:30 -07:00
Nikita Smith 429ba8b080 helper for writing 32-bit address relocation 2025-08-18 19:09:32 -07:00
Nikita Smith 1ce2fbfd1a helper for setting default symbol 2025-08-18 19:09:32 -07:00
Nikita Smith 81c68cfdd3 register common and absolute symbols in library's symbol table 2025-08-18 19:09:31 -07:00
Nikita Smith e27831902e note 2025-08-18 19:09:31 -07:00
Nikita Smith c53b8d43d0 assign symbol indices before serializing symbols so forward-references
are possible
2025-08-18 19:09:31 -07:00
Nikita Smith 2b02f5cec6 lifetime fixes
- fully serialize the lib because we cannot guarantee that its members
  will have the same lifetime as the serialized lib
- put import stub symbols on the symbol table arena
2025-08-10 21:35:33 -07:00
Nikita Smith 7466da1479 mark referenced symbols as live for unresolved-symbol detection 2025-08-08 15:54:21 -07:00
Nikita Smith c1958809eb make use of undocumented anti-dependency search property on weak symbols
to implement alternate name using weak symbols
2025-08-05 08:39:11 -07:00
Nikita Smith a6b2cf64ba WIP collect sections associations 2025-07-23 16:09:48 -07:00
Nikita Smith d32667546d factor out weak symbol resolution logic and apply it to the symbol table
when building link context
2025-07-23 16:09:48 -07:00
Nikita Smith 7769a485ba more merge fixes 2025-06-25 10:53:25 -07:00
Nikita Smith a5119e3b51 WIP function pad min 2025-06-25 10:53:24 -07:00
Nikita Smith ecdee57c60 move helpers to COFF layer 2025-06-25 10:53:24 -07:00
Nikita Smith 69d4e31b15 helper for parsing COFF symbols 2025-06-25 10:53:23 -07:00
Nikita Smith 8fad6da751 add support for associative COMDAT symbols 2025-06-25 10:53:23 -07:00
Nikita Smith 2e531cd70a refactored special case for image base 2025-06-25 10:53:22 -07:00
Nikita Smith c0613c2a7e section align fixes 2025-06-25 10:53:22 -07:00
Nikita Smith a3bcfe01e1 fix signedness issue 2025-06-25 10:53:22 -07:00
Nikita Smith 671431cfbd remove unused define 2025-06-25 10:53:22 -07:00
Nikita Smith c98ae0925f error check relocations 2025-06-25 10:53:22 -07:00
Nikita Smith ad069cb854 unknown relocation 2025-06-25 10:53:22 -07:00
Nikita Smith 73fe9d223a handle /ALTERNATENAME directive 2025-06-25 10:53:22 -07:00
Nikita Smith 71596b2f3e collapse make API for imports 2025-06-25 10:53:22 -07:00
Nikita Smith 65944f0444 clean up pass over COFF writer 2025-06-25 10:53:22 -07:00
Nikita Smith 34a87e7828 create member symbol only for imports with name 2025-06-25 10:53:22 -07:00
Nikita Smith f467ff8822 WIP move export and import table make code to appropriate layers 2025-06-25 10:53:22 -07:00
Nikita Smith 69d5010245 WIP switching to creating import table objs 2025-06-25 10:53:22 -07:00
Nikita Smith 1b21d0709f return symbol for pushed lib member 2025-06-25 10:53:22 -07:00
Nikita Smith c5164bd490 discard null data nodes 2025-06-25 10:53:22 -07:00
Nikita Smith 3ffd8c19ea helper for querying machine specific relocation for virtual offset relocation 2025-06-25 10:53:22 -07:00
Nikita Smith f37f94a2b9 minor fixes 2025-06-25 10:53:22 -07:00
Nikita Smith 35e6b4a9f9 linker directive header fix 2025-06-25 10:53:22 -07:00
Nikita Smith 120829095b COFF lib writer 2025-06-25 10:53:22 -07:00
Nikita Smith 0f81aae985 extend COFF obj writer with ability to produce linker directive section 2025-06-25 10:53:22 -07:00
Nikita Smith b0a652b10b helpers for parsing aux COFF symbols 2025-06-25 10:53:22 -07:00
Nikita Smith f81bab5a4c remove special sort postfix case 2025-06-25 10:53:22 -07:00
Nikita Smith 63a374cf54 simplify COFF reloc apply helper 2025-06-25 10:53:22 -07:00
Nikita Smith e9d5022a55 test section sorter 2025-06-25 10:53:21 -07:00
Nikita Smith f39397fa78 test cycles made from weak symbols 2025-06-25 10:53:21 -07:00
Nikita Smith 2c6db1b566 update COFF type enum strings 2025-06-25 10:53:21 -07:00
Nikita Smith c2a0a6f1e1 factored out format specific relocation code to COFF layer 2025-06-25 10:53:21 -07:00