From: Zebediah Figura zfigura@codeweavers.com
d3d tests are currently running out of address space in gitlab CI.
There are other ways to fix this than using -Wl,--large-address-aware, but this is the easiest, and I do not see any drawbacks to it.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53217 --- dlls/kernel32/tests/heap.c | 7 +++---- dlls/ntdll/tests/info.c | 4 ++-- dlls/ntdll/tests/wow64.c | 3 +-- tools/makedep.c | 5 +++++ 4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c index d05eac33174..897597d1b4a 100644 --- a/dlls/kernel32/tests/heap.c +++ b/dlls/kernel32/tests/heap.c @@ -3629,16 +3629,15 @@ static void test_GlobalMemoryStatus(void) ok( memex.ullAvailExtendedVirtual == 0, "got ullAvailExtendedVirtual %#I64x\n", memex.ullAvailExtendedVirtual );
ok( mem.dwMemoryLoad == memex.dwMemoryLoad, "got dwMemoryLoad %lu\n", mem.dwMemoryLoad ); - ok( mem.dwTotalPhys == min( ~(SIZE_T)0 >> 1, memex.ullTotalPhys ) || - broken( mem.dwTotalPhys == ~(SIZE_T)0 ) /* Win <= 8.1 with RAM size > 4GB */, + ok( mem.dwTotalPhys == min( ~(SIZE_T)0, memex.ullTotalPhys ), "got dwTotalPhys %#Ix\n", mem.dwTotalPhys ); - ok( IS_WITHIN_RANGE( mem.dwAvailPhys, min( ~(SIZE_T)0 >> 1, memex.ullAvailPhys ) ) || - broken( mem.dwAvailPhys == ~(SIZE_T)0 ) /* Win <= 8.1 with RAM size > 4GB */, + ok( IS_WITHIN_RANGE( mem.dwAvailPhys, min( ~(SIZE_T)0, memex.ullAvailPhys ) ), "got dwAvailPhys %#Ix\n", mem.dwAvailPhys ); #ifndef _WIN64 todo_wine_if(memex.ullTotalPageFile > 0xfff7ffff) #endif ok( mem.dwTotalPageFile == min( ~(SIZE_T)0, memex.ullTotalPageFile ), "got dwTotalPageFile %#Ix\n", mem.dwTotalPageFile ); + todo_wine ok( IS_WITHIN_RANGE( mem.dwAvailPageFile, min( ~(SIZE_T)0, memex.ullAvailPageFile ) ), "got dwAvailPageFile %#Ix\n", mem.dwAvailPageFile ); ok( mem.dwTotalVirtual == memex.ullTotalVirtual, "got dwTotalVirtual %#Ix\n", mem.dwTotalVirtual ); ok( mem.dwAvailVirtual == memex.ullAvailVirtual, "got dwAvailVirtual %#Ix\n", mem.dwAvailVirtual ); diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c index 3b9bad56ea4..2aeaa79e8d4 100644 --- a/dlls/ntdll/tests/info.c +++ b/dlls/ntdll/tests/info.c @@ -192,8 +192,8 @@ static void test_query_basic(void) ok( sbi.HighestUserAddress == sbi2.HighestUserAddress, "Expected HighestUserAddress %p, got %p.\n", (void *)sbi.HighestUserAddress, (void *)sbi2.HighestUserAddress); #else - ok( sbi.HighestUserAddress == (void *)0x7ffeffff, "wrong limit %p\n", sbi.HighestUserAddress); - todo_wine_if( old_wow64 ) + /* 0x7ffeffff without large-address-aware */ + ok( sbi.HighestUserAddress == (void *)0xfffeffff, "wrong limit %p\n", sbi.HighestUserAddress); ok( sbi2.HighestUserAddress == (is_wow64 ? (void *)0xfffeffff : (void *)0x7ffeffff), "wrong limit %p\n", sbi.HighestUserAddress); #endif diff --git a/dlls/ntdll/tests/wow64.c b/dlls/ntdll/tests/wow64.c index 99f6a6dec65..7408ae9fb95 100644 --- a/dlls/ntdll/tests/wow64.c +++ b/dlls/ntdll/tests/wow64.c @@ -1688,8 +1688,7 @@ static void test_nt_wow64(void) ok( status == STATUS_SUCCESS, "failed %lx\n", status ); ok( len == sizeof(sbi2), "wrong length %ld\n", len );
- ok( sbi.HighestUserAddress == (void *)0x7ffeffff, "wrong limit %p\n", sbi.HighestUserAddress); - todo_wine_if( old_wow64 ) + ok( sbi.HighestUserAddress == (void *)0xfffeffff, "wrong limit %p\n", sbi.HighestUserAddress); ok( sbi2.HighestUserAddress == (is_wow64 ? (void *)0xfffeffff : (void *)0x7ffeffff), "wrong limit %p\n", sbi.HighestUserAddress);
diff --git a/tools/makedep.c b/tools/makedep.c index 8495d93d8c6..6ac55a1c745 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -3515,6 +3515,7 @@ static void output_test_module( struct makefile *make, unsigned int arch )
strarray_add( &make->all_targets[arch], testmodule ); strarray_add( &make->clean_files, stripped ); + output( "%s:\n", obj_dir_path( make, testmodule )); output_winegcc_command( make, arch ); output_filenames( make->extradllflags ); @@ -3522,9 +3523,11 @@ static void output_test_module( struct makefile *make, unsigned int arch ) output_filenames_obj_dir( make, make->res_files[arch] ); if ((debug_file = get_debug_file( make, testmodule, arch ))) output_filename( strmake( "-Wl,--debug-file,%s", obj_dir_path( make, debug_file ))); + output_filename( "-Wl,--large-address-aware" ); output_filenames( all_libs ); output_filename( arch_make_variable( "LDFLAGS", arch )); output( "\n" ); + output( "%s:\n", obj_dir_path( make, stripped )); output_winegcc_command( make, arch ); output_filename( "-s" ); @@ -3532,9 +3535,11 @@ static void output_test_module( struct makefile *make, unsigned int arch ) output_filenames( make->extradllflags ); output_filenames_obj_dir( make, make->object_files[arch] ); output_filenames_obj_dir( make, make->res_files[arch] ); + output_filename( "-Wl,--large-address-aware" ); output_filenames( all_libs ); output_filename( arch_make_variable( "LDFLAGS", arch )); output( "\n" ); + output( "%s %s:", obj_dir_path( make, testmodule ), obj_dir_path( make, stripped )); output_filenames_obj_dir( make, make->object_files[arch] ); output_filenames_obj_dir( make, make->res_files[arch] );