Jakub Konka
d2727b808c
elf: fix 32bit build
2023-10-16 19:56:47 +02:00
Jakub Konka
e89155b565
elf: refactor logs
2023-10-16 19:33:06 +02:00
Jakub Konka
ee1c3c7058
elf: correctly copy and write out debug sections
2023-10-16 19:33:06 +02:00
Jakub Konka
b0e2c6323b
elf: sort PT_LOAD by address in PHDR table
...
Turns out order matters as otherwise we face unexplainable
segfaults to do with improper page mapping in static environments
(dynamic environments seem unaffected).
2023-10-16 19:33:06 +02:00
Jakub Konka
6993b3e23e
codegen: refactor .actual_got into .extern_got
2023-10-16 19:33:06 +02:00
Jakub Konka
d3b1c903dd
elf: emit empty TLS phdr when linking against musl libc even if unneeded
2023-10-16 19:33:06 +02:00
Jakub Konka
5192a2fbbe
elf: do not allocate zerofill segment in file offsets
2023-10-16 19:33:06 +02:00
Jakub Konka
17b8e8ab29
elf: sort the entire shdr table the usual way
2023-10-16 19:33:06 +02:00
Jakub Konka
46cf4c5d93
elf: sort phdr table
2023-10-16 19:33:06 +02:00
Jakub Konka
5423778f6f
elf: add self-hosted tests
2023-10-16 19:33:06 +02:00
Jakub Konka
7b2cbcf0fe
codegen+elf: check if extern is a variable ref
2023-10-16 19:33:06 +02:00
Jakub Konka
45197ea7ad
codegen+elf: lower imported data refs
2023-10-16 19:33:06 +02:00
Jakub Konka
c71a79f618
elf: make .zig.rodata writeable
2023-10-16 19:33:06 +02:00
Jakub Konka
17635e4f2a
x86_64: add -fPIC support targeting ELF
2023-10-16 19:33:06 +02:00
Jakub Konka
b3d98a4b88
elf: emit dynamic base relocs for .zig.got entries when required
2023-10-16 19:33:06 +02:00
Jakub Konka
315cd7623e
elf: fix section sorting logic
2023-10-16 19:33:05 +02:00
Jakub Konka
5fad683791
elf: emit (broken) debug sections
2023-10-16 19:33:05 +02:00
Jakub Konka
85d451f96c
elf: re-enable self-hosted backends
2023-10-16 19:33:05 +02:00
Jakub Konka
7be983ac92
elf: create new synthetic section ZigGotSection
2023-10-16 19:33:05 +02:00
Jakub Konka
9b6337ab06
elf: exclude Zig special sections from bulk alloc
2023-10-16 19:33:05 +02:00
Jakub Konka
9da6574f7b
elf: refactor
2023-10-16 19:33:05 +02:00
Jakub Konka
716a45a209
elf: use findFreeSpace mechanics to allocate object-extracted segments
2023-10-16 19:33:05 +02:00
Jakub Konka
5ff12003ee
elf: dynamically allocate SHDR table
2023-10-16 19:33:05 +02:00
Jakub Konka
1939c7d182
elf: clean up logic for allocating TLS segment
2023-10-16 19:33:05 +02:00
Jakub Konka
c87e73b19f
elf: allocate non-alloc sections using incremental mechanism
2023-10-16 19:33:05 +02:00
Jakub Konka
2aa6099ad9
elf: assume only one TLS segment for now
2023-10-16 19:33:05 +02:00
Jakub Konka
8be71906d9
elf: split allocating sections/segments into alloc and non-alloc
2023-10-16 19:33:05 +02:00
Jakub Konka
bcce035636
elf: bring back PT_LOAD for PT_PHDR for incremental codepath
2023-10-16 19:33:05 +02:00
Jakub Konka
43397bbdc4
elf: always write SHDR table, at least for now
2023-10-16 19:33:05 +02:00
Jakub Konka
6a7a20520d
elf: always write PHDR table, at least for now
2023-10-16 19:33:05 +02:00
Jakub Konka
5148e38751
elf: create and allocate special PHDRs out of the loop
2023-10-16 19:33:05 +02:00
Jakub Konka
59fcf16732
elf: move creation of PT_PHDR out of initPhdrs and initMetadata
2023-10-16 19:33:05 +02:00
Jakub Konka
e571208433
elf: rename Zig-specific section handles to _zig_ infixed
2023-10-16 19:33:05 +02:00
Jakub Konka
871591ca1c
elf: fix conflicts after rebase gone bad
2023-10-16 19:33:05 +02:00
Jakub Konka
b3f40c35dc
elf: fix testTlsOffsetAlignment test
2023-10-16 19:33:05 +02:00
Jakub Konka
67a02bee2c
elf: port more linker tests
2023-10-16 19:33:05 +02:00
Jakub Konka
81b68c7465
elf: port more linker tests
2023-10-16 19:33:05 +02:00
Jakub Konka
0b37a9c78d
elf: fix GotSection.write in presence of TLSLD symbol
2023-10-16 19:33:05 +02:00
Jakub Konka
898c87bd2a
elf: port more linker tests
2023-10-16 19:33:05 +02:00
Jakub Konka
1fe0fd69e0
elf: port more linker tests
2023-10-16 19:33:05 +02:00
Jakub Konka
9487007ffe
elf: port more linker tests
2023-10-16 19:33:05 +02:00
Jakub Konka
1efc0519ce
elf: make init/fini sorting deterministic
2023-10-16 19:33:05 +02:00
Jakub Konka
44f3085851
elf: refactor tests and disable currently impossible combinations
2023-10-16 19:33:05 +02:00
Jakub Konka
df656c4eef
elf: test exporting symbols in exes
2023-10-16 19:33:05 +02:00
Jakub Konka
f2ad71991a
elf: test --export-dynamic flag
2023-10-16 19:33:05 +02:00
Jakub Konka
20980b33e3
elf: test entry point
2023-10-16 19:33:05 +02:00
Jakub Konka
9861a9ea75
elf: test various copyrel edge cases
2023-10-16 19:33:05 +02:00
Jakub Konka
b6006df565
elf: refactor canonical PLT test
2023-10-16 19:33:05 +02:00
Jakub Konka
1772dbb503
elf: fix generating .plt.got indirection
2023-10-16 19:33:05 +02:00
Jakub Konka
06f3b385c4
elf: fix alignment of .eh_frame_hdr section
2023-10-16 19:33:05 +02:00