"generate .h files" feature is no longer supported in stage1
This commit is contained in:
parent
8429ddecf8
commit
3a2c490889
@ -622,7 +622,6 @@ set(BUILD_LIBSTAGE2_ARGS "build-lib"
|
|||||||
--cache on
|
--cache on
|
||||||
--output-dir "${CMAKE_BINARY_DIR}"
|
--output-dir "${CMAKE_BINARY_DIR}"
|
||||||
${LIBSTAGE2_RELEASE_ARG}
|
${LIBSTAGE2_RELEASE_ARG}
|
||||||
--disable-gen-h
|
|
||||||
--bundle-compiler-rt
|
--bundle-compiler-rt
|
||||||
-fPIC
|
-fPIC
|
||||||
-lc
|
-lc
|
||||||
|
@ -134,7 +134,8 @@ pub fn build(b: *Builder) !void {
|
|||||||
test_step.dependOn(tests.addRuntimeSafetyTests(b, test_filter, modes));
|
test_step.dependOn(tests.addRuntimeSafetyTests(b, test_filter, modes));
|
||||||
test_step.dependOn(tests.addTranslateCTests(b, test_filter));
|
test_step.dependOn(tests.addTranslateCTests(b, test_filter));
|
||||||
test_step.dependOn(tests.addRunTranslatedCTests(b, test_filter));
|
test_step.dependOn(tests.addRunTranslatedCTests(b, test_filter));
|
||||||
test_step.dependOn(tests.addGenHTests(b, test_filter));
|
// tests for this feature are disabled until we have the self-hosted compiler available
|
||||||
|
//test_step.dependOn(tests.addGenHTests(b, test_filter));
|
||||||
test_step.dependOn(tests.addCompileErrorTests(b, test_filter, modes));
|
test_step.dependOn(tests.addCompileErrorTests(b, test_filter, modes));
|
||||||
test_step.dependOn(docs_step);
|
test_step.dependOn(docs_step);
|
||||||
}
|
}
|
||||||
|
@ -1121,7 +1121,7 @@ pub const LibExeObjStep = struct {
|
|||||||
emit_llvm_ir: bool = false,
|
emit_llvm_ir: bool = false,
|
||||||
emit_asm: bool = false,
|
emit_asm: bool = false,
|
||||||
emit_bin: bool = true,
|
emit_bin: bool = true,
|
||||||
disable_gen_h: bool,
|
emit_h: bool = false,
|
||||||
bundle_compiler_rt: bool,
|
bundle_compiler_rt: bool,
|
||||||
disable_stack_probing: bool,
|
disable_stack_probing: bool,
|
||||||
disable_sanitize_c: bool,
|
disable_sanitize_c: bool,
|
||||||
@ -1281,7 +1281,6 @@ pub const LibExeObjStep = struct {
|
|||||||
.exec_cmd_args = null,
|
.exec_cmd_args = null,
|
||||||
.name_prefix = "",
|
.name_prefix = "",
|
||||||
.filter = null,
|
.filter = null,
|
||||||
.disable_gen_h = false,
|
|
||||||
.bundle_compiler_rt = false,
|
.bundle_compiler_rt = false,
|
||||||
.disable_stack_probing = false,
|
.disable_stack_probing = false,
|
||||||
.disable_sanitize_c = false,
|
.disable_sanitize_c = false,
|
||||||
@ -1600,8 +1599,9 @@ pub const LibExeObjStep = struct {
|
|||||||
self.main_pkg_path = dir_path;
|
self.main_pkg_path = dir_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setDisableGenH(self: *LibExeObjStep, value: bool) void {
|
/// Deprecated; just set the field directly.
|
||||||
self.disable_gen_h = value;
|
pub fn setDisableGenH(self: *LibExeObjStep, is_disabled: bool) void {
|
||||||
|
self.emit_h = !is_disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setLibCFile(self: *LibExeObjStep, libc_file: ?[]const u8) void {
|
pub fn setLibCFile(self: *LibExeObjStep, libc_file: ?[]const u8) void {
|
||||||
@ -1632,7 +1632,7 @@ pub const LibExeObjStep = struct {
|
|||||||
/// the make step, from a step that has declared a dependency on this one.
|
/// the make step, from a step that has declared a dependency on this one.
|
||||||
pub fn getOutputHPath(self: *LibExeObjStep) []const u8 {
|
pub fn getOutputHPath(self: *LibExeObjStep) []const u8 {
|
||||||
assert(self.kind != Kind.Exe);
|
assert(self.kind != Kind.Exe);
|
||||||
assert(!self.disable_gen_h);
|
assert(self.emit_h);
|
||||||
return fs.path.join(
|
return fs.path.join(
|
||||||
self.builder.allocator,
|
self.builder.allocator,
|
||||||
&[_][]const u8{ self.output_dir.?, self.out_h_filename },
|
&[_][]const u8{ self.output_dir.?, self.out_h_filename },
|
||||||
@ -1884,6 +1884,7 @@ pub const LibExeObjStep = struct {
|
|||||||
if (self.emit_llvm_ir) try zig_args.append("-femit-llvm-ir");
|
if (self.emit_llvm_ir) try zig_args.append("-femit-llvm-ir");
|
||||||
if (self.emit_asm) try zig_args.append("-femit-asm");
|
if (self.emit_asm) try zig_args.append("-femit-asm");
|
||||||
if (!self.emit_bin) try zig_args.append("-fno-emit-bin");
|
if (!self.emit_bin) try zig_args.append("-fno-emit-bin");
|
||||||
|
if (self.emit_h) try zig_args.append("-femit-h");
|
||||||
|
|
||||||
if (self.strip) {
|
if (self.strip) {
|
||||||
try zig_args.append("--strip");
|
try zig_args.append("--strip");
|
||||||
@ -1929,9 +1930,6 @@ pub const LibExeObjStep = struct {
|
|||||||
if (self.is_dynamic) {
|
if (self.is_dynamic) {
|
||||||
try zig_args.append("-dynamic");
|
try zig_args.append("-dynamic");
|
||||||
}
|
}
|
||||||
if (self.disable_gen_h) {
|
|
||||||
try zig_args.append("--disable-gen-h");
|
|
||||||
}
|
|
||||||
if (self.bundle_compiler_rt) {
|
if (self.bundle_compiler_rt) {
|
||||||
try zig_args.append("--bundle-compiler-rt");
|
try zig_args.append("--bundle-compiler-rt");
|
||||||
}
|
}
|
||||||
@ -2069,7 +2067,7 @@ pub const LibExeObjStep = struct {
|
|||||||
try zig_args.append("-isystem");
|
try zig_args.append("-isystem");
|
||||||
try zig_args.append(self.builder.pathFromRoot(include_path));
|
try zig_args.append(self.builder.pathFromRoot(include_path));
|
||||||
},
|
},
|
||||||
.OtherStep => |other| if (!other.disable_gen_h) {
|
.OtherStep => |other| if (other.emit_h) {
|
||||||
const h_path = other.getOutputHPath();
|
const h_path = other.getOutputHPath();
|
||||||
try zig_args.append("-isystem");
|
try zig_args.append("-isystem");
|
||||||
try zig_args.append(fs.path.dirname(h_path).?);
|
try zig_args.append(fs.path.dirname(h_path).?);
|
||||||
@ -2209,7 +2207,7 @@ const InstallArtifactStep = struct {
|
|||||||
break :blk InstallDir.Lib;
|
break :blk InstallDir.Lib;
|
||||||
}
|
}
|
||||||
} else null,
|
} else null,
|
||||||
.h_dir = if (artifact.kind == .Lib and !artifact.disable_gen_h) .Header else null,
|
.h_dir = if (artifact.kind == .Lib and artifact.emit_h) .Header else null,
|
||||||
};
|
};
|
||||||
self.step.dependOn(&artifact.step);
|
self.step.dependOn(&artifact.step);
|
||||||
artifact.install_step = self;
|
artifact.install_step = self;
|
||||||
|
@ -41,6 +41,10 @@ fn _DllMainCRTStartup(
|
|||||||
fdwReason: std.os.windows.DWORD,
|
fdwReason: std.os.windows.DWORD,
|
||||||
lpReserved: std.os.windows.LPVOID,
|
lpReserved: std.os.windows.LPVOID,
|
||||||
) callconv(.Stdcall) std.os.windows.BOOL {
|
) callconv(.Stdcall) std.os.windows.BOOL {
|
||||||
|
if (!builtin.single_threaded) {
|
||||||
|
_ = @import("start_windows_tls.zig");
|
||||||
|
}
|
||||||
|
|
||||||
if (@hasDecl(root, "DllMain")) {
|
if (@hasDecl(root, "DllMain")) {
|
||||||
return root.DllMain(hinstDLL, fdwReason, lpReserved);
|
return root.DllMain(hinstDLL, fdwReason, lpReserved);
|
||||||
}
|
}
|
||||||
|
16
src/main.cpp
16
src/main.cpp
@ -54,7 +54,6 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) {
|
|||||||
" --cache-dir [path] override the local cache directory\n"
|
" --cache-dir [path] override the local cache directory\n"
|
||||||
" --cache [auto|off|on] build in cache, print output path to stdout\n"
|
" --cache [auto|off|on] build in cache, print output path to stdout\n"
|
||||||
" --color [auto|off|on] enable or disable colored error messages\n"
|
" --color [auto|off|on] enable or disable colored error messages\n"
|
||||||
" --disable-gen-h do not generate a C header file (.h)\n"
|
|
||||||
" --disable-valgrind omit valgrind client requests in debug builds\n"
|
" --disable-valgrind omit valgrind client requests in debug builds\n"
|
||||||
" --eh-frame-hdr enable C++ exception handling by passing --eh-frame-hdr to linker\n"
|
" --eh-frame-hdr enable C++ exception handling by passing --eh-frame-hdr to linker\n"
|
||||||
" --enable-valgrind include valgrind client requests release builds\n"
|
" --enable-valgrind include valgrind client requests release builds\n"
|
||||||
@ -77,6 +76,8 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) {
|
|||||||
" -fno-emit-asm (default) do not output .s (assembly code)\n"
|
" -fno-emit-asm (default) do not output .s (assembly code)\n"
|
||||||
" -femit-llvm-ir produce a .ll file with LLVM IR\n"
|
" -femit-llvm-ir produce a .ll file with LLVM IR\n"
|
||||||
" -fno-emit-llvm-ir (default) do not produce a .ll file with LLVM IR\n"
|
" -fno-emit-llvm-ir (default) do not produce a .ll file with LLVM IR\n"
|
||||||
|
" -femit-h generate a C header file (.h)\n"
|
||||||
|
" -fno-emit-h (default) do not generate a C header file (.h)\n"
|
||||||
" --libc [file] Provide a file which specifies libc paths\n"
|
" --libc [file] Provide a file which specifies libc paths\n"
|
||||||
" --name [name] override output name\n"
|
" --name [name] override output name\n"
|
||||||
" --output-dir [dir] override output directory (defaults to cwd)\n"
|
" --output-dir [dir] override output directory (defaults to cwd)\n"
|
||||||
@ -431,6 +432,7 @@ static int main0(int argc, char **argv) {
|
|||||||
bool emit_bin = true;
|
bool emit_bin = true;
|
||||||
bool emit_asm = false;
|
bool emit_asm = false;
|
||||||
bool emit_llvm_ir = false;
|
bool emit_llvm_ir = false;
|
||||||
|
bool emit_h = false;
|
||||||
const char *cache_dir = nullptr;
|
const char *cache_dir = nullptr;
|
||||||
CliPkg *cur_pkg = heap::c_allocator.create<CliPkg>();
|
CliPkg *cur_pkg = heap::c_allocator.create<CliPkg>();
|
||||||
BuildMode build_mode = BuildModeDebug;
|
BuildMode build_mode = BuildModeDebug;
|
||||||
@ -439,7 +441,6 @@ static int main0(int argc, char **argv) {
|
|||||||
bool system_linker_hack = false;
|
bool system_linker_hack = false;
|
||||||
TargetSubsystem subsystem = TargetSubsystemAuto;
|
TargetSubsystem subsystem = TargetSubsystemAuto;
|
||||||
bool want_single_threaded = false;
|
bool want_single_threaded = false;
|
||||||
bool disable_gen_h = false;
|
|
||||||
bool bundle_compiler_rt = false;
|
bool bundle_compiler_rt = false;
|
||||||
Buf *override_lib_dir = nullptr;
|
Buf *override_lib_dir = nullptr;
|
||||||
Buf *main_pkg_path = nullptr;
|
Buf *main_pkg_path = nullptr;
|
||||||
@ -660,9 +661,7 @@ static int main0(int argc, char **argv) {
|
|||||||
} else if (strcmp(arg, "--system-linker-hack") == 0) {
|
} else if (strcmp(arg, "--system-linker-hack") == 0) {
|
||||||
system_linker_hack = true;
|
system_linker_hack = true;
|
||||||
} else if (strcmp(arg, "--single-threaded") == 0) {
|
} else if (strcmp(arg, "--single-threaded") == 0) {
|
||||||
want_single_threaded = true;
|
want_single_threaded = true;;
|
||||||
} else if (strcmp(arg, "--disable-gen-h") == 0) {
|
|
||||||
disable_gen_h = true;
|
|
||||||
} else if (strcmp(arg, "--bundle-compiler-rt") == 0) {
|
} else if (strcmp(arg, "--bundle-compiler-rt") == 0) {
|
||||||
bundle_compiler_rt = true;
|
bundle_compiler_rt = true;
|
||||||
} else if (strcmp(arg, "--test-cmd-bin") == 0) {
|
} else if (strcmp(arg, "--test-cmd-bin") == 0) {
|
||||||
@ -719,6 +718,11 @@ static int main0(int argc, char **argv) {
|
|||||||
emit_llvm_ir = true;
|
emit_llvm_ir = true;
|
||||||
} else if (strcmp(arg, "-fno-emit-llvm-ir") == 0) {
|
} else if (strcmp(arg, "-fno-emit-llvm-ir") == 0) {
|
||||||
emit_llvm_ir = false;
|
emit_llvm_ir = false;
|
||||||
|
} else if (strcmp(arg, "-femit-h") == 0) {
|
||||||
|
emit_h = true;
|
||||||
|
} else if (strcmp(arg, "-fno-emit-h") == 0 || strcmp(arg, "--disable-gen-h") == 0) {
|
||||||
|
// the --disable-gen-h is there to support godbolt. once they upgrade to -fno-emit-h then we can remove this
|
||||||
|
emit_h = false;
|
||||||
} else if (str_starts_with(arg, "-mcpu=")) {
|
} else if (str_starts_with(arg, "-mcpu=")) {
|
||||||
mcpu = arg + strlen("-mcpu=");
|
mcpu = arg + strlen("-mcpu=");
|
||||||
} else if (i + 1 >= argc) {
|
} else if (i + 1 >= argc) {
|
||||||
@ -1202,7 +1206,7 @@ static int main0(int argc, char **argv) {
|
|||||||
g->verbose_cc = verbose_cc;
|
g->verbose_cc = verbose_cc;
|
||||||
g->verbose_llvm_cpu_features = verbose_llvm_cpu_features;
|
g->verbose_llvm_cpu_features = verbose_llvm_cpu_features;
|
||||||
g->output_dir = output_dir;
|
g->output_dir = output_dir;
|
||||||
g->disable_gen_h = disable_gen_h;
|
g->disable_gen_h = !emit_h;
|
||||||
g->bundle_compiler_rt = bundle_compiler_rt;
|
g->bundle_compiler_rt = bundle_compiler_rt;
|
||||||
codegen_set_errmsg_color(g, color);
|
codegen_set_errmsg_color(g, color);
|
||||||
g->system_linker_hack = system_linker_hack;
|
g->system_linker_hack = system_linker_hack;
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
// This header is generated by zig from base64.zig
|
|
||||||
#include "base64.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// TODO we would like to #include "base64.h" here but this feature has been disabled in
|
||||||
|
// the stage1 compiler. Users will have to wait until self-hosted is available for
|
||||||
|
// the "generate .h file" feature.
|
||||||
|
size_t decode_base_64(uint8_t *dest_ptr, size_t dest_len, const uint8_t *source_ptr, size_t source_len);
|
||||||
|
|
||||||
extern int *x_ptr;
|
extern int *x_ptr;
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
#include "mathtest.h"
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
|
// TODO we would like to #include "mathtest.h" here but this feature has been disabled in
|
||||||
|
// the stage1 compiler. Users will have to wait until self-hosted is available for
|
||||||
|
// the "generate .h file" feature.
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
int32_t add(int32_t a, int32_t b);
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
assert(add(42, 1337) == 1379);
|
assert(add(42, 1337) == 1379);
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user