mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-14 14:23:43 +00:00
Add -reloc-mode:<string>
This commit is contained in:
26
src/main.cpp
26
src/main.cpp
@@ -625,6 +625,8 @@ enum BuildFlagKind {
|
||||
BuildFlag_ExtraAssemblerFlags,
|
||||
BuildFlag_Microarch,
|
||||
|
||||
BuildFlag_RelocMode,
|
||||
|
||||
BuildFlag_TestName,
|
||||
|
||||
BuildFlag_DisallowDo,
|
||||
@@ -779,6 +781,8 @@ bool parse_build_flags(Array<String> args) {
|
||||
add_flag(&build_flags, BuildFlag_ExtraAssemblerFlags, str_lit("extra-assembler-flags"), BuildFlagParam_String, Command__does_build);
|
||||
add_flag(&build_flags, BuildFlag_Microarch, str_lit("microarch"), BuildFlagParam_String, Command__does_build);
|
||||
|
||||
add_flag(&build_flags, BuildFlag_RelocMode, str_lit("reloc-mode"), BuildFlagParam_String, Command__does_build);
|
||||
|
||||
add_flag(&build_flags, BuildFlag_TestName, str_lit("test-name"), BuildFlagParam_String, Command_test);
|
||||
|
||||
add_flag(&build_flags, BuildFlag_DisallowDo, str_lit("disallow-do"), BuildFlagParam_None, Command__does_check);
|
||||
@@ -1339,6 +1343,28 @@ bool parse_build_flags(Array<String> args) {
|
||||
string_to_lower(&build_context.microarch);
|
||||
break;
|
||||
}
|
||||
case BuildFlag_RelocMode: {
|
||||
GB_ASSERT(value.kind == ExactValue_String);
|
||||
String v = value.value_string;
|
||||
if (v == "default") {
|
||||
build_context.reloc_mode = RelocMode_Default;
|
||||
} else if (v == "static") {
|
||||
build_context.reloc_mode = RelocMode_Static;
|
||||
} else if (v == "pic") {
|
||||
build_context.reloc_mode = RelocMode_PIC;
|
||||
} else if (v == "dynamic-no-pic") {
|
||||
build_context.reloc_mode = RelocMode_DynamicNoPIC;
|
||||
} else {
|
||||
gb_printf_err("-reloc-mode flag expected one of the following\n");
|
||||
gb_printf_err("\tdefault\n");
|
||||
gb_printf_err("\tstatic\n");
|
||||
gb_printf_err("\tpic\n");
|
||||
gb_printf_err("\tdynamic-no-pic\n");
|
||||
bad_flags = true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case BuildFlag_TestName: {
|
||||
GB_ASSERT(value.kind == ExactValue_String);
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user