diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-02-16 13:25:30 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-02-16 13:25:30 -0500 |
| commit | 4b02a39aa93b0043f05de0d90443051c019643ab (patch) | |
| tree | 12632d2e43bc6e13911d8e88d1f91e84b11106f6 /src/userland.cpp | |
| parent | 5e37fc0746a75ed319fc57ae62d8cc966382c592 (diff) | |
| download | zig-4b02a39aa93b0043f05de0d90443051c019643ab.tar.gz zig-4b02a39aa93b0043f05de0d90443051c019643ab.zip | |
self-hosted libc detection
* libc_installation.cpp is deleted.
src-self-hosted/libc_installation.zig is now used for both stage1 and
stage2 compilers.
* (breaking) move `std.fs.File.access` to `std.fs.Dir.access`. The API
now encourages use with an open directory handle.
* Add `std.os.faccessat` and related functions.
* Deprecate the "C" suffix naming convention for null-terminated
parameters. "C" should be used when it is related to libc. However
null-terminated parameters often have to do with the native system
ABI rather than libc. "Z" suffix is the new convention. For example,
`std.os.openC` is deprecated in favor of `std.os.openZ`.
* Add `std.mem.dupeZ` for using an allocator to copy memory and add a
null terminator.
* Remove dead struct field `std.ChildProcess.llnode`.
* Introduce `std.event.Batch`. This API allows expressing concurrency
without forcing code to be async. It requires no Allocator and does
not introduce any failure conditions. However it is not thread-safe.
* There is now an ongoing experiment to transition away from
`std.event.Group` in favor of `std.event.Batch`.
* `std.os.execvpeC` calls `getenvZ` rather than `getenv`. This is
slightly more efficient on most systems, and works around a
limitation of `getenv` lack of integration with libc.
* (breaking) `std.os.AccessError` gains `FileBusy`, `SymLinkLoop`, and
`ReadOnlyFileSystem`. Previously these error codes were all reported
as `PermissionDenied`.
* Add `std.Target.isDragonFlyBSD`.
* stage2: access to the windows_sdk functions is done with a manually
maintained .zig binding file instead of `@cImport`.
* Update src-self-hosted/libc_installation.zig with all the
improvements that stage1 has seen to src/libc_installation.cpp until
now. In addition, it now takes advantage of Batch so that evented I/O
mode takes advantage of concurrency, but it still works in blocking
I/O mode, which is how it is used in stage1.
Diffstat (limited to 'src/userland.cpp')
| -rw-r--r-- | src/userland.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/userland.cpp b/src/userland.cpp index ba0e906cf9..539735f436 100644 --- a/src/userland.cpp +++ b/src/userland.cpp @@ -144,3 +144,25 @@ int stage2_cmd_targets(const char *zig_triple) { const char *msg = "stage0 called stage2_cmd_targets"; stage2_panic(msg, strlen(msg)); } + +enum Error stage2_libc_parse(struct Stage2LibCInstallation *libc, const char *libc_file) { + const char *msg = "stage0 called stage2_libc_parse"; + stage2_panic(msg, strlen(msg)); +} + +enum Error stage2_libc_render(struct Stage2LibCInstallation *self, FILE *file) { + const char *msg = "stage0 called stage2_libc_render"; + stage2_panic(msg, strlen(msg)); +} + +enum Error stage2_libc_find_native(struct Stage2LibCInstallation *libc) { + const char *msg = "stage0 called stage2_libc_find_native"; + stage2_panic(msg, strlen(msg)); +} + +enum Error stage2_libc_cc_print_file_name(char **out_ptr, size_t *out_len, + const char *o_file, bool want_dirname) +{ + const char *msg = "stage0 called stage2_libc_cc_print_file_name"; + stage2_panic(msg, strlen(msg)); +} |
