LemonBoy
58c2bec589
stage1: Fix ICE when generating struct fields with padding
...
Make gen_const_ptr_struct_recursive aware of the possible presence of
some trailing padding by always bitcasting the pointer to its expected
type.
Not an elegant solution but makes LLVM happy and is consistent with how
the other callsites are handling this case.
Fixes #5398
2020-11-25 15:36:33 -08:00
Andrew Kelley
500fbdad57
update stack trace test with new start.zig line number
2020-11-25 00:40:50 -07:00
Andrew Kelley
479f259ea4
make start code more versatile
...
* always align the stack to 16. I saw an instance on x86_64 linux where
it was needed.
* detect at runtime if being interpreted by a dynamic loader and if so
avoid clobbering the fs register.
2020-11-24 19:51:24 -07:00
LemonBoy
8ed7561422
std: Re-enable the use of O_EXLOCK/O_SHLOCK on macos
2020-11-24 10:23:54 +01:00
Jonathan Marler
a1fb10b766
fix for GCC 9.2: -Wno-maybe-uninitialized
2020-11-23 17:55:48 -08:00
Frank Denis
70c8cabb34
Update the minimum cmake version we require
...
Recent versions of cmake complain about it:
<<
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
>>
We don't require anything from version 2.8.5, and version 2.8.12 was
released in 2011, so it is very unlikely that anyone still uses 2.8.5.
2020-11-23 12:44:54 -08:00
LemonBoy
26d20e39fc
std: Close dangling fd on error
...
This patch was already submitted for openFileZ, createFileZ was left
unpatched.
2020-11-23 18:00:05 +01:00
LemonBoy
0d4f05bb8a
std: Remove O_NONBLOCK flag after locking
...
We only need O_NONBLOCK when O_SHLOCK/O_EXLOCK are used and we don't
want open() to block, don't let this bit leak to the user fd.
2020-11-23 18:00:05 +01:00
LemonBoy
f8ddc3d873
std: Fix file locking logic for BSD targets
2020-11-23 18:00:05 +01:00
Andrew Kelley
9d2fe1682f
Merge pull request #7204 from LemonBoy/piecrash
...
Fix logic for detecting _DYNAMIC symbol
2020-11-23 08:55:34 -08:00
LemonBoy
3e22077d46
Fix the ELF base calculation
...
Find the effective ELF load address in dl_iterate_phdr by computing the
difference between the in-memory phdr and its p_vaddr specified in the
ELF file.
This makes the dl_iterate_phdr test pass and restores the stack traces.
2020-11-23 15:06:07 +01:00
LemonBoy
0a84f85945
Minor code cleanup in start_pie.zig
...
Thanks @daurnimator for catching this.
2020-11-23 12:36:40 +01:00
LemonBoy
bfa7e5c743
Update stack_traces test
2020-11-23 12:36:03 +01:00
LemonBoy
560043dadf
Fix logic for detecting _DYNAMIC symbol
...
Prevent spurious crashes for non-PIE executables.
2020-11-23 12:00:12 +01:00
Andrew Kelley
c7170e4a54
Support PIE (Position Independent Executables)
...
Closes #4503
Revives #3960
Merges branch 'pie' into master
2020-11-22 17:30:34 -07:00
Andrew Kelley
abc717f203
modernize the PIE patch for the latest master branch
...
This is the part of #3960 that has to be rewritten to apply to latest
master branch code.
2020-11-22 17:28:11 -07:00
Andrew Kelley
55ab50efbd
Merge branch 'piepiepie' of https://github.com/LemonBoy/zig into pie
...
Conflicts:
lib/std/dynamic_library.zig (fixed in this commit)
src/all_types.hpp
src/codegen.cpp
src/link.cpp
src/main.cpp
Will manually apply the diffs to these deleted files to the new zig
code in a followup commit.
2020-11-22 12:39:44 -07:00
Vexu
98d5bfbd4d
update grammar in langref
2020-11-22 21:30:09 +02:00
Žiga Željko
2fbe9519ac
std: add support for ppoll
2020-11-21 14:06:04 -08:00
LemonBoy
a2e9554699
std: Add test for meta.declarations on opaque{}
2020-11-21 14:03:49 -08:00
Andrew Kelley
7dcda5b0e8
Merge pull request #7182 from LemonBoy/externnnn
...
Initial implementation of @extern builtin
2020-11-21 09:41:49 -08:00
LemonBoy
ccdaf946b9
Rename back to extern, extend a stage1 parser hack
...
Make it recognize extern/export symbols prefixed by @ as a builtin
rather than stand-alone keywords.
2020-11-21 09:48:21 +01:00
Andrew Kelley
bf0cc32aa6
Merge pull request #7165 from LemonBoy/ppc64final
...
Make the PPC64 port usable
2020-11-20 17:40:17 -08:00
Isaac Freund
8cf319d206
std/os: define and use dev_t for linux x86_64
2020-11-20 17:35:52 -08:00
Sébastien Marie
87eb498d89
openbsd: malloc_usable_size is unavailable on OpenBSD
2020-11-20 17:31:29 -08:00
Isaac Freund
f473b3e87c
std/os: add time_t definiton for x86_64 linux
2020-11-20 17:23:43 -08:00
LemonBoy
6029114f84
stage1: Resolve usingnamespace decls when calling @typeInfo
...
Closes #7176
2020-11-20 17:01:23 -08:00
LemonBoy
9b7d9c72b0
stage1: Initial implementation of @extern
2020-11-20 22:32:43 +01:00
LemonBoy
2193bbfd93
Skip f16 to f128 conversion test for ppc64
...
As for aarch64 we're waiting for LLVM to emit calls to the specific
builtins that implement this conversion.
2020-11-20 08:38:11 +01:00
LemonBoy
f2b4e6b2e7
Better coverage in @splat tests
...
Cover more common and uncommon cases.
2020-11-20 08:38:10 +01:00
LemonBoy
9c5eea9f40
stage2: Use correct ppc generic feature set
2020-11-20 08:38:10 +01:00
LemonBoy
e374ae3598
std: Use newfstatat on PPC64
...
One more variation in the syscall table, hooray!
2020-11-20 08:38:10 +01:00
LemonBoy
4e2a4e194b
std: Use correct clone() stub
...
The previous clone() definition was written for 32bit PPC targets,
trying to execute it on a PPC64 machine lead to countless crashes.
Use the clone() definition kindly lifted from Musl libc.
2020-11-20 08:38:10 +01:00
LemonBoy
3da6b1218a
std: Implement named arguments & runtime width/precision
2020-11-20 08:36:47 +01:00
LemonBoy
6b39167fdc
std: Rewrite the fmt parser
...
Turn the FSM parser into a linear one so that's easier to implement new
features and/or more error checking without adding more and more states.
Functionally-speaking the two parsers are at feature parity.
2020-11-20 08:36:10 +01:00
Andrew Kelley
73be59433f
Merge pull request #6928 from data-man/reduce_tests
...
Add more tests for reduce
2020-11-19 17:48:18 -08:00
Jakub Konka
c25cb39d17
Merge pull request #7160 from semarie/openbsd-getdents
...
openbsd: getdents could return invalid entry with d_fileno==0
2020-11-20 00:23:57 +01:00
Isaac Freund
a5691ee363
std.meta.declarations: support opaque {}
2020-11-19 15:04:38 -08:00
Andrew Kelley
473cb1fd74
Merge pull request #6390 from LemonBoy/reboot-3970
...
std.fmt meets UTF-8
2020-11-19 14:58:11 -08:00
LemonBoy
d526b0ffb0
std: Disable _only_ the flaky part of the ResetEvent test
...
The remaining part is working just fine as it's not time-dependent.
2020-11-19 15:46:20 -07:00
LemonBoy
8eaaa905f7
stage2: Make zig cc more verbose ( #7166 )
...
* stage2: Make zig cc more verbose
Make `zig cc` print more info from Clang itself and from our own linker
invocation, this is needed for CMake to properly discover all the
include directories and library search paths.
Closes #7110
* Update `update_clang_options`
* Typo fixes
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2020-11-19 23:30:16 +01:00
Andrew Kelley
647c6e0d09
tfw you can't even disable a test without getting the logic wrong
2020-11-19 13:28:54 -07:00
LemonBoy
60638f0c82
Nicer code for the error code path
2020-11-19 18:16:23 +01:00
Veikka Tuominen
cf819b95fe
Merge pull request #6829 from tadeokondrak/error-unsupported-callconv
...
stage1: Compile error instead of falling back to C for unsupported cc
2020-11-19 19:03:08 +02:00
Tadeo Kondrak
25ec2dbc1e
Add builtin.Signedness, use it instead of is_signed
2020-11-19 18:59:21 +02:00
Sébastien Marie
b174942e6a
openbsd, netbsd: getdents: entry with d_fileno==0 should be skipped
2020-11-19 13:55:46 +00:00
Sébastien Marie
7579ce180f
Iterator: rename freebsd_entry to bsd_entry to reflect that nextBsd is not freebsd only
2020-11-19 13:54:47 +00:00
Sébastien Marie
ad2ff9e65d
darwin: getdents: entry with d_ino==0 should be skipped
2020-11-19 13:54:29 +00:00
Vexu
3a28b659bd
add compile-error tests for unsupported calling convention
2020-11-19 14:25:46 +02:00
Tadeo Kondrak
51b362c350
stage1: Check calling convention correctly for subsystem detection
2020-11-19 14:18:35 +02:00