Commit Graph

4462 Commits (317c555a5cdc52612e998d8b4bcbaf730be1a6f1)

Author SHA1 Message Date
Jakub Konka 317c555a5c Fix linking issues on BigSur
This commit fixes linking issue on macOS 11 BigSur by appending
a prefix path to all lib and framework search paths known as
`-syslibroot`.

The reason this is needed is that in macOS 11, the system libraries
and frameworks are no longer readily available in the filesystem.
Instead, the new macOS ships with a built-in dynamic linker cache
of all system-provided libraries, and hence, when linking with either
`lld.ld64` or `ld64`, it is required to pass in `-syslibroot [dir]`.
The latter can usually be obtained by invoking `xcrun --show-sdk-path`.
With this commit, Zig will do this automatically when compiling natively
on macOS. However, it also provides a flag `-syslibroot` which can be
used to overwrite the automtically populated value.

To summarise, with this change, the user of Zig is not required to
generate and append their own syslibroot path. Standard invocations
such as `zig build-exe hello.zig` or `zig build` for projects will
work out of the box. The only missing bit is `zig cc` and `zig c++`
since the addition of the `-syslibroot` option would be a mismatch
between the values provided by `clang` itself and Zig's wrapper.
2020-11-02 17:06:09 +01:00
Andrew Kelley 909aae8153
Merge pull request #6792 from koachan/sparc64-linux
Initial sparc64-linux bringup
2020-11-01 22:14:56 -05:00
LemonBoy 0d6a7088dc stage1: Implement Add/Mul reduction operators 2020-11-01 14:30:31 -07:00
LemonBoy 2957433b25 stage1: Fix comptime comparison of NaNs 2020-11-01 14:30:31 -07:00
Veikka Tuominen 9ca9819488
Merge pull request #6883 from Vexu/translate-c
translate-c: correctly handle pointers to opaque demoted structs
2020-10-31 15:25:14 +02:00
Vexu 28a0583b84
run zig fmt on src/ and test/ 2020-10-31 12:21:49 +02:00
Veikka Tuominen 7c8d9cfa40
Merge pull request #6660 from Vexu/stage2
Stage2 switch and package imports
2020-10-31 09:39:28 +02:00
Vexu 3ff381385a
translate-c: correctly handle pointers to opaque demoted structs 2020-10-31 09:30:13 +02:00
Travis bb6e39e274 remove extra space in .** error message 2020-10-30 21:26:05 +02:00
Veikka Tuominen 80dd432137
Merge pull request #6858 from travv0/no-star-after-dot-star
don't allow a token starting with an asterisk directly following .*
2020-10-30 16:08:04 +02:00
Vexu 22ec5e0859
stage2: fix typo in liveness; add comptime switch test 2020-10-30 15:58:13 +02:00
Vexu 4ed2c52fb7
stage2: switch put swap condbr and block
condbr is noreturn so having the other way around caused
subsequent cases to be eliminated as dead
2020-10-30 15:58:13 +02:00
Vexu e2e0b6272b
stage2: return same hash for different representations of same value 2020-10-30 15:58:13 +02:00
Vexu 3cc68bd913
stage2: switch liveness analysis 2020-10-30 15:58:13 +02:00
Vexu 769d5a9c43
stage2: switch comptime execution 2020-10-30 15:58:13 +02:00
Vexu 12e4c648cc
stage2: implement switch validation for integers 2020-10-30 15:58:13 +02:00
Vexu 4155d2ae24
stage2: switch ranges and multi item prongs 2020-10-30 15:58:13 +02:00
Vexu 3c96d79953
stage2: disallow switching on floats 2020-10-30 15:58:13 +02:00
Vexu 7db17a2d89
stage2: redesign switchbr
Switchbr now only  handles single item prongs.
Ranges and multi item prongs are checked with
condbrs after the switchbr.
2020-10-30 15:58:12 +02:00
Vexu 95467f3249
stage2: dump generated zir with --verbose-ir 2020-10-30 15:58:12 +02:00
Vexu 570f610341
stage2: fix test harness tmp path handling 2020-10-30 15:58:12 +02:00
Vexu 2020ca640e
stage2: switch emit zir 2020-10-30 15:58:12 +02:00
Vexu 11998d2972
stage2: basic switch analysis 2020-10-30 15:58:12 +02:00
Vexu 2c12f4a993
stage2: implement Value.eql for void, null and types 2020-10-30 15:58:12 +02:00
Vexu 7e2774367e
stage2: implement Value.hash 2020-10-30 15:58:12 +02:00
Vexu 27d233cef7
stage2: basic switch validation 2020-10-30 15:58:11 +02:00
Vexu ad32e46bce
stage2: switch astgen 2020-10-30 15:58:11 +02:00
Vexu a1d7f0053d
stage2: support imports inside packages 2020-10-30 15:58:11 +02:00
Vexu 8421b8a898
stage2: detect import outside file path 2020-10-30 15:58:11 +02:00
zhaozg 72343ffd06 fix #3237: resolve undefined symbol _DllMainCRTStartup 2020-10-29 20:09:22 -04:00
LemonBoy 490cafe2c5 stage1: Error out when trying to execute `unreachable`
Closes #6802
2020-10-29 20:06:52 -04:00
Andrew Kelley f4bb8be9fc
Merge pull request #6654 from joachimschmidt557/stage2-arm
stage2 ARM: more stuff
2020-10-29 18:29:24 -04:00
Timon Kruiper ad6e095ef6 stage2.Elf: fix off by one error in writeOffsetTableEntry
The code was using the length of the local symbols, which also
includes the null symbol. Fix this by using the offset table instead,
which only keeps track of the symbols that end up in the got.
2020-10-29 14:38:48 -04:00
LemonBoy 4fb896f16e
stage1: Fix bug in internal string slicing (#6843)
Closes #6456
2020-10-29 14:38:13 -04:00
Travis 3c7a49c494 add missing case for TokenizeStateSawDotStar at eof 2020-10-29 12:03:45 -05:00
Travis 069aee1495 don't allow a token starting with an asterisk directly following .* 2020-10-29 12:03:45 -05:00
LemonBoy b3314a8be6 stage1: Fix small bug in pointer type analysis
A flag meant to catch recursively-defined types was never reset, leading
the compiler to generate wrong answers when asked for its
type/alignment.

Closes #6850
2020-10-29 15:41:45 +02:00
Veikka Tuominen 85dd5746bd
Merge pull request #6678 from s-ol/doc-type-aware
generated docs improvements: add vector, fntype, anytype type-printing; bool, function value-printing
2020-10-29 15:19:02 +02:00
LemonBoy 7bc9531698 stage1: Correctly generated optional constant values
Closes #6799
2020-10-28 21:56:28 +02:00
LemonBoy 6d2f103bfb stage1: Fix crash in comptime struct value copy
Comptime fields are never materialized in the ZigValue so pay attention
when iterating over the fields array.

Fixes #6800
2020-10-28 21:13:32 +02:00
Andrew Kelley e1ca6946be rename ZigClangFloatingLiteral_getValueAsApproximateDouble 2020-10-27 14:16:43 -07:00
Andrew Kelley e2caf57527 Merge branch 'frmdstryr-import-empty-file' 2020-10-26 16:07:46 -07:00
Andrew Kelley 435c8ad703 non-hacky workaround for the empty file bug
See #3328
2020-10-26 16:06:14 -07:00
Andrew Kelley c1ae9f40c7 stage1: support "native" as the OS string in -target
This should help for bootstrapping purposes, intending to fix the macOS
CI.
2020-10-26 15:48:48 -07:00
frmdstryr 1ce0994897 Fix @import of empty file 2020-10-26 13:29:32 -07:00
mlarouche e3fed3c814 Temp Fix for deadlock in C compilation, found and tested on Windows 2020-10-25 21:33:46 -04:00
joachimschmidt557 7b4f3c7cfc stage2 ARM: genSetStack and genSetReg from stack 2020-10-25 12:51:19 +01:00
joachimschmidt557 7d14426da4 stage2 ARM: enable backpatching return statement 2020-10-25 12:51:19 +01:00
joachimschmidt557 0e16328636 stage2 ARM: add multiply and multiply long instructions 2020-10-25 12:51:19 +01:00
joachimschmidt557 7391087df1 stage2 ARM: better immediate loading feat. movw and movt 2020-10-25 12:51:19 +01:00