diff --git a/community/dotnet6-stage0/APKBUILD b/community/dotnet6-stage0/APKBUILD index ad2372e..21f8c50 100644 --- a/community/dotnet6-stage0/APKBUILD +++ b/community/dotnet6-stage0/APKBUILD @@ -2,13 +2,13 @@ # Contributor: Antoine Martin (ayakael) pkgname=dotnet6-stage0 -pkgver=6.0.116 +pkgver=6.0.121 pkgrel=0 [ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" # Tag of tarball generator. -_gittag=v$pkgver +_gittag=v$pkgver-source-build # Versions of prebuilt artifacts and bootstrap tar _artifactsver=6.0.112 @@ -16,9 +16,6 @@ _bootstrapver="6.0.116" _bootstraprel=0 _installerver=${_gittag/v} -# Version of packages that aren't defined in git-info -_iltoolsver=6.0.12-servicing.22579.1 - # Patches to be used. String before '_' refers to repo to patch # Look for patch notes within each patch for what they fix / where they come from # build_* patches applies directly to $builddir @@ -28,8 +25,6 @@ _patches=" runtime_76500-mono-musl-support.patch runtime_76500-properly-set-toolchain-for-crossbuilding-on-alpine.patch runtime_82269-mono-thread-coop-undefine-fortify-source.patch - runtime_84442-support-adding-rids-with-dash-in-base-part.patch - runtime_84443-suppress-clang-16-warnings.patch runtime_remove-usage-of-off64-t.patch " _extra_nupkgs=" @@ -50,7 +45,7 @@ subpackages=" dotnet$_pkgver_name-stage0-bootstrap " source=" - https://lab.ilot.io/dotnet/installer/-/releases/$_gittag/downloads/tarball/dotnet-$_gittag.tar.xz + https://lab.ilot.io/mirrors/installer/-/releases/$_gittag/downloads/tarball/dotnet-$_gittag.tar.xz dotnet-sdk-$_bootstrapver-linux-musl-x64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-x64.tar.gz dotnet-sdk-$_bootstrapver-linux-musl-arm64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm64.tar.gz dotnet-sdk-$_bootstrapver-linux-musl-arm.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm.tar.gz @@ -209,10 +204,33 @@ prepare() { tmp=$(mktemp) jq ".sdk.version = \"$_bootstrapver\"" "$builddir"/src/$i/global.json > $tmp && mv $tmp "$builddir"/src/$i/global.json done + + # extracting PackageVersions.props as some version information is there + tar -xzf "$srcdir"/Private.SourceBuilt.Artifacts.*.noextract PackageVersions.props +} + +_init() { + export _InitializeDotNetCli=$_cli_root + export DOTNET_INSTALL_DIR=$_cli_root + export PATH="$_cli_root:$PATH" + export NUGET_PACKAGES=$_nugetdir + export DotNetBuildFromSource=true + export DOTNET_CLI_TELEMETRY_OPTOUT=true + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true + export SHELL=/bin/bash + export EXTRA_CPPFLAGS="${CPPFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_CXXFLAGS="${CXXFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_CFLAGS="${CFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_LDFLAGS="$LDFLAGS" + unset CXXFLAGS CFLAGS LDFLAGS CPPFLAGS + + ulimit -n 4096 + + "$_cli_root"/dotnet build-server shutdown } _runtime() { - "$_cli_root"/dotnet build-server shutdown + _init if [ -z "${_runtimever+x}" ]; then local _runtimever=$(grep OutputPackageVersion "$builddir"/git-info/runtime.props | sed -E 's|||g' | tr -d ' ') fi @@ -254,7 +272,7 @@ _runtime() { } _roslyn() { - "$_cli_root"/dotnet build-server shutdown + _init if [ -z "${_roslynver+x}" ]; then local _roslynver=$(grep OutputPackageVersion "$builddir"/git-info/roslyn.props | sed -E 's|||g' | tr -d ' ') fi @@ -279,7 +297,7 @@ _roslyn() { } _sdk() { - "$_cli_root"/dotnet build-server shutdown + _init if [ -z "${_sdkver+x}" ]; then local _sdkver=$(grep OutputPackageVersion "$builddir"/git-info/sdk.props | sed -E 's|||g' | tr -d ' ') fi @@ -308,7 +326,7 @@ _sdk() { } _aspnetcore() { - "$_cli_root"/dotnet build-server shutdown + _init if [ -z "${_aspnetver+x}" ]; then local _aspnetver=$(grep OutputPackageVersion "$builddir"/git-info/aspnetcore.props | sed -E 's|||g' | tr -d ' ') fi @@ -346,7 +364,7 @@ _aspnetcore() { } _installer() { - "$_cli_root"/dotnet build-server shutdown + _init msg "[$(date)] Building installer version $_installerver" cd "$builddir"/src/installer @@ -379,22 +397,6 @@ _installer() { } build() { - export _InitializeDotNetCli=$_cli_root - export DOTNET_INSTALL_DIR=$_cli_root - export PATH="$_cli_root:$PATH" - export NUGET_PACKAGES=$_nugetdir - export DotNetBuildFromSource=true - export DOTNET_CLI_TELEMETRY_OPTOUT=true - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true - export SHELL=/bin/bash - export EXTRA_CPPFLAGS="${CPPFLAGS/--sysroot=$CBUILDROOT}" - export EXTRA_CXXFLAGS="${CXXFLAGS/--sysroot=$CBUILDROOT}" - export EXTRA_CFLAGS="${CFLAGS/--sysroot=$CBUILDROOT}" - export EXTRA_LDFLAGS="$LDFLAGS" - unset CXXFLAGS CFLAGS LDFLAGS CPPFLAGS - - ulimit -n 4096 - _runtime _roslyn _sdk @@ -414,6 +416,8 @@ bootstrap() { provides="dotnet$_pkgver_name-bootstrap" provider_priority=$_pkgver_prior + local _iltoolsver=$(grep \||g' | tr -d ' ') + install -dm 755 \ "$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver/docs \ "$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver/comp \ @@ -496,7 +500,7 @@ artifacts() { } sha512sums=" -8c03186212149ba38df996068d511c29bd9be31e40fd1d7d21fc15fd2c0f6272479e8145ccb9544bb48c2c90bc8001ba05af1a7d92a60018ba7a983bc6187731 dotnet-v6.0.116.tar.xz +f038ff9707a102cc07032a32547dd4b0bae9bbe357cfafd769030ad625fbcd86bb9396db543309e625bad2af1f0e183f0288d6bd3ef47f803d203a11e03524e2 dotnet-v6.0.121-source-build.tar.xz 3b6f37aee5698d7ef794c74a6d914b914f0220346a2f37e66e4a29db63e284747d02856ea6cd461c76f2a9e18ab047f40cc739e7f8227d69ea7316bce2020201 dotnet-sdk-6.0.116-linux-musl-x64.noextract dd3ec888e0d6644f2d6ef17ca7ce540d62226bb459cc0bbfe938229e757a8f4a10fc314a078f9898143c2271b8a70de77ffbdaecfa8c4c87921421e729f53a64 dotnet-sdk-6.0.116-linux-musl-arm64.noextract a35480c68e9f156a33225e80dc166db3a2fbe860f0f35497357fa6b5594df16dad9cbc8b5a7569ee4b6262070e100bf3c9d57721c68bac5bfc83abf61e4ace5d dotnet-sdk-6.0.116-linux-musl-arm.noextract @@ -512,7 +516,5 @@ cf40e37b4adfc61e24e3b48a397b4d813726d190f271869d946035279bf662a694a0fca448f5ae06 e67e0114bd324dae65eb19f6fa8c74414bee77cd30e299931b0d82b4ca1b6b6f88358a0c47ffb180f46c5cb28f61f79bb4a59d43c1ae3011bfe491e757de293a runtime_76500-mono-musl-support.patch 6c614a48565c0e10f8714244e538bb453f7914ff58d01e9fd1255ad24698be916fd9e0a438c732737576fde6c0d68bec8f8958ce1b1b11b70c4a3b8663bdb8e2 runtime_76500-properly-set-toolchain-for-crossbuilding-on-alpine.patch 827e899a83103f666dc3d57c1ec695bebc659a574f4a1d754da0cafe8c18d7db79c3950267e905fa078f94612ee1101fbddd0ea62b3c08947d8bcd7d9c8de41c runtime_82269-mono-thread-coop-undefine-fortify-source.patch -bfa4fca9987b4a1369e59abb3f872841ae994d47e5f873db43d9a0563f5e720cd85714e73aada912997da55077262e01f1ae120f8d32043d661ba89d12384caa runtime_84442-support-adding-rids-with-dash-in-base-part.patch -153255e80c2d2a131c2985041132417573ee98fa4b90153a1417080dbfb4d9bd03db9d5e241e54f5e664c4136eaf7facca9d4dad7ededf99a8f9068f26283fdb runtime_84443-suppress-clang-16-warnings.patch d972e77df27748a80c9b23eca12f9fbd78be97f9034b79cc5703ba58eb6750171d9a115314300f883620ccbca89c65a99ca7a45d54a421b028b590190b4bed80 runtime_remove-usage-of-off64-t.patch " diff --git a/community/dotnet6-stage0/runtime_84442-support-adding-rids-with-dash-in-base-part.patch b/community/dotnet6-stage0/runtime_84442-support-adding-rids-with-dash-in-base-part.patch deleted file mode 100644 index 8a36483..0000000 --- a/community/dotnet6-stage0/runtime_84442-support-adding-rids-with-dash-in-base-part.patch +++ /dev/null @@ -1,164 +0,0 @@ -From abc761c2c5694e4029fea1a60dc1934951c66e26 Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/dotnet/runtime/pull/84442 -From: Tom Deseyn -Date: Thu, 6 Apr 2023 13:18:11 +0200 -Subject: [PATCH 1/2] Microsoft.NETCore.Platforms: support adding rids with '-' - in the base part. - -Currently when trying to add a rid like 'linux-musl-x64' -the rid is not understood to be base = 'linux-musl', arch = 'x64'. - -Instead the parser considers a potential optional qualifier. -This causes the rid to be parsed as base = 'linux', arch = 'musl', -and qualifier = 'x64'. - -We know the rids being added won't have a qualifier. If we take -this into account while parsing, we can parse the rid correctly. ---- - .../Microsoft.NETCore.Platforms/src/RID.cs | 11 +++- - .../src/RuntimeGroupCollection.cs | 2 +- - .../tests/RidTests.cs | 50 +++++++++++++------ - 3 files changed, 47 insertions(+), 16 deletions(-) - -diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs -index 6457fd29cadf0..b464d5f0f54e3 100644 ---- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs -+++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RID.cs -@@ -56,7 +56,7 @@ private enum RIDPart : int - Max = Qualifier - } - -- public static RID Parse(string runtimeIdentifier) -+ public static RID Parse(string runtimeIdentifier, bool noQualifier) - { - string[] parts = new string[(int)RIDPart.Max + 1]; - bool omitVersionDelimiter = true; -@@ -90,6 +90,15 @@ public static RID Parse(string runtimeIdentifier) - // version might be omitted - else if (current == ArchitectureDelimiter) - { -+ // The qualifier delimiter and architecture delimiter are the same. -+ // When there is no qualifier, there will be one delimiter past the base part -+ // for the architecture. -+ // So if we see another delimiter later in the string (for the architecture), -+ // extend the base part instead of starting the architecture part. -+ if (noQualifier && runtimeIdentifier.IndexOf(ArchitectureDelimiter, i + 1) != -1) -+ { -+ break; -+ } - // ensure there's no version later in the string - if (runtimeIdentifier.IndexOf(VersionDelimiter, i) != -1) - { -diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -index e069508053105..31009a8d28e5e 100644 ---- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -+++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -@@ -34,7 +34,7 @@ public RuntimeGroupCollection(ICollection runtimeGroups) - /// - public void AddRuntimeIdentifier(string runtimeIdentifier, string parent) - { -- RID rid = RID.Parse(runtimeIdentifier); -+ RID rid = RID.Parse(runtimeIdentifier, noQualifier: true); - - AddRuntimeIdentifier(rid, parent); - } -diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs -index 227bcbdd10d4d..8dee0ebeda17a 100644 ---- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs -+++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/tests/RidTests.cs -@@ -10,35 +10,57 @@ public class RidTests - { - public static IEnumerable ValidRIDData() - { -- yield return new object[] { "win10-x64", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10"), Architecture = "x64" } }; -- yield return new object[] { "win10", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10")} }; -- yield return new object[] { "linux", new RID() { BaseRID = "linux" } }; -- yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" } }; -- yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" } }; -- yield return new object[] { "debian.10-x64", new RID() { BaseRID = "debian", Version = new RuntimeVersion("10"), Architecture = "x64" } }; -- yield return new object[] { "linuxmint.19.2-x64", new RID() { BaseRID = "linuxmint", Version = new RuntimeVersion("19.2"), Architecture = "x64" } }; -- yield return new object[] { "ubuntu.14.04-x64", new RID() { BaseRID = "ubuntu", Version = new RuntimeVersion("14.04"), Architecture = "x64" } }; -- yield return new object[] { "foo-bar.42-arm", new RID() { BaseRID = "foo-bar", Version = new RuntimeVersion("42"), Architecture = "arm" } }; -- yield return new object[] { "foo-bar-arm", new RID() { BaseRID = "foo", Architecture = "bar", Qualifier = "arm" } }; // demonstrates ambiguity, avoid using `-` in base -- yield return new object[] { "linux-musl-x64", new RID() { BaseRID = "linux", Architecture = "musl", Qualifier = "x64" } }; // yes, we already have ambiguous RIDs -+ yield return new object[] { "win10-x64", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10"), Architecture = "x64" }, null }; -+ yield return new object[] { "win10", new RID() { BaseRID = "win", OmitVersionDelimiter = true, Version = new RuntimeVersion("10")}, null }; -+ yield return new object[] { "linux", new RID() { BaseRID = "linux" }, null }; -+ yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" }, null }; -+ yield return new object[] { "linux-x64", new RID() { BaseRID = "linux", Architecture = "x64" }, null }; -+ yield return new object[] { "debian.10-x64", new RID() { BaseRID = "debian", Version = new RuntimeVersion("10"), Architecture = "x64" }, null }; -+ yield return new object[] { "linuxmint.19.2-x64", new RID() { BaseRID = "linuxmint", Version = new RuntimeVersion("19.2"), Architecture = "x64" }, null }; -+ yield return new object[] { "ubuntu.14.04-x64", new RID() { BaseRID = "ubuntu", Version = new RuntimeVersion("14.04"), Architecture = "x64" }, null }; -+ yield return new object[] { "foo-bar.42-arm", new RID() { BaseRID = "foo-bar", Version = new RuntimeVersion("42"), Architecture = "arm" }, null }; -+ yield return new object[] { "foo-bar-arm", new RID() { BaseRID = "foo", Architecture = "bar", Qualifier = "arm" }, // demonstrates ambiguity, avoid using `-` in base -+ new RID() { BaseRID = "foo-bar", Architecture = "arm" } }; -+ yield return new object[] { "linux-musl-x64", new RID() { BaseRID = "linux", Architecture = "musl", Qualifier = "x64" }, // yes, we already have ambiguous RIDs -+ new RID() { BaseRID = "linux-musl", Architecture = "x64" } }; - } - - [Theory] - [MemberData(nameof(ValidRIDData))] -- internal void ParseCorrectly(string input, RID expected) -+ internal void ParseCorrectly(string input, RID expected, RID? expectedNoQualifier) - { -- RID actual = RID.Parse(input); -+ _ = expectedNoQualifier; // unused -+ -+ RID actual = RID.Parse(input, noQualifier: false); - - Assert.Equal(expected, actual); - } - - [Theory] - [MemberData(nameof(ValidRIDData))] -- internal void ToStringAsExpected(string expected, RID rid) -+ internal void ParseCorrectlyNoQualifier(string input, RID expected, RID? expectedNoQualifier) -+ { -+ expectedNoQualifier ??= expected; -+ -+ RID actual = RID.Parse(input, noQualifier: true); -+ -+ Assert.Equal(expectedNoQualifier, actual); -+ } -+ -+ [Theory] -+ [MemberData(nameof(ValidRIDData))] -+ internal void ToStringAsExpected(string expected, RID rid, RID? expectedNoQualifierRid) - { - string actual = rid.ToString(); - - Assert.Equal(expected, actual); -+ -+ if (expectedNoQualifierRid is not null) -+ { -+ actual = expectedNoQualifierRid.ToString(); -+ -+ Assert.Equal(expected, actual); -+ } - } - } - } - -From f70da467ca94291039e0ea5b0723cb9db5e090e7 Mon Sep 17 00:00:00 2001 -From: Tom Deseyn -Date: Thu, 6 Apr 2023 18:14:31 +0200 -Subject: [PATCH 2/2] Update - src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs - -Co-authored-by: Eric StJohn ---- - .../Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -index 31009a8d28e5e..ec4762d71424c 100644 ---- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -+++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/RuntimeGroupCollection.cs -@@ -34,6 +34,7 @@ public RuntimeGroupCollection(ICollection runtimeGroups) - /// - public void AddRuntimeIdentifier(string runtimeIdentifier, string parent) - { -+ // don't parse qualifier since we don't use them and they are ambiguous with `-` in base RID - RID rid = RID.Parse(runtimeIdentifier, noQualifier: true); - - AddRuntimeIdentifier(rid, parent); diff --git a/community/dotnet6-stage0/runtime_84443-suppress-clang-16-warnings.patch b/community/dotnet6-stage0/runtime_84443-suppress-clang-16-warnings.patch deleted file mode 100644 index 6fbdda2..0000000 --- a/community/dotnet6-stage0/runtime_84443-suppress-clang-16-warnings.patch +++ /dev/null @@ -1,217 +0,0 @@ -From da120986f17d4016b44fdc91741ae1d999083eeb Mon Sep 17 00:00:00 2001 -Patch-Source: https://github.com/dotnet/runtime/pull/84443 -From: Antoine Martin -Date: Thu, 6 Apr 2023 15:46:31 -0400 -Subject: [PATCH 1/2] Suppress clang-16 warnings (#81573) - ---- - eng/native/configurecompiler.cmake | 9 +++++++++ - eng/native/init-compiler.sh | 4 ++-- - src/coreclr/dlls/mscordbi/CMakeLists.txt | 5 +---- - src/coreclr/dlls/mscordbi/mscordbi.cpp | 15 +++++++++++++++ - src/libraries/Native/Unix/CMakeLists.txt | 9 +++++++++ - src/native/corehost/apphost/static/CMakeLists.txt | 4 ++-- - .../apphost/static/singlefilehost_OSXexports.src | 11 ----------- - .../apphost/static/singlefilehost_unixexports.src | 4 ---- - 8 files changed, 38 insertions(+), 23 deletions(-) - delete mode 100644 src/native/corehost/apphost/static/singlefilehost_OSXexports.src - -diff --git a/src/runtime/eng/native/configurecompiler.cmake b/src/runtime/eng/native/configurecompiler.cmake -index f3526deb19fa0..1a43b710c618b 100644 ---- a/src/runtime/eng/native/configurecompiler.cmake -+++ b/src/runtime/eng/native/configurecompiler.cmake -@@ -367,6 +367,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-unknown-pragmas) - add_compile_options(-Wno-uninitialized) -diff --git a/src/runtime/eng/native/init-compiler.sh b/src/runtime/eng/native/init-compiler.sh -index 567d18da4747a..e215bd75ff158 100755 ---- a/src/runtime/eng/native/init-compiler.sh -+++ b/src/runtime/eng/native/init-compiler.sh -@@ -46,8 +46,8 @@ if [[ -z "$CLR_CC" ]]; then - # Set default versions - if [[ -z "$majorVersion" ]]; then - # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. -- if [[ "$compiler" == "clang" ]]; then versions=( 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) -- elif [[ "$compiler" == "gcc" ]]; then versions=( 11 10 9 8 7 6 5 4.9 ); fi -+ if [[ "$compiler" == "clang" ]]; then versions=( 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) -+ elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi - - for version in "${versions[@]}"; do - parts=(${version//./ }) -diff --git a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -index c7a23c9923fe1..4a03a788a71a5 100644 ---- a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -+++ b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -@@ -99,10 +99,7 @@ elseif(CLR_CMAKE_HOST_UNIX) - mscordaccore - ) - -- # 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. -- target_link_libraries(mscordbi ${COREDBI_LIBRARIES} ${COREDBI_LIBRARIES}) -+ target_link_libraries(mscordbi ${COREDBI_LIBRARIES}) - - add_dependencies(mscordbi mscordaccore) - -diff --git a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -index afd2cfe800225..489c552a0bd3e 100644 ---- a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -+++ b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -@@ -26,3 +26,18 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) - // Defer to the main debugging code. - return DbgDllMain(hInstance, dwReason, lpReserved); - } -+ -+#if defined(HOST_LINUX) && defined(TARGET_LINUX) -+PALIMPORT HINSTANCE PALAPI DAC_PAL_RegisterModule(IN LPCSTR lpLibFileName); -+PALIMPORT VOID PALAPI DAC_PAL_UnregisterModule(IN HINSTANCE hInstance); -+ -+HINSTANCE PALAPI PAL_RegisterModule(IN LPCSTR lpLibFileName) -+{ -+ return DAC_PAL_RegisterModule(lpLibFileName); -+} -+ -+VOID PALAPI PAL_UnregisterModule(IN HINSTANCE hInstance) -+{ -+ DAC_PAL_UnregisterModule(hInstance); -+} -+#endif -diff --git a/src/runtime/src/libraries/Native/Unix/CMakeLists.txt b/src/runtime/src/libraries/Native/Unix/CMakeLists.txt -index 6931f62d24c87..e9ebefcf8243a 100644 ---- a/src/runtime/src/libraries/Native/Unix/CMakeLists.txt -+++ b/src/runtime/src/libraries/Native/Unix/CMakeLists.txt -@@ -51,6 +51,15 @@ if(CMAKE_C_COMPILER_ID STREQUAL Clang) - add_compile_options(-Wthread-safety) - add_compile_options(-Wno-thread-safety-analysis) - 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) - elseif(CMAKE_C_COMPILER_ID STREQUAL GNU) - add_compile_options(-Wno-stringop-truncation) - endif() -diff --git a/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt b/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt -index a00c79139863f..6d491c086da98 100644 ---- a/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt -+++ b/src/runtime/src/native/corehost/apphost/static/CMakeLists.txt -@@ -73,8 +73,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() -diff --git a/src/runtime/src/native/corehost/apphost/static/singlefilehost_OSXexports.src b/src/runtime/src/native/corehost/apphost/static/singlefilehost_OSXexports.src -deleted file mode 100644 -index 18d5697e84580..0000000000000 ---- a/src/runtime/src/native/corehost/apphost/static/singlefilehost_OSXexports.src -+++ /dev/null -@@ -1,11 +0,0 @@ --; Licensed to the .NET Foundation under one or more agreements. --; The .NET Foundation licenses this file to you under the MIT license. -- --; needed by SOS --DotNetRuntimeInfo -- --; DAC table export --g_dacTable -- --; Used by profilers --MetaDataGetDispenser -diff --git a/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src b/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src -index 1f9c517821855..18d5697e84580 100644 ---- a/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src -+++ b/src/runtime/src/native/corehost/apphost/static/singlefilehost_unixexports.src -@@ -9,7 +9,3 @@ g_dacTable - - ; Used by profilers - MetaDataGetDispenser -- --; FreeBSD needs to reexport these --__progname --environ - -From a6d9fbff551de1164ec9cc14bdd48f2ffad77d81 Mon Sep 17 00:00:00 2001 -From: Antoine Martin -Date: Thu, 6 Apr 2023 16:39:27 -0400 -Subject: [PATCH 2/2] Fix DBI loading problem on Linux (#82461) - ---- - src/coreclr/dlls/mscordbi/CMakeLists.txt | 16 +++++++++++++++- - src/coreclr/dlls/mscordbi/mscordbi.cpp | 15 --------------- - 2 files changed, 15 insertions(+), 16 deletions(-) - -diff --git a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -index 4a03a788a71a5..b7618b324c260 100644 ---- a/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -+++ b/src/runtime/src/coreclr/dlls/mscordbi/CMakeLists.txt -@@ -99,7 +99,21 @@ elseif(CLR_CMAKE_HOST_UNIX) - mscordaccore - ) - -- target_link_libraries(mscordbi ${COREDBI_LIBRARIES}) -+ # 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. -+ target_link_libraries(mscordbi ${COREDBI_LIBRARIES} ${COREDBI_LIBRARIES}) - - add_dependencies(mscordbi mscordaccore) - -diff --git a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -index 489c552a0bd3e..afd2cfe800225 100644 ---- a/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -+++ b/src/runtime/src/coreclr/dlls/mscordbi/mscordbi.cpp -@@ -26,18 +26,3 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) - // Defer to the main debugging code. - return DbgDllMain(hInstance, dwReason, lpReserved); - } -- --#if defined(HOST_LINUX) && defined(TARGET_LINUX) --PALIMPORT HINSTANCE PALAPI DAC_PAL_RegisterModule(IN LPCSTR lpLibFileName); --PALIMPORT VOID PALAPI DAC_PAL_UnregisterModule(IN HINSTANCE hInstance); -- --HINSTANCE PALAPI PAL_RegisterModule(IN LPCSTR lpLibFileName) --{ -- return DAC_PAL_RegisterModule(lpLibFileName); --} -- --VOID PALAPI PAL_UnregisterModule(IN HINSTANCE hInstance) --{ -- DAC_PAL_UnregisterModule(hInstance); --} --#endif