Commit acebf05be9
Changed files (8)
src/stubs/aro_messages.zig
@@ -0,0 +1,508 @@
+//! Stub implementation only used when bootstrapping stage2
+//! Keep in sync with deps/aro/build/GenerateDef.zig
+
+pub fn with(comptime Properties: type) type {
+ return struct {
+ pub const Tag = enum {
+ todo,
+ error_directive,
+ warning_directive,
+ elif_without_if,
+ elif_after_else,
+ elifdef_without_if,
+ elifdef_after_else,
+ elifndef_without_if,
+ elifndef_after_else,
+ else_without_if,
+ else_after_else,
+ endif_without_if,
+ unknown_pragma,
+ line_simple_digit,
+ line_invalid_filename,
+ unterminated_conditional_directive,
+ invalid_preprocessing_directive,
+ macro_name_missing,
+ extra_tokens_directive_end,
+ expected_value_in_expr,
+ closing_paren,
+ to_match_paren,
+ to_match_brace,
+ to_match_bracket,
+ header_str_closing,
+ header_str_match,
+ string_literal_in_pp_expr,
+ float_literal_in_pp_expr,
+ defined_as_macro_name,
+ macro_name_must_be_identifier,
+ whitespace_after_macro_name,
+ hash_hash_at_start,
+ hash_hash_at_end,
+ pasting_formed_invalid,
+ missing_paren_param_list,
+ unterminated_macro_param_list,
+ invalid_token_param_list,
+ expected_comma_param_list,
+ hash_not_followed_param,
+ expected_filename,
+ empty_filename,
+ expected_invalid,
+ expected_eof,
+ expected_token,
+ expected_expr,
+ expected_integer_constant_expr,
+ missing_type_specifier,
+ missing_type_specifier_c23,
+ multiple_storage_class,
+ static_assert_failure,
+ static_assert_failure_message,
+ expected_type,
+ cannot_combine_spec,
+ duplicate_decl_spec,
+ restrict_non_pointer,
+ expected_external_decl,
+ expected_ident_or_l_paren,
+ missing_declaration,
+ func_not_in_root,
+ illegal_initializer,
+ extern_initializer,
+ spec_from_typedef,
+ param_before_var_args,
+ void_only_param,
+ void_param_qualified,
+ void_must_be_first_param,
+ invalid_storage_on_param,
+ threadlocal_non_var,
+ func_spec_non_func,
+ illegal_storage_on_func,
+ illegal_storage_on_global,
+ expected_stmt,
+ func_cannot_return_func,
+ func_cannot_return_array,
+ undeclared_identifier,
+ not_callable,
+ unsupported_str_cat,
+ static_func_not_global,
+ implicit_func_decl,
+ unknown_builtin,
+ implicit_builtin,
+ implicit_builtin_header_note,
+ expected_param_decl,
+ invalid_old_style_params,
+ expected_fn_body,
+ invalid_void_param,
+ unused_value,
+ continue_not_in_loop,
+ break_not_in_loop_or_switch,
+ unreachable_code,
+ duplicate_label,
+ previous_label,
+ undeclared_label,
+ case_not_in_switch,
+ duplicate_switch_case,
+ multiple_default,
+ previous_case,
+ expected_arguments,
+ expected_arguments_old,
+ expected_at_least_arguments,
+ invalid_static_star,
+ static_non_param,
+ array_qualifiers,
+ star_non_param,
+ variable_len_array_file_scope,
+ useless_static,
+ negative_array_size,
+ array_incomplete_elem,
+ array_func_elem,
+ static_non_outermost_array,
+ qualifier_non_outermost_array,
+ unterminated_macro_arg_list,
+ unknown_warning,
+ overflow,
+ int_literal_too_big,
+ indirection_ptr,
+ addr_of_rvalue,
+ addr_of_bitfield,
+ not_assignable,
+ ident_or_l_brace,
+ empty_enum,
+ redefinition,
+ previous_definition,
+ expected_identifier,
+ expected_str_literal,
+ expected_str_literal_in,
+ parameter_missing,
+ empty_record,
+ empty_record_size,
+ wrong_tag,
+ expected_parens_around_typename,
+ alignof_expr,
+ invalid_alignof,
+ invalid_sizeof,
+ macro_redefined,
+ generic_qual_type,
+ generic_array_type,
+ generic_func_type,
+ generic_duplicate,
+ generic_duplicate_here,
+ generic_duplicate_default,
+ generic_no_match,
+ escape_sequence_overflow,
+ invalid_universal_character,
+ incomplete_universal_character,
+ multichar_literal_warning,
+ invalid_multichar_literal,
+ wide_multichar_literal,
+ char_lit_too_wide,
+ char_too_large,
+ must_use_struct,
+ must_use_union,
+ must_use_enum,
+ redefinition_different_sym,
+ redefinition_incompatible,
+ redefinition_of_parameter,
+ invalid_bin_types,
+ comparison_ptr_int,
+ comparison_distinct_ptr,
+ incompatible_pointers,
+ invalid_argument_un,
+ incompatible_assign,
+ implicit_ptr_to_int,
+ invalid_cast_to_float,
+ invalid_cast_to_pointer,
+ invalid_cast_type,
+ qual_cast,
+ invalid_index,
+ invalid_subscript,
+ array_after,
+ array_before,
+ statement_int,
+ statement_scalar,
+ func_should_return,
+ incompatible_return,
+ incompatible_return_sign,
+ implicit_int_to_ptr,
+ func_does_not_return,
+ void_func_returns_value,
+ incompatible_arg,
+ incompatible_ptr_arg,
+ incompatible_ptr_arg_sign,
+ parameter_here,
+ atomic_array,
+ atomic_func,
+ atomic_incomplete,
+ addr_of_register,
+ variable_incomplete_ty,
+ parameter_incomplete_ty,
+ tentative_array,
+ deref_incomplete_ty_ptr,
+ alignas_on_func,
+ alignas_on_param,
+ minimum_alignment,
+ maximum_alignment,
+ negative_alignment,
+ align_ignored,
+ zero_align_ignored,
+ non_pow2_align,
+ pointer_mismatch,
+ static_assert_not_constant,
+ static_assert_missing_message,
+ pre_c23_compat,
+ unbound_vla,
+ array_too_large,
+ incompatible_ptr_init,
+ incompatible_ptr_init_sign,
+ incompatible_ptr_assign,
+ incompatible_ptr_assign_sign,
+ vla_init,
+ func_init,
+ incompatible_init,
+ empty_scalar_init,
+ excess_scalar_init,
+ excess_str_init,
+ excess_struct_init,
+ excess_array_init,
+ str_init_too_long,
+ arr_init_too_long,
+ invalid_typeof,
+ division_by_zero,
+ division_by_zero_macro,
+ builtin_choose_cond,
+ alignas_unavailable,
+ case_val_unavailable,
+ enum_val_unavailable,
+ incompatible_array_init,
+ array_init_str,
+ initializer_overrides,
+ previous_initializer,
+ invalid_array_designator,
+ negative_array_designator,
+ oob_array_designator,
+ invalid_field_designator,
+ no_such_field_designator,
+ empty_aggregate_init_braces,
+ ptr_init_discards_quals,
+ ptr_assign_discards_quals,
+ ptr_ret_discards_quals,
+ ptr_arg_discards_quals,
+ unknown_attribute,
+ ignored_attribute,
+ invalid_fallthrough,
+ cannot_apply_attribute_to_statement,
+ builtin_macro_redefined,
+ feature_check_requires_identifier,
+ missing_tok_builtin,
+ gnu_label_as_value,
+ expected_record_ty,
+ member_expr_not_ptr,
+ member_expr_ptr,
+ no_such_member,
+ malformed_warning_check,
+ invalid_computed_goto,
+ pragma_warning_message,
+ pragma_error_message,
+ pragma_message,
+ pragma_requires_string_literal,
+ poisoned_identifier,
+ pragma_poison_identifier,
+ pragma_poison_macro,
+ newline_eof,
+ empty_translation_unit,
+ omitting_parameter_name,
+ non_int_bitfield,
+ negative_bitwidth,
+ zero_width_named_field,
+ bitfield_too_big,
+ invalid_utf8,
+ implicitly_unsigned_literal,
+ invalid_preproc_operator,
+ invalid_preproc_expr_start,
+ c99_compat,
+ unexpected_character,
+ invalid_identifier_start_char,
+ unicode_zero_width,
+ unicode_homoglyph,
+ meaningless_asm_qual,
+ duplicate_asm_qual,
+ invalid_asm_str,
+ dollar_in_identifier_extension,
+ dollars_in_identifiers,
+ expanded_from_here,
+ skipping_macro_backtrace,
+ pragma_operator_string_literal,
+ unknown_gcc_pragma,
+ unknown_gcc_pragma_directive,
+ predefined_top_level,
+ incompatible_va_arg,
+ too_many_scalar_init_braces,
+ uninitialized_in_own_init,
+ gnu_statement_expression,
+ stmt_expr_not_allowed_file_scope,
+ gnu_imaginary_constant,
+ plain_complex,
+ complex_int,
+ qual_on_ret_type,
+ cli_invalid_standard,
+ cli_invalid_target,
+ cli_invalid_emulate,
+ cli_unknown_arg,
+ cli_error,
+ cli_unused_link_object,
+ cli_unknown_linker,
+ extra_semi,
+ func_field,
+ vla_field,
+ field_incomplete_ty,
+ flexible_in_union,
+ flexible_non_final,
+ flexible_in_empty,
+ duplicate_member,
+ binary_integer_literal,
+ gnu_va_macro,
+ builtin_must_be_called,
+ va_start_not_in_func,
+ va_start_fixed_args,
+ va_start_not_last_param,
+ attribute_not_enough_args,
+ attribute_too_many_args,
+ attribute_arg_invalid,
+ unknown_attr_enum,
+ attribute_requires_identifier,
+ declspec_not_enabled,
+ declspec_attr_not_supported,
+ deprecated_declarations,
+ deprecated_note,
+ unavailable,
+ unavailable_note,
+ warning_attribute,
+ error_attribute,
+ ignored_record_attr,
+ backslash_newline_escape,
+ array_size_non_int,
+ cast_to_smaller_int,
+ gnu_switch_range,
+ empty_case_range,
+ non_standard_escape_char,
+ invalid_pp_stringify_escape,
+ vla,
+ float_overflow_conversion,
+ float_out_of_range,
+ float_zero_conversion,
+ float_value_changed,
+ float_to_int,
+ const_decl_folded,
+ const_decl_folded_vla,
+ redefinition_of_typedef,
+ undefined_macro,
+ fn_macro_undefined,
+ preprocessing_directive_only,
+ missing_lparen_after_builtin,
+ offsetof_ty,
+ offsetof_incomplete,
+ offsetof_array,
+ pragma_pack_lparen,
+ pragma_pack_rparen,
+ pragma_pack_unknown_action,
+ pragma_pack_show,
+ pragma_pack_int,
+ pragma_pack_int_ident,
+ pragma_pack_undefined_pop,
+ pragma_pack_empty_stack,
+ cond_expr_type,
+ too_many_includes,
+ enumerator_too_small,
+ enumerator_too_large,
+ include_next,
+ include_next_outside_header,
+ enumerator_overflow,
+ enum_not_representable,
+ enum_too_large,
+ enum_fixed,
+ enum_prev_nonfixed,
+ enum_prev_fixed,
+ enum_different_explicit_ty,
+ enum_not_representable_fixed,
+ transparent_union_wrong_type,
+ transparent_union_one_field,
+ transparent_union_size,
+ transparent_union_size_note,
+ designated_init_invalid,
+ designated_init_needed,
+ ignore_common,
+ ignore_nocommon,
+ non_string_ignored,
+ local_variable_attribute,
+ ignore_cold,
+ ignore_hot,
+ ignore_noinline,
+ ignore_always_inline,
+ invalid_noreturn,
+ nodiscard_unused,
+ warn_unused_result,
+ invalid_vec_elem_ty,
+ vec_size_not_multiple,
+ invalid_imag,
+ invalid_real,
+ zero_length_array,
+ old_style_flexible_struct,
+ comma_deletion_va_args,
+ main_return_type,
+ expansion_to_defined,
+ invalid_int_suffix,
+ invalid_float_suffix,
+ invalid_octal_digit,
+ invalid_binary_digit,
+ exponent_has_no_digits,
+ hex_floating_constant_requires_exponent,
+ sizeof_returns_zero,
+ declspec_not_allowed_after_declarator,
+ declarator_name_tok,
+ type_not_supported_on_target,
+ bit_int,
+ unsigned_bit_int_too_small,
+ signed_bit_int_too_small,
+ bit_int_too_big,
+ keyword_macro,
+ ptr_arithmetic_incomplete,
+ callconv_not_supported,
+ pointer_arith_void,
+ sizeof_array_arg,
+ array_address_to_bool,
+ string_literal_to_bool,
+ constant_expression_conversion_not_allowed,
+ invalid_object_cast,
+ cli_invalid_fp_eval_method,
+ suggest_pointer_for_invalid_fp16,
+ bitint_suffix,
+ auto_type_extension,
+ auto_type_not_allowed,
+ auto_type_requires_initializer,
+ auto_type_requires_single_declarator,
+ auto_type_requires_plain_declarator,
+ invalid_cast_to_auto_type,
+ auto_type_from_bitfield,
+ array_of_auto_type,
+ auto_type_with_init_list,
+ missing_semicolon,
+ tentative_definition_incomplete,
+ forward_declaration_here,
+ gnu_union_cast,
+ invalid_union_cast,
+ cast_to_incomplete_type,
+ invalid_source_epoch,
+ fuse_ld_path,
+ invalid_rtlib,
+ unsupported_rtlib_gcc,
+ invalid_unwindlib,
+ incompatible_unwindlib,
+ gnu_asm_disabled,
+ extension_token_used,
+ complex_component_init,
+ complex_prefix_postfix_op,
+ not_floating_type,
+ argument_types_differ,
+ ms_search_rule,
+ ctrl_z_eof,
+ illegal_char_encoding_warning,
+ illegal_char_encoding_error,
+ ucn_basic_char_error,
+ ucn_basic_char_warning,
+ ucn_control_char_error,
+ ucn_control_char_warning,
+ c89_ucn_in_literal,
+ four_char_char_literal,
+ multi_char_char_literal,
+ missing_hex_escape,
+ unknown_escape_sequence,
+ attribute_requires_string,
+ unterminated_string_literal_warning,
+ unterminated_string_literal_error,
+ empty_char_literal_warning,
+ empty_char_literal_error,
+ unterminated_char_literal_warning,
+ unterminated_char_literal_error,
+ unterminated_comment,
+ def_no_proto_deprecated,
+ passing_args_to_kr,
+ unknown_type_name,
+ label_compound_end,
+ u8_char_lit,
+ malformed_embed_param,
+ malformed_embed_limit,
+ duplicate_embed_param,
+ unsupported_embed_param,
+ invalid_compound_literal_storage_class,
+ va_opt_lparen,
+ va_opt_rparen,
+ attribute_int_out_of_range,
+ identifier_not_normalized,
+ c23_auto_plain_declarator,
+ c23_auto_single_declarator,
+ c32_auto_requires_initializer,
+ c23_auto_scalar_init,
+
+ pub fn property(_: Tag) Properties {
+ return undefined;
+ }
+ };
+ };
+}
src/stubs/aro_options.zig
@@ -0,0 +1,1 @@
+pub const version_str: []const u8 = "bootstrap-stub";
src/aro_translate_c.zig
@@ -21,8 +21,6 @@ const AliasList = common.AliasList;
const ResultUsed = common.ResultUsed;
const Scope = common.ScopeExtra(Context, Type);
-pub const Compilation = aro.Compilation;
-
const Context = struct {
gpa: mem.Allocator,
arena: mem.Allocator,
@@ -54,7 +52,7 @@ const Context = struct {
pattern_list: translate_c.PatternList,
tree: Tree,
- comp: *Compilation,
+ comp: *aro.Compilation,
mapper: aro.TypeMapper,
fn getMangle(c: *Context) u32 {
@@ -108,7 +106,7 @@ fn warn(c: *Context, scope: *Scope, loc: TokenIndex, comptime format: []const u8
pub fn translate(
gpa: mem.Allocator,
- comp: *Compilation,
+ comp: *aro.Compilation,
args: []const []const u8,
) !std.zig.Ast {
try comp.addDefaultPragmaHandlers();
@@ -124,23 +122,18 @@ pub fn translate(
assert(driver.inputs.items.len == 1);
const source = driver.inputs.items[0];
- const builtin = try comp.generateBuiltinMacros();
+ const builtin_macros = try comp.generateBuiltinMacros(.include_system_defines);
const user_macros = try comp.addSourceFromBuffer("<command line>", macro_buf.items);
- var pp = aro.Preprocessor.init(comp);
+ var pp = try aro.Preprocessor.initDefault(comp);
defer pp.deinit();
- try pp.addBuiltinMacros();
-
- _ = try pp.preprocess(builtin);
- _ = try pp.preprocess(user_macros);
- const eof = try pp.preprocess(source);
- try pp.tokens.append(pp.comp.gpa, eof);
+ try pp.preprocessSources(&.{ source, builtin_macros, user_macros });
- var tree = try aro.Parser.parse(&pp);
+ var tree = try pp.parse();
defer tree.deinit();
- if (driver.comp.diag.errors != 0) {
+ if (driver.comp.diagnostics.errors != 0) {
return error.SemanticAnalyzeFail;
}
@@ -441,14 +434,11 @@ fn transEnumDecl(c: *Context, scope: *Scope, enum_decl: NodeIndex, field_nodes:
};
const val = c.tree.value_map.get(field_node).?;
- const str = try std.fmt.allocPrint(c.arena, "{d}", .{val.data.int});
- const int = try ZigTag.integer_literal.create(c.arena, str);
-
const enum_const_def = try ZigTag.enum_constant.create(c.arena, .{
.name = enum_val_name,
.is_public = toplevel,
.type = enum_const_type_node,
- .value = int,
+ .value = try transCreateNodeAPInt(c, val),
});
if (toplevel)
try addTopLevelDecl(c, enum_val_name, enum_const_def)
@@ -565,7 +555,7 @@ fn transFnType(
const linksection_string = blk: {
if (raw_ty.getAttribute(.section)) |section| {
- break :blk section.name.slice(c.tree.strings);
+ break :blk c.comp.interner.get(section.name.ref()).bytes;
}
break :blk null;
};
@@ -659,8 +649,7 @@ fn transExpr(c: *Context, node: NodeIndex, result_used: ResultUsed) TransError!Z
const ty = c.tree.nodes.items(.ty)[@intFromEnum(node)];
if (c.tree.value_map.get(node)) |val| {
// TODO handle other values
- const str = try std.fmt.allocPrint(c.arena, "{d}", .{val.data.int});
- const int = try ZigTag.integer_literal.create(c.arena, str);
+ const int = try transCreateNodeAPInt(c, val);
const as_node = try ZigTag.as.create(c.arena, .{
.lhs = try transType(c, undefined, ty, undefined),
.rhs = int,
@@ -673,3 +662,17 @@ fn transExpr(c: *Context, node: NodeIndex, result_used: ResultUsed) TransError!Z
}
return .none;
}
+
+fn transCreateNodeAPInt(c: *Context, int: aro.Value) !ZigNode {
+ var space: aro.Interner.Tag.Int.BigIntSpace = undefined;
+ var big = int.toBigInt(&space, c.comp);
+ const is_negative = !big.positive;
+ big.positive = true;
+
+ const str = big.toStringAlloc(c.arena, 10, .lower) catch |err| switch (err) {
+ error.OutOfMemory => return error.OutOfMemory,
+ };
+ const res = try ZigTag.integer_literal.create(c.arena, str);
+ if (is_negative) return ZigTag.negate.create(c.arena, res);
+ return res;
+}
src/main.zig
@@ -4335,14 +4335,15 @@ fn cmdTranslateC(comp: *Compilation, arena: Allocator, fancy_output: ?*Compilati
var tree = switch (comp.c_frontend) {
.aro => tree: {
+ const aro = @import("aro");
const translate_c = @import("aro_translate_c.zig");
- var aro_comp = translate_c.Compilation.init(comp.gpa);
+ var aro_comp = aro.Compilation.init(comp.gpa);
defer aro_comp.deinit();
break :tree translate_c.translate(comp.gpa, &aro_comp, argv.items) catch |err| switch (err) {
error.SemanticAnalyzeFail, error.FatalError => {
// TODO convert these to zig errors
- aro_comp.renderErrors();
+ aro.Diagnostics.render(&aro_comp, std.io.tty.detectConfig(std.io.getStdErr()));
process.exit(1);
},
error.OutOfMemory => return error.OutOfMemory,
src/mingw.zig
@@ -357,9 +357,9 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
nosuspend stderr.print("output path: {s}\n", .{def_final_path}) catch break :print;
}
- try aro_comp.include_dirs.append(include_dir);
+ try aro_comp.include_dirs.append(comp.gpa, include_dir);
- const builtin_macros = try aro_comp.generateBuiltinMacros();
+ const builtin_macros = try aro_comp.generateBuiltinMacros(.include_system_defines);
const user_macros = try aro_comp.addSourceFromBuffer("<command line>", target_defines);
const def_file_source = try aro_comp.addSourceFromPath(def_file_path);
@@ -368,14 +368,11 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8) !void {
pp.linemarkers = .none;
pp.preserve_whitespace = true;
- _ = try pp.preprocess(builtin_macros);
- _ = try pp.preprocess(user_macros);
- const eof = try pp.preprocess(def_file_source);
- try pp.tokens.append(pp.comp.gpa, eof);
+ try pp.preprocessSources(&.{ def_file_source, builtin_macros, user_macros });
- for (aro_comp.diag.list.items) |diagnostic| {
+ for (aro_comp.diagnostics.list.items) |diagnostic| {
if (diagnostic.kind == .@"fatal error" or diagnostic.kind == .@"error") {
- aro_comp.renderErrors();
+ aro.Diagnostics.render(&aro_comp, std.io.tty.detectConfig(std.io.getStdErr()));
return error.AroPreprocessorFailed;
}
}
bootstrap.c
@@ -140,9 +140,12 @@ int main(int argc, char **argv) {
"-ofmt=c", "-lc", "-OReleaseSmall",
"--name", "zig2", "-femit-bin=zig2.c",
"--mod", "build_options::config.zig",
+ "--mod", "aro_options::src/stubs/aro_options.zig",
"--mod", "Builtins/Builtin.def::src/stubs/aro_builtins.zig",
"--mod", "Attribute/names.def::src/stubs/aro_names.zig",
- "--mod", "aro:Builtins/Builtin.def,Attribute/names.def:deps/aro/lib.zig",
+ "--mod", "Diagnostics/messages.def::src/stubs/aro_messages.zig",
+ "--mod", "aro_backend:build_options=aro_options:deps/aro/backend.zig",
+ "--mod", "aro:Builtins/Builtin.def,Attribute/names.def,Diagnostics/messages.def,build_options=aro_options,backend=aro_backend:deps/aro/aro.zig",
"--deps", "build_options,aro",
"-target", host_triple,
NULL,
build.zig
@@ -590,11 +590,33 @@ fn addCompilerStep(
.max_rss = 7_000_000_000,
});
exe.stack_size = stack_size;
+
+ const aro_options = b.addOptions();
+ aro_options.addOption([]const u8, "version_str", "aro-zig");
+ const aro_options_module = aro_options.createModule();
+ const aro_backend = b.createModule(.{
+ .source_file = .{ .path = "deps/aro/backend.zig" },
+ .dependencies = &.{.{
+ .name = "build_options",
+ .module = aro_options_module,
+ }},
+ });
const aro_module = b.createModule(.{
- .source_file = .{ .path = "deps/aro/lib.zig" },
+ .source_file = .{ .path = "deps/aro/aro.zig" },
+ .dependencies = &.{
+ .{
+ .name = "build_options",
+ .module = aro_options_module,
+ },
+ .{
+ .name = "backend",
+ .module = aro_backend,
+ },
+ GenerateDef.create(b, .{ .name = "Builtins/Builtin.def", .src_prefix = "deps/aro/aro" }),
+ GenerateDef.create(b, .{ .name = "Attribute/names.def", .src_prefix = "deps/aro/aro" }),
+ GenerateDef.create(b, .{ .name = "Diagnostics/messages.def", .src_prefix = "deps/aro/aro", .kind = .named }),
+ },
});
- GenerateDef.add(b, "deps/aro/Builtins/Builtin.def", "Builtins/Builtin.def", exe, aro_module);
- GenerateDef.add(b, "deps/aro/Attribute/names.def", "Attribute/names.def", exe, aro_module);
exe.addModule("aro", aro_module);
return exe;
CMakeLists.txt
@@ -817,9 +817,12 @@ set(BUILD_ZIG2_ARGS
-OReleaseSmall
--name zig2 -femit-bin="${ZIG2_C_SOURCE}"
--mod "build_options::${ZIG_CONFIG_ZIG_OUT}"
+ --mod "aro_options::src/stubs/aro_options.zig"
--mod "Builtins/Builtin.def::src/stubs/aro_builtins.zig"
--mod "Attribute/names.def::src/stubs/aro_names.zig"
- --mod "aro:Builtins/Builtin.def,Attribute/names.def:deps/aro/lib.zig"
+ --mod "Diagnostics/messages.def::src/stubs/aro_messages.zig"
+ --mod "aro_backend:build_options=aro_options:deps/aro/backend.zig"
+ --mod "aro:Builtins/Builtin.def,Attribute/names.def,Diagnostics/messages.def,build_options=aro_options,backend=aro_backend:deps/aro/aro.zig"
--deps build_options,aro
-target "${ZIG_HOST_TARGET_TRIPLE}"
)