23662 Commits

Author SHA1 Message Date
Jakub Konka
c4a63389e4
Merge pull request #15371 from ziglang/better-elf
link: make GOT (and other synthetic sections) handling common across linkers
2023-04-22 13:39:07 +02:00
dweiller
68e4a57847 docgen: fix exe_build_err code snippets
Fixes #15297.
2023-04-22 14:30:08 +03:00
David CARLIER
29bc6fc242 process: totalSystemMemory freebsd portage 2023-04-22 14:10:30 +03:00
Borja Clemente
bd801dc489
std: GPA deinit return an enum instead of a bool 2023-04-22 14:09:44 +03:00
David CARLIER
3f259d3550 std: adding netbsd's pthread to cpu affinity api 2023-04-22 13:59:00 +03:00
Bogdan Romanyuk
b22155d352
Add doc comments for ComptimeStringMap
Some parts of stdlib are still undocumented yet.
2023-04-22 13:55:30 +03:00
David CARLIER
dbdafb6cc5 os: expand sched_getaffinity wrapper and update freebsd's cpuset api flags. 2023-04-22 13:54:57 +03:00
-k
0282c2a924 doc: fix minor grammar issues 2023-04-22 13:09:15 +03:00
Manlio Perillo
4374ce51b0 std.Build.RunStep: fix captureStdOut function return type
The return type of the captureStdOut function is incorrect.
Replace *std.Build.GeneratedFile with std.Build.FileSource.
2023-04-21 15:24:23 -07:00
Jakub Konka
14dfbbc213 macho: rebase lazy pointers and apply corrected base offset 2023-04-21 22:44:28 +02:00
Jakub Konka
9a181f367d macho: mark relocs dirty by target when updating GOT/stubs 2023-04-21 22:44:28 +02:00
Jakub Konka
a596e48d8f coff: mark relocs dirty by target when updating GOT 2023-04-21 22:44:28 +02:00
Jakub Konka
dd300d92e1 coff: treat vmaddr of 0 as unallocated when checking if resolvable 2023-04-21 22:44:28 +02:00
Jakub Konka
bee35fe3f0 coff: add image base to GOT relocations
Sort base relocations by address for deterministic debugging.
2023-04-21 22:44:28 +02:00
Jakub Konka
ae8fb21514 coff: use TableSection for GOT 2023-04-21 22:44:28 +02:00
Jakub Konka
d6e66cff12 macho: fix dirtying of GOT entries 2023-04-21 22:44:28 +02:00
Jakub Konka
f9e9974c8f macho: skip GOT for TLVs; handle them separately when lowering 2023-04-21 22:44:27 +02:00
Jakub Konka
9530b95afe macho: refactor common codepath for collecting bindings from TableSection 2023-04-21 22:44:27 +02:00
Jakub Konka
cec4755310 macho: do not allocate atom for __stub_helper preamble 2023-04-21 22:44:27 +02:00
Jakub Konka
fa40267b04 macho: do not allocate atoms for stub entries 2023-04-21 22:44:27 +02:00
Jakub Konka
c55e821df6 macho: resolve relocs before writing to memory (fixes HCS) 2023-04-21 22:44:27 +02:00
Jakub Konka
91bb9302e5 macho: correctly dirty the GOT table after memory realloc 2023-04-21 22:44:27 +02:00
Jakub Konka
c6e916d7fe macho: fix runtime panics 2023-04-21 22:44:27 +02:00
Jakub Konka
711bc2cf39 macho: use generic TableSection for GOT mgmt 2023-04-21 22:44:27 +02:00
Jakub Konka
8e3100ae02 elf: make TableSection a generic construct 2023-04-21 22:44:27 +02:00
Jakub Konka
8a3ad3f620 elf: do not reserve a GOT slot for every Atom 2023-04-21 22:44:25 +02:00
Andrew Kelley
528b66f6ec
Merge pull request #15355 from mlugg/feat/liveness-control-flow
Liveness: control flow analysis and other goodies
2023-04-21 13:32:25 -07:00
Frank Denis
391663e497
AEGIS MAC: add support for 128-bit tags (#15379)
When used as a MAC, 256-bit tags are recommended.
But in interactive protocols, 128 bits may be acceptable.
2023-04-21 19:52:33 +00:00
David CARLIER
83970b6d91 std: adding freebsd's elf_aux_info api 2023-04-21 11:42:49 -07:00
Eric Rowley
a774f93344 Do not use -fPIC when compiling a UEFI application 2023-04-21 08:22:27 +03:00
Andrew Kelley
a86759984c
Merge pull request #15316 from xEgoist/fileDisposition
windows: use NtSetInformationFile in DeleteFile.
2023-04-20 16:30:27 -07:00
Jan Philipp Hafer
8674418454 compiler_rt: README stubs for arbitrary precision big integer library routines
Document current status of exports and intended design being inspired by
Integer Operations.
2023-04-20 16:04:10 -07:00
Andrew Kelley
a1f7c8d860
Merge pull request #14696 from r00ster91/thread
std.Thread: use dead code
2023-04-20 16:03:12 -07:00
Stevie Hryciw
e8fdb249b6 std.math.big.int: Initialize limbs in addWrap
When a big.Int.Mutable had more than two limbs, it was possible for
this function to change the `len` field without zeroing limbs in the
active range. These uninitialized limbs would then be used in
`truncate()` and could cause invalid results.

Closes #13571
2023-04-20 16:00:37 -07:00
zooster
7d90410b96
std.math: add lerp (#13002) 2023-04-20 18:52:44 -04:00
zooster
b7c00999be std.fs: add linking docs to makeDir*
Docs that link back to the other similar functions.
2023-04-20 15:47:39 -07:00
Andrew Kelley
304e4082a0
Merge pull request #15193 from davidgm94/dwarf-64-bit-format
Expose an option for producing 64-bit DWARF format
2023-04-20 15:20:12 -07:00
Andrew Kelley
ceff278202 fixes to the previous commit
* CompileStep: Avoid calling producesPdbFile() to determine whether the
   option should be respected. If the user asks for it, put it on the
   command line and let the Zig CLI deal with it appropriately.
 * Make the namespace of `std.dwarf.Format.dwarf32` no longer have a
   redundant "dwarf" in it.
 * Add `zig cc` integration for `-gdwarf32` and `-gdwarf64`.
 * Toss in a bonus bug fix for `-gdwarf-2`, `-gdwarf-3`, etc.
 * Avoid using default init values for struct fields unnecessarily.
 * Add missing cache hash addition for the new option.
2023-04-20 15:17:07 -07:00
David Gonzalez Martin
d026202a26 Expose an option for producing 64-bit DWARF format
This commit enables producing 64-bit DWARF format for Zig executables
that are produced through the LLVM backend. This is achieved by exposing
both command-line flags and CompileStep flags. The production of the
64-bit format only affects binaries that use the DWARF format and it is
disabled on MacOS due to it being problematic. This commit, despite
generating the interface for the Zig user to be able to tell the compile
which format is wanted, is just implemented for the LLVM backend, so
clang and the self-hosted backends will need this to be implemented in a
future commit.

This is an effort to work around #7962, since the emission of the 64-bit
format automatically produces 64-bit relocations. Further investigation
will be needed to make DWARF 32-bit format to emit bigger relocations
when needed and not make the linker angry.
2023-04-20 14:46:53 -07:00
mlugg
b3f9fe6d04
Unify incremental test cases and disable many
The self-hosted aarch64 backend is not currently functional due to the
Liveness changes. A previous commit disabled aarch64 on the behavior
tests; this commit disables it and arm for the test cases. Moreover, all
incremental test cases have been unified into shared cross-platform
cases, which can be gradually enabled as the backends improve.
2023-04-20 20:49:36 +01:00
Jacob Young
52fe2ebee8
behavior: fix test disable condition 2023-04-20 20:49:35 +01:00
Jacob Young
06992e159b
x86_64: fix merge conflict 2023-04-20 20:49:35 +01:00
Jacob Young
9f1409cabc
x86_64: adapt to new isUnused liveness change 2023-04-20 20:49:35 +01:00
Jacob Young
d5879ad1d0
x86_64: enable advanced test runner on Linux 2023-04-20 20:49:35 +01:00
Jacob Young
641bfb939f
x86_64: use liveness block deaths 2023-04-20 20:49:35 +01:00
Jacob Young
7794186210
x86_64: disable some behavior tests
These backends doesn't support the new liveness yet.
2023-04-20 20:49:35 +01:00
Jacob Young
07d57623b3
x86_64: instruction tracking cleanup 2023-04-20 20:49:35 +01:00
Jacob Young
f18ee1e2a2
x86_64: add block death workaround 2023-04-20 20:49:35 +01:00
Jacob Young
488d804a1c
x86_64: rewrite inst tracking 2023-04-20 20:49:34 +01:00
mlugg
6f09a7041e
Begin integrating new liveness analysis into remaining backends 2023-04-20 20:49:34 +01:00