Skip to content

Commit c65dad0

Browse files
committed
Windows, Unix, MacOS and NativeAOT adjustments for successful build
1 parent 9862ea1 commit c65dad0

21 files changed

Lines changed: 166 additions & 142 deletions

eng/native/configurecompiler.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ if (MSVC)
8585
#shrink pdb size
8686
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /PDBCOMPRESS")
8787

88+
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /INCREMENTAL:NO")
8889
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG")
8990
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUGTYPE:CV,FIXUP")
9091
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /IGNORE:4197,4013,4254,4070,4221")

eng/native/functions.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ function(preprocess_file inputFilename outputFilename)
221221
get_compile_definitions(PREPROCESS_DEFINITIONS)
222222
get_include_directories(PREPROCESS_INCLUDE_DIRECTORIES)
223223
get_source_file_property(SOURCE_FILE_DEFINITIONS ${inputFilename} COMPILE_DEFINITIONS)
224-
224+
225225
foreach(DEFINITION IN LISTS SOURCE_FILE_DEFINITIONS)
226226
list(APPEND PREPROCESS_DEFINITIONS -D${DEFINITION})
227227
endforeach()
@@ -508,7 +508,7 @@ function(install_static_library targetName destination component)
508508
if (WIN32)
509509
set_target_properties(${targetName} PROPERTIES
510510
COMPILE_PDB_NAME "${targetName}"
511-
COMPILE_PDB_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}"
511+
COMPILE_PDB_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:${targetName}>"
512512
)
513513
install (FILES "$<TARGET_FILE_DIR:${targetName}>/${targetName}.pdb" DESTINATION ${destination} COMPONENT ${component})
514514
endif()

src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Windows.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ The .NET Foundation licenses this file to you under the MIT license.
4646
<NativeLibrary Condition="'$(_targetArchitecture)' == 'x64'" Include="$(IlcSdkPath)$(VxSortSupportName)$(LibrarySuffix)" />
4747
<NativeLibrary Condition="'$(IlcMultiModule)' == 'true'" Include="$(SharedLibrary)" />
4848
<NativeLibrary Include="$(IlcSdkPath)$(StandaloneGCSupportName)$(LibrarySuffix)" />
49+
<NativeLibrary Include="$(IlcSdkPath)zlibstatic$(LibFileExt)" />
4950
</ItemGroup>
5051

5152
<ItemGroup>

src/mono/CMakeLists.txt

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,6 @@ elseif(CLR_CMAKE_HOST_OS STREQUAL "emscripten")
249249
set(DISABLE_SHARED_LIBS 1)
250250
# sys/random.h exists, but its not found
251251
set(HAVE_SYS_RANDOM_H 1)
252-
set(INTERNAL_ZLIB 1)
253252
elseif(CLR_CMAKE_HOST_OS STREQUAL "wasi")
254253
set(HOST_WASI 1)
255254
add_definitions(-D_WASI_EMULATED_PROCESS_CLOCKS -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -DHOST_WASI)
@@ -261,7 +260,6 @@ elseif(CLR_CMAKE_HOST_OS STREQUAL "wasi")
261260
add_compile_options(-Wno-unused-but-set-variable)
262261
set(ENABLE_PERFTRACING 0)
263262
set(DISABLE_SHARED_LIBS 1)
264-
set(INTERNAL_ZLIB 1)
265263
set(DISABLE_EXECUTABLES 1)
266264
set(STATIC_COMPONENTS 1)
267265
elseif(CLR_CMAKE_HOST_OS STREQUAL "windows")
@@ -270,7 +268,6 @@ elseif(CLR_CMAKE_HOST_OS STREQUAL "windows")
270268
set(HOST_NO_SYMLINKS 1)
271269
set(MONO_KEYWORD_THREAD "__declspec (thread)")
272270
set(MONO_ZERO_LEN_ARRAY 1)
273-
set(INTERNAL_ZLIB 1)
274271
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") # statically link VC runtime library
275272
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/W4>) # set warning level 4
276273
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/WX>) # treat warnings as errors
@@ -511,17 +508,9 @@ if ((HOST_MACCAT AND HOST_ARM64) OR (TARGET_MACCAT AND TARGET_ARM64))
511508
set(TARGET_APPLE_MOBILE 1)
512509
endif()
513510

514-
# Decide if we need zlib, and if so whether we want the system zlib or the in-tree copy.
511+
# Decide if we need zlib-ng.
515512
if(NOT DISABLE_EMBEDDED_PDB OR NOT DISABLE_LOG_PROFILER_GZ)
516-
if(INTERNAL_ZLIB)
517-
# defines ZLIB_SOURCES
518-
include(${CLR_SRC_NATIVE_DIR}/external/zlib.cmake)
519-
else()
520-
# if we're not on a platform where we use the in-tree zlib, require system zlib
521-
include(${CLR_SRC_NATIVE_DIR}/libs/System.IO.Compression.Native/extra_libs.cmake)
522-
set(Z_LIBS)
523-
append_extra_compression_libs(Z_LIBS)
524-
endif()
513+
include(${CLR_SRC_NATIVE_DIR}/external/zlib-ng.cmake)
525514
endif()
526515

527516
######################################

src/mono/cmake/config.h.in

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,6 @@
183183
/* Define to 1 if you have the <unwind.h> header file. */
184184
#cmakedefine HAVE_UNWIND_H 1
185185

186-
/* Use in-tree zlib */
187-
#cmakedefine INTERNAL_ZLIB 1
188-
189186
/* Define to 1 if you have the <poll.h> header file. */
190187
#cmakedefine HAVE_POLL_H 1
191188

src/mono/mono/metadata/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ project(metadata C)
55
#
66
if(DISABLE_ICALL_TABLES)
77
add_library(mono-icall-table STATIC "icall-table.c")
8-
target_link_libraries(mono-icall-table PRIVATE monoapi eglib_api)
8+
target_link_libraries(mono-icall-table PRIVATE monoapi eglib_api zlibstatic)
99
target_include_directories(mono-icall-table PRIVATE ${PROJECT_BINARY_DIR}/../..
1010
${PROJECT_SOURCE_DIR}/../..
1111
${PROJECT_SOURCE_DIR}/..)
@@ -200,10 +200,10 @@ set(metadata_sources "${metadata_platform_sources};${metadata_common_sources};${
200200
if(HOST_WIN32 AND NOT DISABLE_SHARED_LIBS)
201201
add_library(metadata_objects_shared OBJECT ${metadata_sources})
202202
target_compile_definitions(metadata_objects_shared PRIVATE ${metadata_compile_definitions})
203-
target_link_libraries(metadata_objects_shared PRIVATE monoapi eglib_api utils_objects_shared)
203+
target_link_libraries(metadata_objects_shared PRIVATE monoapi eglib_api utils_objects_shared zlibstatic)
204204
# note: metadata_objects is an object library, so this doesn't force linking with sgen,
205205
# it just adds the relevant include directories - which we need even with Boehm
206-
target_link_libraries(metadata_objects_shared PRIVATE sgen_objects_shared)
206+
target_link_libraries(metadata_objects_shared PRIVATE sgen_objects_shared zlibstatic)
207207
target_compile_definitions(metadata_objects_shared PRIVATE -DMONO_DLL_EXPORT)
208208
target_include_directories(metadata_objects_shared PRIVATE ${PROJECT_BINARY_DIR}/../..
209209
${PROJECT_SOURCE_DIR}/../..
@@ -212,10 +212,10 @@ endif()
212212

213213
add_library(metadata_objects OBJECT ${metadata_sources})
214214
target_compile_definitions(metadata_objects PRIVATE ${metadata_compile_definitions})
215-
target_link_libraries(metadata_objects PRIVATE monoapi eglib_api utils_objects)
215+
target_link_libraries(metadata_objects PRIVATE monoapi eglib_api utils_objects zlibstatic)
216216
# note: metadata_objects is an object library, so this doesn't force linking with sgen,
217217
# it just adds the relevant include directories - which we need even with Boehm
218-
target_link_libraries(metadata_objects PRIVATE sgen_objects)
218+
target_link_libraries(metadata_objects PRIVATE sgen_objects zlibstatic)
219219
if(NOT HOST_WIN32)
220220
target_compile_definitions(metadata_objects PRIVATE -DMONO_DLL_EXPORT)
221221
endif()

src/mono/mono/metadata/debug-mono-ppdb.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,8 @@
3030
#include <mono/utils/mono-logger-internals.h>
3131

3232
#ifndef DISABLE_EMBEDDED_PDB
33-
#ifdef INTERNAL_ZLIB
34-
#include <external/zlib/zlib.h>
35-
#else
3633
#include <zlib.h>
3734
#endif
38-
#endif
3935

4036
#include "debug-mono-ppdb.h"
4137

src/mono/mono/mini/CMakeLists.txt

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ endif()
272272

273273
if(ENABLE_INTERP_LIB)
274274
add_library(mono-ee-interp STATIC "${interp_sources}")
275-
target_link_libraries(mono-ee-interp PRIVATE monoapi eglib_api)
275+
target_link_libraries(mono-ee-interp PRIVATE monoapi eglib_api zlibstatic)
276276
target_include_directories(mono-ee-interp PRIVATE ${PROJECT_BINARY_DIR}/../..
277277
${PROJECT_SOURCE_DIR}/../..
278278
${PROJECT_SOURCE_DIR}/..)
@@ -322,19 +322,16 @@ elseif(NOT HOST_BROWSER AND NOT HOST_WASI)
322322
set(mini_sources "${mini_sources};${VERSION_FILE_PATH}") # this is generated by GenerateNativeVersionFile in Arcade
323323
endif()
324324

325-
set_source_files_properties(${ZLIB_SOURCES} PROPERTIES COMPILE_DEFINITIONS "${ZLIB_COMPILE_DEFINITIONS}")
326-
set_source_files_properties(${ZLIB_SOURCES} PROPERTIES COMPILE_OPTIONS "${ZLIB_COMPILE_OPTIONS}")
327-
328-
set(monosgen-sources "${mini_sources};${ZLIB_SOURCES}")
325+
set(monosgen-sources "${mini_sources}")
329326

330327
if(HOST_WIN32 AND NOT DISABLE_SHARED_LIBS)
331328
add_library(monosgen-objects_shared OBJECT "${monosgen-sources}")
332329
target_compile_definitions(monosgen-objects_shared PRIVATE -DMONO_DLL_EXPORT)
333-
target_link_libraries (monosgen-objects_shared PRIVATE monoapi eglib_api utils_objects_shared sgen_objects_shared metadata_objects_shared)
330+
target_link_libraries (monosgen-objects_shared PRIVATE monoapi eglib_api utils_objects_shared sgen_objects_shared metadata_objects_shared zlibstatic)
334331
endif()
335332

336333
add_library(monosgen-objects OBJECT "${monosgen-sources}")
337-
target_link_libraries (monosgen-objects PRIVATE monoapi eglib_api utils_objects sgen_objects metadata_objects)
334+
target_link_libraries (monosgen-objects PRIVATE monoapi eglib_api utils_objects sgen_objects metadata_objects zlibstatic)
338335
if(NOT HOST_WIN32)
339336
target_compile_definitions(monosgen-objects PRIVATE -DMONO_DLL_EXPORT)
340337
endif()
@@ -359,16 +356,16 @@ if(NOT DISABLE_SHARED_LIBS)
359356
target_compile_definitions(monosgen-shared PRIVATE -DMONO_DLL_EXPORT)
360357
# musl-libc implements ucontext in a different library on s390x
361358
if(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
362-
target_link_libraries(monosgen-shared PRIVATE ucontext)
359+
target_link_libraries(monosgen-shared PRIVATE ucontext zlibstatic)
363360
endif(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
364361
set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME})
365362
if(MONO_SET_RPATH_ORIGIN)
366363
set_target_properties(monosgen-shared PROPERTIES INSTALL_RPATH "$ORIGIN")
367364
endif()
368365
if(HOST_WIN32)
369-
target_link_libraries(monosgen-shared PRIVATE monoapi eglib_objects utils_objects_shared sgen_objects_shared metadata_objects_shared)
366+
target_link_libraries(monosgen-shared PRIVATE monoapi eglib_objects utils_objects_shared sgen_objects_shared metadata_objects_shared zlibstatic)
370367
else()
371-
target_link_libraries(monosgen-shared PRIVATE monoapi eglib_objects utils_objects sgen_objects metadata_objects)
368+
target_link_libraries(monosgen-shared PRIVATE monoapi eglib_objects utils_objects sgen_objects metadata_objects zlibstatic)
372369
endif()
373370
target_include_directories (monosgen-shared PRIVATE monoapi)
374371
if(TARGET_WIN32)
@@ -402,7 +399,7 @@ if(NOT DISABLE_SHARED_LIBS)
402399
install_with_stripped_symbols(monosgen-shared TARGETS lib)
403400
if(HOST_WIN32 AND TARGET_AMD64)
404401
add_library(monosgen-shared-dac SHARED "mini-windows-dlldac.c")
405-
target_link_libraries(monosgen-shared-dac PRIVATE monoapi eglib_api)
402+
target_link_libraries(monosgen-shared-dac PRIVATE monoapi eglib_api zlibstatic)
406403
set_target_properties(monosgen-shared-dac PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME}-dac)
407404
endif()
408405

@@ -424,7 +421,7 @@ if(NOT DISABLE_SHARED_LIBS)
424421
endif()
425422
add_library(${frameworkconfig} SHARED $<TARGET_OBJECTS:monosgen-objects>)
426423
target_compile_definitions(${frameworkconfig} PRIVATE -DMONO_DLL_EXPORT)
427-
target_link_libraries(${frameworkconfig} PRIVATE monoapi eglib_objects utils_objects sgen_objects metadata_objects)
424+
target_link_libraries(${frameworkconfig} PRIVATE monoapi eglib_objects utils_objects sgen_objects metadata_objects zlibstatic)
428425
target_link_libraries(${frameworkconfig} PRIVATE ${OS_LIBS} ${LLVM_LIBS} ${Z_LIBS})
429426

430427
set_property(TARGET ${frameworkconfig} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-compatibility_version -Wl,2.0 -Wl,-current_version -Wl,2.0")
@@ -541,14 +538,14 @@ if(NOT DISABLE_EXECUTABLES)
541538
set_target_properties(mono-sgen PROPERTIES INSTALL_RPATH "$ORIGIN")
542539
endif()
543540
endif()
544-
target_link_libraries(mono-sgen PRIVATE monoapi eglib_api monosgen-static)
541+
target_link_libraries(mono-sgen PRIVATE monoapi eglib_api monosgen-static zlibstatic)
545542
if (HOST_WASM)
546-
target_link_libraries(mono-sgen PRIVATE mono-wasm-nosimd)
543+
target_link_libraries(mono-sgen PRIVATE mono-wasm-nosimd zlibstatic)
547544
endif()
548545
target_link_libraries(mono-sgen PRIVATE ${OS_LIBS} ${LLVM_LIBS} ${Z_LIBS})
549546
# musl-libc implements ucontext in a different library on s390x
550547
if(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
551-
target_link_libraries(mono-sgen PRIVATE ucontext)
548+
target_link_libraries(mono-sgen PRIVATE ucontex zlibstatic)
552549
endif(CLR_CMAKE_TARGET_LINUX_MUSL AND TARGET_S390X)
553550
if(NOT DISABLE_COMPONENTS AND STATIC_COMPONENTS AND NOT DISABLE_LINK_STATIC_COMPONENTS)
554551
# if components are built statically, link them into runtime.

src/mono/mono/profiler/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@ include_directories(
1212
if(NOT DISABLE_LIBS)
1313
if(HOST_ANDROID OR HOST_IOS OR HOST_TVOS OR HOST_S390X)
1414
# Build the logging profiler only for certain platforms
15-
set_source_files_properties(${ZLIB_SOURCES} PROPERTIES COMPILE_DEFINITIONS "${ZLIB_COMPILE_DEFINITIONS}")
16-
set_source_files_properties(${ZLIB_SOURCES} PROPERTIES COMPILE_OPTIONS "${ZLIB_COMPILE_OPTIONS}")
17-
add_library(mono-profiler-log SHARED helper.c log.c log-args.c ${ZLIB_SOURCES})
15+
add_library(mono-profiler-log SHARED helper.c log.c log-args.c)
1816
target_compile_definitions(mono-profiler-log PRIVATE -DMONO_DLL_EXPORT)
19-
target_link_libraries(mono-profiler-log PRIVATE monosgen-shared monoapi eglib_objects)
17+
target_link_libraries(mono-profiler-log PRIVATE monosgen-shared monoapi eglib_objects zlibstatic)
2018
if(HOST_ANDROID)
2119
target_link_libraries(mono-profiler-log PRIVATE log)
2220
endif()

src/mono/mono/profiler/log.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,8 @@
7272
#include <sys/socket.h>
7373
#endif
7474
#ifndef DISABLE_LOG_PROFILER_GZ
75-
#ifdef INTERNAL_ZLIB
76-
#include <external/zlib/zlib.h>
77-
#else
7875
#include <zlib.h>
7976
#endif
80-
#endif
8177

8278
#ifdef HOST_WIN32
8379
#include <winsock2.h>

0 commit comments

Comments
 (0)