Skip to content

Commit

Permalink
[release/7.0] Suppress clang-16 warnings (backport #81573) (#84444)
Browse files Browse the repository at this point in the history
Fix DBI loading problem on Linux (#82461)
  • Loading branch information
ayakael authored May 15, 2023
1 parent bf7c094 commit 6f9d91c
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 6 deletions.
9 changes: 9 additions & 0 deletions eng/native/configurecompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,15 @@ if (CLR_CMAKE_HOST_UNIX)
add_compile_options(-Wno-incompatible-ms-struct)

add_compile_options(-Wno-reserved-identifier)

# clang 16.0 introduced buffer hardening https://discourse.llvm.org/t/rfc-c-buffer-hardening/65734
# which we are not conforming to yet.
add_compile_options(-Wno-unsafe-buffer-usage)

# other clang 16.0 suppressions
add_compile_options(-Wno-single-bit-bitfield-constant-conversion)
add_compile_options(-Wno-cast-function-type-strict)
add_compile_options(-Wno-incompatible-function-pointer-types-strict)
else()
add_compile_options(-Wno-uninitialized)
add_compile_options(-Wno-strict-aliasing)
Expand Down
11 changes: 11 additions & 0 deletions src/coreclr/dlls/mscordbi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,17 @@ elseif(CLR_CMAKE_HOST_UNIX)
mscordaccore
)

# Before llvm 16, lld was setting `--undefined-version` by default. The default was
# flipped to `--no-undefined-version` in lld 16, so we will explicitly set it to
# `--undefined-version` for our use-case.
include(CheckLinkerFlag OPTIONAL)
if(COMMAND check_linker_flag)
check_linker_flag(CXX -Wl,--undefined-version LINKER_SUPPORTS_UNDEFINED_VERSION)
if (LINKER_SUPPORTS_UNDEFINED_VERSION)
add_linker_flag(-Wl,--undefined-version)
endif(LINKER_SUPPORTS_UNDEFINED_VERSION)
endif(COMMAND check_linker_flag)

# COREDBI_LIBRARIES is mentioned twice because ld is one pass linker and will not find symbols
# if they are defined after they are used. Having all libs twice makes sure that ld will actually
# find all symbols.
Expand Down
4 changes: 2 additions & 2 deletions src/native/corehost/apphost/static/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ if(CLR_CMAKE_TARGET_WIN32)
add_linker_flag("/DEF:${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost.def")

else()
if(CLR_CMAKE_TARGET_OSX)
set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_OSXexports.src)
if(CLR_CMAKE_TARGET_FREEBSD)
set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_freebsdexports.src)
else()
set(DEF_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/singlefilehost_unixexports.src)
endif()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ g_dacTable

; Used by profilers
MetaDataGetDispenser

; FreeBSD needs to reexport these
__progname
environ
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,3 @@ g_dacTable

; Used by profilers
MetaDataGetDispenser

; FreeBSD needs to reexport these
__progname
environ

0 comments on commit 6f9d91c

Please sign in to comment.