Skip to content

Commit 7338ea4

Browse files
committed
Haiku: Configuration support
Added more support for configuration for Haiku cross-compile builds.
1 parent 87c2558 commit 7338ea4

File tree

43 files changed

+205
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+205
-63
lines changed

src/coreclr/.nuget/Directory.Build.props

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
transport packages to flow dependencies anymore -->
3434
<CreatePackedPackage Condition="'$(CreatePackedPackage)' == ''">false</CreatePackedPackage>
3535

36-
<SupportedPackageOSGroups Condition="'$(SupportedPackageOSGroups)' == ''">windows;osx;android;linux;freebsd;netbsd;illumos;solaris</SupportedPackageOSGroups>
36+
<SupportedPackageOSGroups Condition="'$(SupportedPackageOSGroups)' == ''">windows;osx;android;linux;freebsd;netbsd;illumos;solaris;haiku</SupportedPackageOSGroups>
3737
<SupportedPackageOSGroups>;$(SupportedPackageOSGroups);</SupportedPackageOSGroups>
3838

3939
<_isSupportedOSGroup>true</_isSupportedOSGroup>
@@ -105,6 +105,9 @@
105105
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';solaris;'))">
106106
<OfficialBuildRID Include="solaris-x64" />
107107
</ItemGroup>
108+
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';haiku;'))">
109+
<OfficialBuildRID Include="haiku-x64" />
110+
</ItemGroup>
108111
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';windows;'))">
109112
<OfficialBuildRID Include="win-x86">
110113
<Platform>x86</Platform>

src/coreclr/crossgen-corelib.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<PropertyGroup>
2424
<BuildDll>true</BuildDll>
25-
<BuildDll Condition="'$(TargetOS)' == 'netbsd' or '$(TargetOS)' == 'illumos' or '$(TargetOS)' == 'solaris'">false</BuildDll>
25+
<BuildDll Condition="'$(TargetOS)' == 'netbsd' or '$(TargetOS)' == 'illumos' or '$(TargetOS)' == 'solaris' or '$(TargetOS)' == 'haiku'">false</BuildDll>
2626
<BuildDll Condition="'$(TargetArchitecture)' == 'riscv64'">false</BuildDll>
2727

2828
<BuildPdb>false</BuildPdb>

src/coreclr/debug/createdump/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ endif(CLR_CMAKE_HOST_OSX)
101101
createdump_static
102102
corguids
103103
dbgutil
104-
dl
104+
${CMAKE_DL_LIBS}
105105
)
106106

107107
endif(CLR_CMAKE_HOST_WIN32)

src/coreclr/debug/dbgutil/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ set(DBGUTIL_SOURCES
1919
dbgutil.cpp
2020
)
2121

22-
if(CLR_CMAKE_TARGET_LINUX)
22+
if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_HAIKU)
2323
list(APPEND DBGUTIL_SOURCES
2424
elfreader.cpp
2525
)
26-
endif(CLR_CMAKE_TARGET_LINUX)
26+
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_HAIKU)
2727

2828
if(CLR_CMAKE_TARGET_OSX)
2929
list(APPEND DBGUTIL_SOURCES

src/coreclr/dlls/mscordac/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ else(CLR_CMAKE_HOST_WIN32)
3131
# Add dependency on export file
3232
add_custom_target(mscordaccore_exports DEPENDS ${EXPORTS_FILE})
3333

34-
if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
34+
if(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
3535
generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE})
36-
endif(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
36+
endif(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
3737

3838
if(CORECLR_SET_RPATH AND CLR_CMAKE_HOST_OSX AND CLR_CMAKE_HOST_ARCH_ARM64)
3939
set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
@@ -80,7 +80,7 @@ else(CLR_CMAKE_HOST_WIN32)
8080
list(APPEND CLR_DAC_SOURCES libredefines.S)
8181
endif(CLR_CMAKE_HOST_LINUX)
8282

83-
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
83+
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
8484
# This option is necessary to ensure that the overloaded delete operator defined inside
8585
# of the utilcode will be used instead of the standard library delete operator.
8686
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic")
@@ -93,7 +93,7 @@ else(CLR_CMAKE_HOST_WIN32)
9393
# These options are used to force every object to be included even if it's unused.
9494
set(START_WHOLE_ARCHIVE -Wl,--whole-archive)
9595
set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive)
96-
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
96+
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
9797

9898
set_exports_linker_option(${EXPORTS_FILE})
9999
endif(CLR_CMAKE_HOST_WIN32)

src/coreclr/dlls/mscordbi/CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ else(CLR_CMAKE_HOST_WIN32)
4545
set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/mscordbi.exports)
4646
generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE})
4747

48-
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
48+
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
4949
# This option is necessary to ensure that the overloaded new/delete operators defined inside
5050
# of the utilcode will be used instead of the standard library delete operator.
5151
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic")
52-
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
52+
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
5353

5454
set_exports_linker_option(${EXPORTS_FILE})
5555
endif(CLR_CMAKE_HOST_WIN32)
@@ -101,6 +101,12 @@ elseif(CLR_CMAKE_HOST_UNIX)
101101
mscordaccore
102102
)
103103

104+
if(CLR_CMAKE_HOST_HAIKU)
105+
list(APPEND COREDBI_LIBRARIES
106+
network
107+
)
108+
endif(CLR_CMAKE_HOST_HAIKU)
109+
104110
# Before llvm 16, lld was setting `--undefined-version` by default. The default was
105111
# flipped to `--no-undefined-version` in lld 16, so we will explicitly set it to
106112
# `--undefined-version` for our use-case.

src/coreclr/dlls/mscoree/coreclr/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else(CLR_CMAKE_HOST_WIN32)
3535
set(EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/coreclr.exports)
3636
generate_exports_file(${DEF_SOURCES} ${EXPORTS_FILE})
3737

38-
if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS)
38+
if(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS OR CLR_CMAKE_HOST_HAIKU)
3939
# This option is necessary to ensure that the overloaded delete operator defined inside
4040
# of the utilcode will be used instead of the standard library delete operator.
4141
add_linker_flag("-Wl,-Bsymbolic")
@@ -48,7 +48,7 @@ else(CLR_CMAKE_HOST_WIN32)
4848
# These options are used to force every object to be included even if it's unused.
4949
set(START_WHOLE_ARCHIVE -Wl,--whole-archive)
5050
set(END_WHOLE_ARCHIVE -Wl,--no-whole-archive)
51-
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS)
51+
endif(CLR_CMAKE_TARGET_LINUX OR CLR_CMAKE_TARGET_FREEBSD OR CLR_CMAKE_TARGET_NETBSD OR CLR_CMAKE_TARGET_SUNOS OR CLR_CMAKE_HOST_HAIKU)
5252

5353
if(CLR_CMAKE_TARGET_OSX)
5454
# These options are used to force every object to be included even if it's unused.
@@ -147,6 +147,10 @@ elseif(CLR_CMAKE_TARGET_SUNOS)
147147
list(APPEND CORECLR_LIBRARIES
148148
socket
149149
)
150+
elseif(CLR_CMAKE_TARGET_HAIKU)
151+
list(APPEND CORECLR_LIBRARIES
152+
network
153+
)
150154
endif(CLR_CMAKE_TARGET_LINUX)
151155

152156
if(FEATURE_PERFTRACING)

src/coreclr/ilasm/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ if(CLR_CMAKE_HOST_UNIX)
5454
set_source_files_properties( prebuilt/asmparse.cpp PROPERTIES COMPILE_FLAGS "-O0" )
5555
endif(CLR_CMAKE_HOST_UNIX)
5656

57-
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
57+
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
5858
# This option is necessary to ensure that the overloaded delete operator defined inside
5959
# of the utilcode will be used instead of the standard library delete operator.
6060
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic")
@@ -63,7 +63,7 @@ if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CL
6363
# ensure proper resolving of circular references between a subset of the libraries.
6464
set(START_LIBRARY_GROUP -Wl,--start-group)
6565
set(END_LIBRARY_GROUP -Wl,--end-group)
66-
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
66+
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
6767

6868
add_executable_clr(ilasm
6969
${ILASM_SOURCES}

src/coreclr/ildasm/exe/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ if (CLR_CMAKE_TARGET_WIN32)
4747
list(APPEND ILDASM_SOURCES ${ILDASM_HEADERS})
4848
endif(CLR_CMAKE_TARGET_WIN32)
4949

50-
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
50+
if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
5151
# This option is necessary to ensure that the overloaded delete operator defined inside
5252
# of the utilcode will be used instead of the standard library delete operator.
5353
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Xlinker -Bsymbolic")
@@ -56,7 +56,7 @@ if(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CL
5656
# ensure proper resolving of circular references between a subset of the libraries.
5757
set(START_LIBRARY_GROUP -Wl,--start-group)
5858
set(END_LIBRARY_GROUP -Wl,--end-group)
59-
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS)
59+
endif(CLR_CMAKE_HOST_LINUX OR CLR_CMAKE_HOST_FREEBSD OR CLR_CMAKE_HOST_NETBSD OR CLR_CMAKE_HOST_SUNOS OR CLR_CMAKE_HOST_HAIKU)
6060

6161
add_executable_clr(ildasm
6262
${ILDASM_SOURCES}

src/coreclr/nativeaot/Runtime/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ else()
149149
# Compile unwinding only for the current compilation target architecture
150150
add_definitions(-D_LIBUNWIND_IS_NATIVE_ONLY)
151151

152+
if(CLR_CMAKE_TARGET_HAIKU)
153+
add_definitions(-DPT_GNU_EH_FRAME=PT_EH_FRAME)
154+
endif()
155+
152156
list(APPEND COMMON_RUNTIME_SOURCES
153157
unix/PalRedhawkUnix.cpp
154158
unix/PalCreateDump.cpp

0 commit comments

Comments
 (0)