zig test on 64-bit windows runs 32-bit tests
parent
d43204c950
commit
845f22101b
|
@ -129,7 +129,7 @@ else()
|
|||
add_library(embedded_lld_elf ${EMBEDDED_LLD_ELF_SOURCES})
|
||||
add_library(embedded_lld_coff ${EMBEDDED_LLD_COFF_SOURCES})
|
||||
if(MSVC)
|
||||
set(ZIG_LLD_COMPILE_FLAGS "-std=c++11")
|
||||
set(ZIG_LLD_COMPILE_FLAGS "-std=c++11 -D_CRT_SECURE_NO_WARNINGS")
|
||||
else()
|
||||
set(ZIG_LLD_COMPILE_FLAGS "-std=c++11 -fno-exceptions -fno-rtti -Wno-comment")
|
||||
endif()
|
||||
|
|
|
@ -711,9 +711,7 @@ int main(int argc, char **argv) {
|
|||
codegen_build(g);
|
||||
codegen_link(g, buf_ptr(test_exe_name));
|
||||
|
||||
bool is_native_target = target == nullptr || (target->os == native.os &&
|
||||
target->arch.arch == native.arch.arch && target->arch.sub_arch == native.arch.sub_arch);
|
||||
if (!is_native_target) {
|
||||
if (!target_can_exec(&native, target)) {
|
||||
fprintf(stderr, "Created %s but skipping execution because it is non-native.\n",
|
||||
buf_ptr(test_exe_name));
|
||||
return 0;
|
||||
|
|
|
@ -640,3 +640,28 @@ Buf *target_dynamic_linker(ZigTarget *target) {
|
|||
return buf_create_from_str("/lib64/ld-linux-x86-64.so.2");
|
||||
}
|
||||
}
|
||||
|
||||
bool target_can_exec(const ZigTarget *host_target, const ZigTarget *guest_target) {
|
||||
assert(host_target != nullptr);
|
||||
|
||||
if (guest_target == nullptr) {
|
||||
// null guest target means that the guest target is native
|
||||
return true;
|
||||
}
|
||||
|
||||
if (guest_target->os == host_target->os && guest_target->arch.arch == host_target->arch.arch &&
|
||||
guest_target->arch.sub_arch == host_target->arch.sub_arch)
|
||||
{
|
||||
// OS, arch, and sub-arch match
|
||||
return true;
|
||||
}
|
||||
|
||||
if (guest_target->os == ZigLLVM_Win32 && guest_target->os == ZigLLVM_Win32 &&
|
||||
host_target->arch.arch == ZigLLVM_x86_64 && guest_target->arch.arch == ZigLLVM_x86)
|
||||
{
|
||||
// 64-bit windows can run 32-bit programs
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -77,5 +77,7 @@ const char *target_exe_file_ext(ZigTarget *target);
|
|||
|
||||
Buf *target_dynamic_linker(ZigTarget *target);
|
||||
|
||||
bool target_can_exec(const ZigTarget *host_target, const ZigTarget *guest_target);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue