File tree Expand file tree Collapse file tree 3 files changed +11
-2
lines changed Expand file tree Collapse file tree 3 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -1005,7 +1005,14 @@ set(SDL_DISABLE_ALLOCA 0)
10051005check_include_file("alloca.h" "HAVE_ALLOCA_H" )
10061006if (MSVC )
10071007 check_include_file("malloc.h" "HAVE_MALLOC_H" )
1008- check_symbol_exists("_alloca" "malloc.h" _ALLOCA_IN_MALLOC_H)
1008+ # Cannot use CheckSymbolExists for _alloca: purely intrinsic functions have no address (C7552)
1009+ if (NOT DEFINED _ALLOCA_IN_MALLOC_H)
1010+ message (STATUS "Looking for _alloca in malloc.h" )
1011+ set (testsrc "${CMAKE_CURRENT_SOURCE_DIR} /test_malloc_alloca.c" )
1012+ file (WRITE "${testsrc} " "#include <malloc.h>\n\n int main(int argc, char *argv[]) { void *ptr = _alloca(argc * (int)argv[0][0]); return ptr != (void *)0; }" )
1013+ try_compile (_ALLOCA_IN_MALLOC_H "${CMAKE_CURRENT_BINARY_DIR} /alloca_in_malloc_h" SOURCES "${testsrc} " )
1014+ message (STATUS "Looking for _alloca in malloc.h - ${_ALLOCA_IN_MALLOC_H} " )
1015+ endif ()
10091016 if (NOT HAVE_ALLOCA_H AND NOT _ALLOCA_IN_MALLOC_H)
10101017 set (SDL_DISABLE_ALLOCA 1)
10111018 endif ()
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ if(EMSCRIPTEN)
44 set (HAVE_ALLOCA_H "1" CACHE INTERNAL "Have include alloca.h" )
55 set (HAVE_LIBM "1" CACHE INTERNAL "Have library m" )
66 set (HAVE_MALLOC "1" CACHE INTERNAL "Have include malloc.h" )
7+ set (HAVE_MALLOC_H "1" CACHE INTERNAL "Have include malloc.h" )
78 set (LIBC_HAS_ABS "1" CACHE INTERNAL "Have symbol abs" )
89 set (LIBC_HAS_ACOS "1" CACHE INTERNAL "Have symbol acos" )
910 set (LIBC_HAS_ACOSF "1" CACHE INTERNAL "Have symbol acosf" )
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ if(MSVC)
2121 set (HAVE_DXGI_H "1" CACHE INTERNAL "Have include dxgi.h" )
2222 set (HAVE_LIBM "" CACHE INTERNAL "Have library m" )
2323 set (HAVE_MALLOC "1" CACHE INTERNAL "Have include malloc.h" )
24+ set (HAVE_MALLOC_H "1" CACHE INTERNAL "Have include malloc.h" )
2425 set (HAVE_MMDEVICEAPI_H "1" CACHE INTERNAL "Have include mmdeviceapi.h" )
2526 set (HAVE_SENSORSAPI_H "1" CACHE INTERNAL "Have include sensorsapi.h" )
2627 set (HAVE_SHELLSCALINGAPI_H "1" CACHE INTERNAL "Have include shellscalingapi.h" )
@@ -157,7 +158,7 @@ if(MSVC)
157158 set (LIBC_HAS__ULTOA "1" CACHE INTERNAL "Have symbol _ultoa" )
158159 set (LIBC_HAS__WCSDUP "1" CACHE INTERNAL "Have symbol _wcsdup" )
159160 set (LIBC_IS_GLIBC "" CACHE INTERNAL "Have symbol __GLIBC__" )
160- set (_ALLOCA_IN_MALLOC_H "" CACHE INTERNAL "Have symbol _alloca" )
161+ set (_ALLOCA_IN_MALLOC_H "1" CACHE INTERNAL "Have symbol _alloca" )
161162
162163 if (CHECK_CPU_ARCHITECTURE_X86)
163164 set (COMPILER_SUPPORTS_AVX "1" CACHE INTERNAL "Test COMPILER_SUPPORTS_AVX" )
You can’t perform that action at this time.
0 commit comments