From c7d1ff4a9d95d6596c6c79684906b00412122e55 Mon Sep 17 00:00:00 2001 From: Victor Perevertkin Date: Fri, 9 Apr 2021 03:51:32 +0300 Subject: [PATCH] [SDK][NDK] Fix clang 12 compilation --- sdk/cmake/gcc.cmake | 11 +++++++++-- sdk/include/ndk/kefuncs.h | 2 -- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sdk/cmake/gcc.cmake b/sdk/cmake/gcc.cmake index d5436cea69f..9da30e09008 100644 --- a/sdk/cmake/gcc.cmake +++ b/sdk/cmake/gcc.cmake @@ -47,16 +47,23 @@ add_compile_options("$<$>:-nostdinc>") add_compile_options(-mstackrealign) -if(NOT CMAKE_C_COMPILER_ID STREQUAL "Clang") +if(CMAKE_C_COMPILER_ID STREQUAL "GNU") add_compile_options(-fno-aggressive-loop-optimizations) if (DBG) add_compile_options("$<$:-Wold-style-declaration>") endif() -else() +elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang") add_compile_options("$<$:-Wno-microsoft>") add_compile_options(-Wno-pragma-pack) add_compile_options(-fno-associative-math) add_compile_options(-fcommon) + + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.0) + # disable "libcall optimization" + # see https://mudongliang.github.io/2020/12/02/undefined-reference-to-stpcpy.html + add_compile_options(-fno-builtin-stpcpy) + endif() + set(CMAKE_LINK_DEF_FILE_FLAG "") set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") set(CMAKE_LINK_LIBRARY_SUFFIX "") diff --git a/sdk/include/ndk/kefuncs.h b/sdk/include/ndk/kefuncs.h index 5556a79fa56..323f9df6455 100644 --- a/sdk/include/ndk/kefuncs.h +++ b/sdk/include/ndk/kefuncs.h @@ -245,7 +245,6 @@ KeSignalCallDpcSynchronize( // ARC Configuration Functions. Only enabled if you have ARC Support // #ifdef _ARC_ -CODE_SEG("INIT") PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationNextEntry( @@ -256,7 +255,6 @@ KeFindConfigurationNextEntry( _In_ PCONFIGURATION_COMPONENT_DATA *NextLink ); -CODE_SEG("INIT") PCONFIGURATION_COMPONENT_DATA NTAPI KeFindConfigurationEntry(