Commit Graph
100 Commits
Author SHA1 Message Date
Nikita SmithandRyan Fleury e971db7fdd remove unused layout flag in section struct 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 47ef37ed8e fix section order 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 881050addf add default merges and section removes 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury a4b2d40d15 fix sizeof section headers 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 578a7ebdee factor out pdata code to PE layer 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury f055267e59 remove double init and equip of thread contexts 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury aae3874521 disable TLS merge for now 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury c82b98cd49 assign section index to .reloc 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury e1278a6545 null terminate static imports 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury e65d1536b6 dynamic loader crashes if the import data is not in a stand-alone section 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 54e7f9aafc appease ASAN 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 1c656979d2 move MSVC lib symbols to CRT layer 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 47e123221a minor fixes 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 86556c68ed point TLS directory to TLS header 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 3d2b1e19e3 handle communal var vs regular non-comdat symbol 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 42bed0e5c6 merge delayed data section with .data 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury f2394b6cf7 off-by-one 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury e911bf5368 move obj writer for PE debug directory to stand-alone file 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 7f6d8004a9 fix import dll debug symbols 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 89e2ea15ad add /RAD_REMOVE_SECTION switch and special case debug sections 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 9c59cfd4e7 pointless check, in .debug relocations point to __ImageBase 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury d51fe49bab delay import fix 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury dcc4f38709 clean up pass over obj file 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 64415e21f0 special case bss section contribs and fix off by one in range array bsearch 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 37689b2e4a section collector 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 382204a4ea WIP test delay user32 import 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 8fb0aaf2b3 test kernel32 import 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury fb0e8d7579 fix crash on COMDAT folding communal variable 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 9060004827 test for communal variable 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 40efbeb512 test for /INCLUDE 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 8d7bd6f9fe minor fixes
- copy alt name to config arena
- promote alternate name conflict error to stop run
- remove unused error code
2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury da0e7e5f69 test for /ALTERNATENAME 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury ea81d18223 test for out of bounds section number on external symbol 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury ef476bf1f0 tests for COMDAT Associative selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury bf25b5b249 handle COMDAT Associative selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 69d4e31b15 helper for parsing COFF symbols 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 8fad6da751 add support for associative COMDAT symbols 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 889b1807f2 test for COMDAT Largest selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury e97d476c7c test for COMDAT ExactMatch selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury bde11caf11 improve exact match selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 4b8c9db8f5 add dependency to COMDAT symbol so we do not need to link with /OPT:NOREF 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 9bea163d10 test COMDAT SameSize selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury aafb980c6b prevent dropping of newly inserted symbol while selecting slot leader 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury f5504c79e9 test COMDAT any selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 4aa6e6d132 store symbol links for COMDAT 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 9b6a15ce66 headers for delay import table columns 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury f0a967a15d don't create BIAT and UIAT sections when not requested 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 9c93ee1579 compute correct IAT size 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury b1cd2146ac patch export table directory using section contribs 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 0f9321e92a move default linker options to main file 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury dcc8bfcf39 test section merges 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury c2b3634e7a guard against circular section merges 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 2e531cd70a refactored special case for image base 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury d22962af8d warn about exporting entry point symbol 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 90797f363f fix for machine compatibility check 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury b709640ddc test for machine compatibility 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury b7a06f3f7f sort on section index too 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 422e9449c8 natvis for section contrib types 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury b8f45e97c9 test section alignment flags 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 87acc95016 set section align in common block test 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury c0613c2a7e section align fixes 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 681c1619fb finish undefined section test 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury a3bcfe01e1 fix signedness issue 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 671431cfbd remove unused define 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury d5297e01ac workaround for image base address 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 971f6ec368 test virtual offset relocation with __ImageBase 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury c98ae0925f error check relocations 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury ad069cb854 unknown relocation 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 73fe9d223a handle /ALTERNATENAME directive 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 60d3f25057 test for __ImageBase with relative and address relocations 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 03e4958190 assign layout offsets and sizes to merged sections 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f75cdd23d7 collapse linker input states into one state 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury d3c3b672ea image name helper 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 6fd9ab7388 strip postfix when searching for section 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury a2bef106a1 handle case where symbol doesn't have obj 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 1cc23e42ff delay import objs 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury c209dd730a set ordinal low in export finalize path 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury ac261b3eed trim obj paths pulled in from libs 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f2c7e69844 natvis for hash table 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 71596b2f3e collapse make API for imports 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 65944f0444 clean up pass over COFF writer 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 34a87e7828 create member symbol only for imports with name 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 89239fc744 test reloc for section symbol with merged section 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f467ff8822 WIP move export and import table make code to appropriate layers 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 69d5010245 WIP switching to creating import table objs 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 1b21d0709f return symbol for pushed lib member 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 2c5fb7e7ef guard against merges with resource and base reloc sections 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 86fe2ddd38 remove arena per section 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 8da56025b3 patch section symbol and test for relocations to discarded memory 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 40fda5335c move default section flags to separate file to use them in torture 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury bd830a6023 test case for relocation to undefined section with base relocations 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f25dc5cc8d pack export table into obj and input back to the linker 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury c5164bd490 discard null data nodes 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 3ffd8c19ea helper for querying machine specific relocation for virtual offset relocation 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury c55c60549e export virtual ranges for data directories 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f37f94a2b9 minor fixes 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 4161dd0440 check export table entries 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 9bcb227ed9 test imports and exports 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 35e6b4a9f9 linker directive header fix 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury e7c808ee69 test simple lib link 2025-06-25 10:53:22 -07:00