Jakub Konka
1c3fd16c37
elf: write linker-defined symbols to symtab
2023-09-10 09:10:00 +02:00
Jakub Konka
a455b5692a
elf: create required linker-defined symbols
2023-09-10 08:41:13 +02:00
Jakub Konka
a6e9163284
elf: clean up naming and remove unused functions
2023-09-09 16:03:39 +02:00
Jakub Konka
a3372050b1
elf: rename program_headers to phdrs
2023-09-08 23:21:44 +02:00
Jakub Konka
465431807b
elf: write $got symbols into the symtab
2023-09-08 22:53:53 +02:00
Jakub Konka
69738a07c2
elf: store Index rather than ?Index in Atom; gen ABS STT_FILE for zig source
2023-09-08 21:09:45 +02:00
Jakub Konka
6ad5db030c
elf: store GOT index in symbol extra array; use GotSection for GOT
2023-09-08 18:12:53 +02:00
Jakub Konka
9691d1a30f
elf: use zld's update mechanism for symtab for Zig module
2023-09-07 15:45:58 +02:00
Jakub Konka
37e2958f81
elf: write symbtab
2023-09-06 23:43:26 +02:00
Jakub Konka
a2b5a464e6
elf: set atom names
2023-09-06 15:12:43 +02:00
Jakub Konka
93120a81fe
elf: lift-off - get it to compile and run until the error!
2023-09-06 14:42:32 +02:00
Jakub Konka
a9df098cd2
elf: make everything upside down - track by Symbol.Index rather than Atom.Index
2023-09-06 13:14:00 +02:00
Jakub Konka
d9fffd431a
elf: start porting abstraction of input file
2023-09-05 15:55:00 +02:00
Jakub Konka
02451bdebf
elf: atom.index of 0 reserved for null atom
2023-09-04 22:41:50 +02:00
Jakub Konka
7d396110d6
elf: remove dead code
2023-09-04 11:31:48 +02:00
Jakub Konka
bc37c95e56
elf: simplify accessors to symbols, atoms, etc
2023-09-04 11:23:19 +02:00
Jakub Konka
009a349779
elf: add global symbol resolver
2023-09-03 08:32:28 +02:00
Jakub Konka
e265dc61e6
Merge pull request #17057 from ziglang/elf-symtab
...
elf: write all symbols in bulk in flush
2023-09-03 07:52:17 +02:00
Jakub Konka
baea106b71
elf: mark dirty .symtab shdr after updating sh_info field
2023-09-02 23:00:39 +02:00
Josh Wolfe
8b74eae9c6
std.ArrayHashMap.reIndex also recomputes hashes ( #17054 )
2023-09-02 17:00:20 -04:00
Jakub Konka
cfc0429bc9
elf: correctly set symtab's sh_info to first global index
2023-09-02 22:12:49 +02:00
Jakub Konka
9bd60bef2a
elf: write all symbols in bulk in flush
...
This avoids leaving undefined bytes in the output file in case
a decl has been garbage collected before it's been committed into
the binary.
This should have minimal impact on performance since we have to
write globals on every iteration anyway.
2023-09-02 21:49:33 +02:00
Jakub Konka
da56727e6a
elf: write symbol names into .strtab rather than .shstrtab
2023-09-02 15:17:44 +02:00
Jakub Konka
cf3a6fe0f5
dwarf: fix copy-paste typo in variable lowering code for reg and stack
2023-09-02 09:40:12 +02:00
Michal Ziulek
bb2eb44430
std.coff: Fixed compile error.
2023-09-02 00:18:53 +02:00
Jakub Konka
5dc2db8055
Merge pull request #17029 from squeek502/wasi-statFile-libc
...
Fix `Dir.statFile` for WASI when linking libc
2023-09-01 10:13:04 +02:00
Jakub Konka
43b27d47c9
Merge pull request #17030 from ziglang/macho-libsystem
...
macho: improve logic for finding and reporting errors when searching for libSystem and dependencies
2023-09-01 08:00:12 +02:00
Ryan Liptak
01f9cdd21a
Temporarily disable Dir.statFile test when linking glibc
...
See https://github.com/ziglang/zig/issues/17034
2023-08-31 18:01:15 -07:00
Jakub Konka
2187744411
macho: we actually care about stem and not basename for dependencies
2023-09-01 00:43:02 +02:00
Jakub Konka
611ddd426c
macho: forgot to include dirname when resolving dependencies
2023-09-01 00:30:26 +02:00
Jakub Konka
21c04b119e
macho: report missing libSystem/libc system libraries to the user
2023-08-31 23:47:55 +02:00
Ryan Liptak
f46008c1d8
Fix Dir.statFile for WASI when linking libc
...
`statFile` now only uses `os.fstatatWasi` when not linking libc, matching the pattern used throughout other `Dir` functions. This fixes the compilation error: `error: struct 'c.wasi.Stat' has no member named 'fromFilestat'` (which the added test would have failed with)
2023-08-31 14:07:15 -07:00
Jakub Konka
43adfd9689
macho: check if fallback libSystem.{d}.tbd exists in Zig's installation
2023-08-31 22:04:24 +02:00
Jakub Konka
f4c9e19bc3
Merge pull request #17020 from ziglang/macho-versions
...
macho: big-ish refactor and report errors to the user using Zig's API
2023-08-31 07:50:29 +02:00
Jacob Young
e2ff486de5
Sema: cleanup coerceExtra
...
* remove unreachable code
* remove already handled cases
* avoid `InternPool.getCoerced`
* add some undef checks
* error when converting undef int to float
Closes #16987
2023-08-30 16:50:30 -04:00
Jakub Konka
19a1332ca1
macho: improve formatting of invalid targets in libraries
2023-08-30 22:30:42 +02:00
Jakub Konka
a7240f0c99
macho: remove error.UnhandledDwFormValue from link.File
...
Eventually, we will validate DWARF info upfront and report errors
to the user but this will require a rewrite of several parts of
the linker so leaving as a TODO for the near future.
2023-08-30 22:29:27 +02:00
Jakub Konka
ebe371b757
macho: report basic __eh_frame problems as errors
2023-08-30 21:48:24 +02:00
Jakub Konka
ba710ec09d
macho: remove obsolete error.FailedToResolveRelocationTarget
2023-08-30 20:34:16 +02:00
Jakub Konka
5144132320
macho: report formatted error for unhandled symbol types
2023-08-30 20:16:37 +02:00
Jakub Konka
5806e761bb
macho: improve error reporting for re-exports mismatch
2023-08-30 19:02:25 +02:00
Jakub Konka
22c81740ef
macho: convert error.TODOImplementWritingStaticLibFiles into an actual error
2023-08-30 12:37:05 +02:00
Jakub Konka
f21245f5e7
macho: refactor resolving and parsing dependent dylibs
2023-08-30 12:30:17 +02:00
Jakub Konka
ea9f2513a3
macho: format parse error for fat libs to include CPU archs only
2023-08-29 22:26:58 +02:00
Jakub Konka
7e167537c0
macho: simplify handling and reporting parsing errors
2023-08-29 22:16:48 +02:00
Andrew Kelley
49075d2055
Merge pull request #16969 from jacobly0/no-clear-ref-trace
...
Sema: refactor to use fewer catch expressions
2023-08-29 16:13:39 -04:00
Igor Sadikov
4635179857
Optimize std.base64.standard.Encoder.encode
2023-08-29 16:00:31 -04:00
Jakub Konka
79b3285aa2
macho: handle mismatched and missing platform errors
2023-08-29 15:27:44 +02:00
Jakub Konka
1cae41bbbb
macho: clean up array of supported platforms and versions
2023-08-29 12:14:57 +02:00
Jakub Konka
1b01715a73
link: remove unused darwin_sdk_version field
2023-08-29 12:02:58 +02:00