/* compiler specification */
if( env->compiler == k_compiler_zigcc )
+ {
vg_strcat( &cmd, "zig cc " );
+
+ if( env->platform == k_platform_windows )
+ {
+ if( type == k_obj_type_exe )
+ {
+ vg_strcat( &cmd, "-Wl,--subsystem=windows" );
+
+ if( env->no_pdb )
+ vg_strcat( &cmd, "-Wl,/pdb:/dev/null" );
+ }
+ }
+
+ vg_strcat( &cmd, " -target " );
+ vg_strcat( &cmd, architecture_names[env->arch] );
+ vg_strcat( &cmd, "-" );
+ vg_strcat( &cmd, platform_names[env->platform] );
+
+ if( env->platform == k_platform_linux )
+ {
+ vg_strcat( &cmd, "-gnu" );
+ vg_strcat( &cmd, libc_names[env->libc] );
+ }
+
+ vg_strcat( &cmd, " -fno-sanitize=undefined " );
+ vg_strcat( &cmd, " -fkeep-static-consts -fkeep-persistent-storage-variables " );
+ }
+
else if( env->compiler == k_compiler_clang )
vg_strcat( &cmd, "clang" );
vg_strcat( &cmd, " -Wl,-rpath=./\\\n" );
}
- /* platform specification (zig-cc only) */
- if( env->compiler == k_compiler_zigcc )
- {
- vg_strcat( &cmd, " -target " );
- vg_strcat( &cmd, architecture_names[env->arch] );
- vg_strcat( &cmd, "-" );
- vg_strcat( &cmd, platform_names[env->platform] );
-
- if( env->platform == k_platform_linux )
- {
- vg_strcat( &cmd, "-gnu" );
- vg_strcat( &cmd, libc_names[env->libc] );
- }
-
- if( env->platform == k_platform_windows )
- {
- if( type == k_obj_type_exe )
- {
- if( env->no_pdb )
- vg_strcat( &cmd, " /pdb:/dev/null" );
- vg_strcat( &cmd, " /SUBSYSTEM:windows" );
- }
- }
-
- vg_strcat( &cmd, " -fno-sanitize=undefined " );
- vg_strcat( &cmd, " -fkeep-static-consts -fkeep-persistent-storage-variables " );
- }
-
vg_syscall( cmd.buffer );
return res;
}