Jakub Konka
116ea1bf2c
zld: assume remaining undefs are from libSystem
2021-04-13 10:56:03 +02:00
Jakub Konka
b0105029ca
zld: refactor object and archive parsing
2021-04-13 10:56:03 +02:00
Jakub Konka
988b184d03
zld: redo symbol resolution in objects
...
Store only globals and undefs at the linker level, while all locals
stay scoped to the actual object file they were defined in. This is
fine since the relocations referencing locals will always be resolved
first using the local symbol table before checking for the reference
within the linker's global symbol table.
This also paves the way for proper symbol resolution from within static
and dynamic libraries.
2021-04-13 10:56:03 +02:00
Andrew Kelley
f75cdd1acd
Merge pull request #8470 from ziglang/stage2-start
...
stage2: blaze the trail for std lib integration
2021-04-09 10:15:46 -07:00
Luuk de Gram
eaaf75c157
Fix memory cleanup and update unplugging to avoid infinite loop
2021-04-09 09:24:52 +02:00
Andrew Kelley
61b868f9a5
stage2: simplify Decl src_node field
...
Also fix "previous definition here" error notes to be correct.
2021-04-08 20:37:19 -07:00
Luuk de Gram
ff5774d93d
Refactor link/wasm.zig to use offset table
...
This refactor inserts an offset table into wasm's data section
where each offset points to the actual data region.
This means we can keep offset indexes consistant and do not
have to perform any computer to determine where in the data section
something like a static string exists. Instead during runtime
it will load the data offset onto the stack.
2021-04-08 22:47:08 +02:00
Luuk de Gram
47f3642788
Cleanup
2021-04-08 22:47:08 +02:00
Luuk de Gram
9fd1dab582
Handle incremental compilation correctly
2021-04-08 22:47:08 +02:00
Luuk de Gram
1bd5552fc1
Calculate data length to ensure correct pointer offsets
2021-04-08 22:47:08 +02:00
Luuk de Gram
00b2e31589
Basic "Hello world" working
2021-04-08 22:47:08 +02:00
joachimschmidt557
d7a89f9876
stage2 AArch64: Add conditional branch instructions
2021-04-08 13:39:11 -07:00
gracefu
ec84742c89
stage2 wasm codegen: refactor to use wasm.buildOpcode
2021-04-05 16:19:52 +08:00
Andrew Kelley
281a7baaea
Merge remote-tracking branch 'origin/master' into zir-memory-layout
...
Wanted to make sure those new test cases still pass.
Also grab that CI fix so we can get those green check marks.
2021-03-28 19:42:43 -07:00
jacob gw
0005b34637
stage2: implement sema for @errorToInt and @intToError
2021-03-28 18:22:01 -07:00
Jakub Konka
f1e324216d
zld: parse archive's table of contents
2021-03-25 22:48:04 +01:00
Jakub Konka
3b48ea874e
zld: naively handle static initializers in C++
2021-03-22 17:14:53 +01:00
Timon Kruiper
a710368054
stage2: restructure LLVM backend
...
The LLVM backend is now structured into 3 different structs, namely
Object, DeclGen and FuncGen. Object represents an object that is
generated by the LLVM backend. DeclGen is responsible for generating
a decl and FuncGen is responsible for generating llvm instructions
from tzir in a function.
2021-03-20 15:10:44 -07:00
Jakub Konka
f6ba810f27
zld: apply offset for DICE in archive
2021-03-19 23:37:16 +01:00
Jakub Konka
652842637c
zld: continue on invalid/missing debug info
2021-03-19 20:05:02 +01:00
Jakub Konka
d1b376cac9
zld: fix parsing archive/object name from header
2021-03-19 11:06:51 +01:00
Andrew Kelley
f5aca4a6a1
Merge remote-tracking branch 'origin/master' into zir-memory-layout
...
I need the enum arrays that were just merged into master.
2021-03-18 15:52:12 -07:00
Jakub Konka
f3b4f79c7f
zld: temporarily disable testing shared lib linking
2021-03-18 11:10:31 +01:00
Jakub Konka
2cf1c1b96b
macho: honor verbose_link when linking with zld
2021-03-18 11:10:09 +01:00
Jakub Konka
861ea64009
macho: remove now obsolete LLD fixups
2021-03-18 11:09:47 +01:00
Andrew Kelley
66245ac834
stage2: Module and Sema are compiling again
...
Next up is reworking the seam between the LazySrcLoc emitted by Sema
and the byte offsets currently expected by codegen.
And then the big one: updating astgen.zig to use the new memory layout.
2021-03-17 22:54:56 -07:00
Jakub Konka
7516dfff83
zld: use zld when linking aarch64 by default and cross-comp
2021-03-18 00:37:13 +01:00
Jakub Konka
900658a85d
rebase with master
2021-03-17 20:05:29 +01:00
Jakub Konka
1ec620be62
zld: fix GOT loads and indirection on x86_64
2021-03-17 19:59:57 +01:00
Jakub Konka
ac0c669473
zld: add/fix more issues
...
* fix debug info for static archives
* allow handling of empty object files
* fix some relocs for GOT loads
2021-03-17 19:59:13 +01:00
Jakub Konka
de209afbba
zld: fix TLV initializers
2021-03-17 19:59:13 +01:00
Jakub Konka
349f878ecf
zld: mimick Apple and add __DATA_CONST seg
2021-03-17 19:59:13 +01:00
Jakub Konka
62f43fbc06
zld: clean up use of commands.zig module
2021-03-17 19:59:13 +01:00
Jakub Konka
d484b3b3cb
zld: use aarch64 for opcodes
2021-03-17 19:59:13 +01:00
Jakub Konka
dc34ac2b9e
zld: fix incorrect offset calc for DICE
2021-03-17 19:59:13 +01:00
Jakub Konka
5d8944edc1
Revert log.warn hack
2021-03-17 19:59:13 +01:00
Jakub Konka
a1b0ec5277
zld: start bringing x64 up to speed
2021-03-17 19:59:13 +01:00
Jakub Konka
066c1386a3
zld: demote logs from warn to debug
2021-03-17 19:59:13 +01:00
Jakub Konka
b0ee480177
zld: merge and sort sections
2021-03-17 19:59:13 +01:00
Jakub Konka
44ebf48631
zld: fix handling of section alignment
2021-03-17 19:59:13 +01:00
Jakub Konka
7c22f4f851
zld: pass test-std and test-compiler-rt
2021-03-17 19:59:13 +01:00
Jakub Konka
7cbdbab376
zld: differentiate locals from globals
2021-03-17 19:59:13 +01:00
Jakub Konka
7e32947871
zld: add nop to reloc module
2021-03-17 19:59:13 +01:00
Jakub Konka
d2008db623
zld: bullet-proof stubs for long jumps
2021-03-17 19:59:13 +01:00
Jakub Konka
14590795b1
zld: cleanup section alignment when allocating
2021-03-17 19:59:13 +01:00
Jakub Konka
586c704212
zld: pass stage2 tests linked with zld!
2021-03-17 19:59:13 +01:00
Jakub Konka
e825a15b05
zld: replace ldr with add if indivisible
2021-03-17 19:59:13 +01:00
Jakub Konka
f52f23618d
macho: start upstreaming zld
2021-03-17 19:59:13 +01:00
Jakub Konka
e5234c0e9e
macho: offset table part of GOT
2021-03-17 12:16:36 +01:00
Jakub Konka
b9fa80e588
macho: use latest bind functionality
2021-03-17 12:10:39 +01:00