15441 Commits

Author SHA1 Message Date
Jakub Konka
b6caab63cb elf: actually commit AtomList.zig 2024-09-04 13:44:06 +02:00
Jakub Konka
f3d527c082 elf: migrate thunks to the new mechanism (AtomList) 2024-09-04 13:34:26 +02:00
Jakub Konka
d302a1068e elf: rename SectionChunk into AtomList and store as part of Section 2024-09-04 13:34:26 +02:00
Jakub Konka
64ad6eff16 elf: create back/forward links for atoms within section chunks 2024-09-04 13:34:26 +02:00
Jakub Konka
6ec8b15918 elf: fix emitting static lib when ZigObject is present 2024-09-04 13:34:26 +02:00
Jakub Konka
801f038c2c elf: do not pad placeholders coming from input object files
This is currently not entirely accurate since no padding will affect
the last-most atom of ZigObject that should be padded.
2024-09-04 13:34:26 +02:00
Jakub Konka
eeec50d251 elf: misc .eh_frame management fixes 2024-09-04 13:34:26 +02:00
Jakub Konka
fca92fd7c0 elf: copy existing data when allocating other alloc sections in relocatable mode 2024-09-04 13:34:26 +02:00
Jakub Konka
5cdad186fe elf: do not create .eh_frame section if ZigObject already did so in relocatable mode 2024-09-04 13:34:26 +02:00
Jakub Konka
88e0d49feb elf: init rela sections in a separate pass for ZigObject 2024-09-04 13:34:26 +02:00
Jakub Konka
2ef3e30e2d elf: emit relocs for self-hosted generated .eh_frame section 2024-09-04 13:34:26 +02:00
Jakub Konka
5cb51c10de elf: fix relocatable mode 2024-09-04 13:34:26 +02:00
Jakub Konka
6b53dc9461 elf: actually allocate atoms within each section chunk 2024-09-04 13:34:26 +02:00
Jakub Konka
6a50a0f0ed elf: update osec index for section chunks in objects 2024-09-04 13:34:26 +02:00
Jakub Konka
f87a7251a3 elf: actually write allocated atoms in object files 2024-09-04 13:34:26 +02:00
Jakub Konka
874ef6308e elf: do not create .eh_frame section if ZigObject already did so 2024-09-04 13:34:26 +02:00
Jakub Konka
45e46f0fb9 elf: allocate atom chunks using allocateChunk mechanics in objects 2024-09-04 13:34:25 +02:00
Jakub Konka
1ef96f05eb elf: introduce SectionChunk - a container of atoms per object file 2024-09-04 13:34:25 +02:00
Jakub Konka
6ec5df3898 elf: allocate .tdata and .tbss using allocateAtom mechanics 2024-09-04 13:34:25 +02:00
Jakub Konka
3e100c5dab dwarf: make Section.off a function 2024-09-04 13:34:25 +02:00
Jakub Konka
da60159d85 elf+dwarf: refer sections via section symbols 2024-09-04 13:34:25 +02:00
Jakub Konka
acb91f4b30 elf: fix emitting correct .rela. sections in -r mode 2024-09-04 13:34:25 +02:00
Jakub Konka
25fa092bb1 elf: fix a typo in setting ZigObject.data_relro_index 2024-09-04 13:34:25 +02:00
Jakub Konka
bc39bddd5f elf: remove isDebugSection helper 2024-09-04 13:34:25 +02:00
Jakub Konka
ef6ee90ff8 elf: remove now unused number_of_zig_segments 2024-09-04 13:34:25 +02:00
Jakub Konka
2d0f4fc9c0 elf: allocate .text in ZigObject similarly to .eh_frame 2024-09-04 13:34:25 +02:00
Jakub Konka
848535535d elf: allocate .data.rel.ro and .rodata in ZigObject similarly to .eh_frame 2024-09-04 13:34:25 +02:00
Jakub Konka
0b92404ddf elf: allocate .data in ZigObject similarly to .eh_frame 2024-09-04 13:34:25 +02:00
Jakub Konka
37a1f0e7f2 elf: allocate .bss in ZigObject similarly to .eh_frame 2024-09-04 13:34:25 +02:00
Jakub Konka
8f1ce3c85b elf: shuffle some stages to make it clear what needs what 2024-09-04 13:34:25 +02:00
Jakub Konka
d32af9ea2a elf: move initOutputSection into Elf from Object 2024-09-04 13:34:25 +02:00
Jakub Konka
b44dd599ad elf: split Atom.allocate into Atom-independent parts 2024-09-04 13:34:25 +02:00
Alex Rønne Petersen
290ccb160e glibc: Avoid building and linking stub libraries that were emptied in 2.34.
Closes #20919.
2024-09-03 17:33:23 -07:00
Andrew Kelley
242d268a06
Merge pull request #21277 from antlilja/llvm-module-flags
LLVM: Set module flags through Builder instead of LLVM API bindings
2024-09-02 17:57:27 -07:00
mlugg
6e3e23a941
compiler: implement decl literals
Resolves: #9938
2024-09-01 17:34:07 +01:00
mlugg
9e683f0f35
compiler: provide result type to operand of try
This is mainly useful in conjunction with Decl Literals (#9938).

Resolves: #19777
2024-09-01 17:34:07 +01:00
David Rubin
fbac7afa0f
riscv: implement errunion_payload_ptr_set 2024-09-01 17:34:06 +01:00
WillLillis
28383d4d98 fix(Sema): patch segfault in finishStructInit 2024-09-01 17:31:00 +03:00
antlilja
15b4c01ab1 Rename usesLargePIC to picLevel and return the PIC level 2024-09-01 15:12:49 +02:00
antlilja
76908da3ac LLVM: Set module flag behaviors to match what LLVM and clang does 2024-09-01 14:43:30 +02:00
antlilja
7cb87c14fe LLVM: Remove cpp bindings for setPICLevel, setPIELevel and setCodeModel 2024-09-01 14:21:19 +02:00
antlilja
629bd90e26 LLVM: Emit module flags through Builder instead of LLVM API 2024-09-01 14:10:56 +02:00
Andrew Kelley
e084c46ed6 fix invisible merge conflict 2024-08-30 14:55:28 -07:00
Andrew Kelley
e4e91a1314
Merge pull request #21224 from alexrp/mips-gnu-fixes
Fix MIPS PIC level and work around an LLVM bug for `mips(el)-linux-gnueabi(hf)`
2024-08-30 14:47:43 -07:00
Andrew Kelley
5d08b7f054
Merge pull request #21178 from alexrp/glibc-thumb
`std.zig.target`: Remove `thumb*-linux-gnueabi*` target triples.
2024-08-30 14:35:30 -07:00
Andrew Kelley
a4cc43c42b
Merge pull request #21174 from alexrp/win-arm
Change `arm-windows-gnu` to `thumb-windows-gnu`, plus some initial port work
2024-08-30 14:34:53 -07:00
Alex Rønne Petersen
5723fcaac1 llvm: Pass EmitOptions to libzigcpp by pointer.
Passing it by value means that bringup on new architectures is harder for no
real benefit. Passing it by pointer allows to get the compiler running without
needing to figure out the C calling convention details first. This manifested in
practice on LoongArch, for example.
2024-08-30 11:02:12 -07:00
Jacob Young
a1a9d7440c Elf: fix reference from eh_frame_hdr to eh_frame 2024-08-30 09:24:32 -04:00
Jacob Young
7305184203 dwarf: share and use std.dwarf.EH_PE constants 2024-08-30 09:24:32 -04:00
Jacob Young
f0c0f697a6 Dwarf: fix zir inst index comparison not checking the file 2024-08-30 08:21:24 -04:00