Commit Graph

79 Commits

Author SHA1 Message Date
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
Nikita Smith b9768be4ed tester for linkers 2025-06-25 10:53:21 -07:00
Nikita Smith 19a7ada1dc make export table with COFF obj writer,
partially converted import table to COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith 3a2bb318c7 make import lib objs with COFF obj writer 2025-06-25 10:53:21 -07:00
Nikita Smith c45088b546 replaced dependency on linker's chunking for resource serialization
with COFF obj writer
2025-06-25 10:53:21 -07:00
Ryan Fleury 248a155579 checkpoint on dump parseability pass 2025-06-19 16:48:07 -07:00
Ryan Fleury 058c1454e2 eliminate all extra enums files for formats 2025-06-19 07:25:35 -07:00
Ryan Fleury 94b969f203 copyright year 2025-06-02 14:13:57 -07:00
Nikita Smith 8beb168905 went over COFF string table and changed the parser code accept to String8 2025-04-04 15:45:51 -07:00