Andrew Kelley
d1cb16aace
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-03 09:44:13 -05:00
Andrew Kelley
387418277a
Merge pull request #4601 from alexnask/fix_3997
...
Allow wrapping in VDSO lookup
2020-03-03 09:15:40 -05:00
Alexandros Naskos
7559418305
Added comment justifying wrapping operations
2020-03-03 12:41:11 +02:00
Ryan Liptak
d7579a2fcb
Fix std.os.unlinkatW for absolute paths
...
RootDirectory can't be set in ObjectAttributes if ObjectName is an absolute path.
Fixes #4606
2020-03-03 03:07:12 -05:00
Alexandros Naskos
a48cd1cf58
Allow wrapping in VDSO lookup
2020-03-02 11:44:21 +02:00
xackus
00be934569
short std.builtin enum literals in std lib
2020-03-01 13:57:41 -05:00
Andrew Kelley
ef3d761da5
breaking: std.mem.len no longer takes a type argument
...
also update fmt code to use std.mem.span.
2020-03-01 13:21:39 -05:00
Andrew Kelley
5b26128bac
add new functions to std.mem and deprecate others
...
add std.mem.Span
add std.mem.span
add std.mem.length
add std.mem.indexOfSentinel
deprecate std.mem.len
deprecate std.mem.toSlice
deprecate std.mem.toSliceConst
2020-03-01 13:07:55 -05:00
Andrew Kelley
4505857e30
revert changes outside std.fmt
2020-03-01 13:07:31 -05:00
daurnimator
0b0de22fd1
std: format contents of sentinel terminated many pointers
...
std: add std.meta.Sentinel to get sentinel of a type
2020-03-01 13:04:29 -05:00
Andrew Kelley
ae99fabfe4
Merge pull request #4585 from LemonBoy/fix-4581
...
target: Implement OS version detection for Windows
2020-03-01 02:53:51 -05:00
Andrew Kelley
f082e253b5
fix native OS version detection on macOS
...
closes #4583
2020-03-01 01:17:50 -05:00
Andrew Kelley
2246812184
use an explicit error set to fix a compilation error
...
this function has conditionally compiled out code in it about looking
for native glibc.
2020-02-29 22:20:44 -05:00
Andrew Kelley
6fcf6716be
std.Thread.cpuCount on Windows uses the PEB
...
rather than calling GetSystemInfo from kernel32.dll. Also remove
OutOfMemory from the error set.
2020-02-29 22:13:09 -05:00
Andrew Kelley
d951e0402a
Merge pull request #4586 from daurnimator/windows-PEB
...
Fill out windows PEB definition
2020-02-29 22:05:56 -05:00
Andrew Kelley
48cef8d5be
refactor std.zig.system.NativeTargetInfo functions
...
to make them a bit easier to test.
2020-02-29 21:31:03 -05:00
LemonBoy
845af5c552
Handle one more error
2020-02-29 23:11:36 +01:00
LemonBoy
3b29a72b3b
Use .len instead of @sizeOf
2020-02-29 23:08:57 +01:00
LemonBoy
84549b3955
target: Implement OS version detection for OSX
...
Closes #4583
2020-02-29 21:46:07 +01:00
LemonBoy
278f0f8fa9
Change how the build-id is checked
...
Address review comment by @rocksnest
2020-02-29 18:31:03 +01:00
Andrew Kelley
3c7f030a60
add CrossTarget.getObjectFormat
...
closes #4588
thanks Michaël Larouche for the suggested fix
2020-02-29 12:27:13 -05:00
daurnimator
d0c22619f5
Complete windows PEB_LDR_DATA definition
2020-03-01 02:10:29 +11:00
LemonBoy
5822220435
Address review comments
2020-02-29 14:19:13 +01:00
daurnimator
513076ee9c
Fill out PEB definition
2020-03-01 00:12:08 +11:00
LemonBoy
f072b0c056
target: Implement OS version detection for Windows
...
Closes #4581
2020-02-29 12:02:40 +01:00
Andrew Kelley
7e6b68a534
std.Target.standardDynamicLinkerPath: delete bad doc comment
2020-02-29 02:08:26 -05:00
Andrew Kelley
1aef0bef75
std.Target.Os.WindowsVersion: non-exhaustive enum
2020-02-28 19:24:52 -05:00
Andrew Kelley
e683eee415
fix CrossTarget.isNative, setGnuLibCVersion, zigTriple
2020-02-28 19:18:27 -05:00
Andrew Kelley
4bc893c346
update test to newer API
2020-02-28 19:05:14 -05:00
Andrew Kelley
7e3bb00a0e
don't choose native ld path when os is non native
2020-02-28 18:48:19 -05:00
Andrew Kelley
4591236ae1
CrossTarget.cpu_model: communicate intent precisely
2020-02-28 18:31:46 -05:00
Andrew Kelley
aa13f339d4
fix handling of CrossTarget.cpu_model
2020-02-28 18:09:33 -05:00
Andrew Kelley
8691d3c50d
improve std.zig.system.NativeTargetInfo.detect
...
It now takes a std.zig.CrossTarget parameter, and only resolves
native things, leaving explicitly overridden things alone.
2020-02-28 17:23:16 -05:00
Andrew Kelley
500dde32d5
dynamic_linker becomes a field of std.zig.CrossTarget
2020-02-28 14:51:56 -05:00
Andrew Kelley
07f52119de
implement native OS version detection for linux
2020-02-28 14:51:56 -05:00
Andrew Kelley
ef24f2dd93
remove special darwin os version min handling
...
now it is integrated with zig's target OS range.
2020-02-28 14:51:56 -05:00
Andrew Kelley
d45ea4d89d
stage1: make get_native_target go through self-hosted
2020-02-28 14:51:56 -05:00
Andrew Kelley
3683ba87ac
complete the native target detection based on /usr/bin/env
2020-02-28 14:51:56 -05:00
Andrew Kelley
fd006c1c74
std.zig.system.NativeTargetInfo.detect: almost no Allocator
2020-02-28 14:51:55 -05:00
Andrew Kelley
60f2f3457d
getStandardDynamicLinkerPath renamed and no allocator
...
* `std.Target.getStandardDynamicLinkerPath` =>
`std.Target.standardDynamicLinkerPath`
* it now takes a pointer to fixed size array rather than an allocator
* `std.zig.system.NativeTargetInfo.detect` now supports reading
PT_INTERP from /usr/bin/env
2020-02-28 14:51:55 -05:00
Andrew Kelley
2536e4c70c
WASI has no dynamic linker
2020-02-28 14:51:55 -05:00
Andrew Kelley
bafa895561
compiler-rt: inline at call site to workaround a bug
...
The bug is #2154
2020-02-28 14:51:55 -05:00
Andrew Kelley
36aa3c8e7f
fix __stack_chk_guard emitted even when not linking libc
2020-02-28 14:51:55 -05:00
Andrew Kelley
6226726571
fix builder.findProgram test
2020-02-28 14:51:55 -05:00
Andrew Kelley
7927764cc2
mips: implement Target.getStandardDynamicLinkerPath
2020-02-28 14:51:54 -05:00
Andrew Kelley
34d2700af4
clean up CrossTarget.getExternalExecutor
2020-02-28 14:51:54 -05:00
Andrew Kelley
0912484c4f
improve the "external executor" detection logic
2020-02-28 14:51:54 -05:00
Andrew Kelley
cebcacd872
fix standardTargetOptions and improve init-exe to use it
2020-02-28 14:51:54 -05:00
Andrew Kelley
cf233bad58
fix target parsing
2020-02-28 14:51:54 -05:00
Andrew Kelley
dbe4d72bcf
separate std.Target and std.zig.CrossTarget
...
Zig now supports a more fine-grained sense of what is native and what is
not. Some examples:
This is now allowed:
-target native
Different OS but native CPU, default Windows C ABI:
-target native-windows
This could be useful for example when running in Wine.
Different CPU but native OS, native C ABI.
-target x86_64-native -mcpu=skylake
Different C ABI but otherwise native target:
-target native-native-musl
-target native-native-gnu
Lots of breaking changes to related std lib APIs.
Calls to getOs() will need to be changed to getOsTag().
Calls to getArch() will need to be changed to getCpuArch().
Usage of Target.Cross and Target.Native need to be updated to use
CrossTarget API.
`std.build.Builder.standardTargetOptions` is changed to accept its
parameters as a struct with default values. It now has the ability to
specify a whitelist of targets allowed, as well as the default target.
Rather than two different ways of collecting the target, it's now always
a string that is validated, and prints helpful diagnostics for invalid
targets. This feature should now be actually useful, and contributions
welcome to further improve the user experience.
`std.build.LibExeObjStep.setTheTarget` is removed.
`std.build.LibExeObjStep.setTarget` is updated to take a CrossTarget
parameter.
`std.build.LibExeObjStep.setTargetGLibC` is removed. glibc versions are
handled in the CrossTarget API and can be specified with the `-target`
triple.
`std.builtin.Version` gains a `format` method.
2020-02-28 14:51:54 -05:00