Fix build with newer versions of clang
Related: RHBZ#2131326
This commit is contained in:
parent
0cda533602
commit
7ce09fe0d5
@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
Name: dotnet6.0
|
Name: dotnet6.0
|
||||||
Version: %{sdk_rpm_version}
|
Version: %{sdk_rpm_version}
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: .NET Runtime and SDK
|
Summary: .NET Runtime and SDK
|
||||||
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
|
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
|
||||||
URL: https://github.com/dotnet/
|
URL: https://github.com/dotnet/
|
||||||
@ -88,6 +88,10 @@ Patch100: runtime-arm64-lld-fix.patch
|
|||||||
Patch101: runtime-mono-remove-ilstrip.patch
|
Patch101: runtime-mono-remove-ilstrip.patch
|
||||||
# https://github.com/dotnet/runtime/pull/66594
|
# https://github.com/dotnet/runtime/pull/66594
|
||||||
Patch102: runtime-66594-s390x-debuginfo.patch
|
Patch102: runtime-66594-s390x-debuginfo.patch
|
||||||
|
# https://github.com/dotnet/runtime/pull/73065
|
||||||
|
Patch103: runtime-73065-clang15-support.patch
|
||||||
|
# https://github.com/dotnet/runtime/pull/60675 and https://github.com/dotnet/runtime/pull/77505
|
||||||
|
Patch104: runtime-60675-strerror.patch
|
||||||
|
|
||||||
# Disable apphost, needed for s390x
|
# Disable apphost, needed for s390x
|
||||||
Patch500: fsharp-no-apphost.patch
|
Patch500: fsharp-no-apphost.patch
|
||||||
@ -382,6 +386,8 @@ pushd src/runtime
|
|||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
|
%patch103 -p1
|
||||||
|
%patch104 -p1
|
||||||
popd
|
popd
|
||||||
|
|
||||||
pushd src/fsharp
|
pushd src/fsharp
|
||||||
@ -618,6 +624,10 @@ rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Nov 08 2022 Omair Majid <omajid@redhat.com> - 6.0.110-2
|
||||||
|
- Fix build with newer versions of clang
|
||||||
|
- Related: RHBZ#2131326
|
||||||
|
|
||||||
* Fri Oct 28 2022 Omair Majid <omajid@redhat.com> - 6.0.110-1
|
* Fri Oct 28 2022 Omair Majid <omajid@redhat.com> - 6.0.110-1
|
||||||
- Update to .NET SDK 6.0.110 and Runtime 6.0.10
|
- Update to .NET SDK 6.0.110 and Runtime 6.0.10
|
||||||
- Resolves: RHBZ#2131326
|
- Resolves: RHBZ#2131326
|
||||||
|
176
runtime-60675-strerror.patch
Normal file
176
runtime-60675-strerror.patch
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
This is a subset of the full upsteram patch
|
||||||
|
|
||||||
|
More at https://github.com/dotnet/runtime/pull/77505
|
||||||
|
|
||||||
|
From 577a70afa472a2b7aa8e05947e185d920f42b23d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adeel Mujahid <3840695+am11@users.noreply.github.com>
|
||||||
|
Date: Tue, 2 Nov 2021 17:47:37 +0200
|
||||||
|
Subject: [PATCH] Fix gcc warnings during mono linux-x64 build (#60675)
|
||||||
|
|
||||||
|
* Fix gcc warnings during mono linux-x64 build
|
||||||
|
|
||||||
|
main with Debug configuration: 822 warnings - http://sprunge.us/2GzrDE
|
||||||
|
PR with Debug configuration: 3 warnings related to deprecated sys/sysctl.h includes - http://sprunge.us/JuyA3K
|
||||||
|
|
||||||
|
after fixing Debug warnings, there were 13 additional warnings in Release configuration:
|
||||||
|
http://sprunge.us/PJCivP
|
||||||
|
|
||||||
|
PR with Release configuration: (same) 3 warnings - http://sprunge.us/NwKHNE
|
||||||
|
|
||||||
|
* Address CR feedback
|
||||||
|
---
|
||||||
|
src/mono/cmake/config.h.in | 7 +--
|
||||||
|
src/mono/cmake/configure.cmake | 40 +++++++++++---
|
||||||
|
src/mono/cmake/defines-todo.cmake | 1 -
|
||||||
|
src/mono/mono/eglib/gstr.c | 14 ++---
|
||||||
|
src/mono/mono/utils/mono-proclib.c | 28 +++++-----
|
||||||
|
5 files changed, 173 insertions(+), 192 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/mono/cmake/config.h.in b/src/mono/cmake/config.h.in
|
||||||
|
index 48a82ec6db8c4..648ad60dd0494 100644
|
||||||
|
--- a/src/mono/cmake/config.h.in
|
||||||
|
+++ b/src/mono/cmake/config.h.in
|
||||||
|
@@ -510,14 +510,11 @@
|
||||||
|
/* Define to 1 if you have the `strerror_r' function. */
|
||||||
|
#cmakedefine HAVE_STRERROR_R 1
|
||||||
|
|
||||||
|
-/* Define to 1 if strerror_r returns char *. */
|
||||||
|
-#cmakedefine STRERROR_R_CHAR_P 1
|
||||||
|
-
|
||||||
|
/* Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY */
|
||||||
|
#cmakedefine GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY 1
|
||||||
|
|
||||||
|
/* GLIBC has CPU_COUNT macro in sched.h */
|
||||||
|
-#cmakedefine GLIBC_HAS_CPU_COUNT 1
|
||||||
|
+#cmakedefine HAVE_GNU_CPU_COUNT
|
||||||
|
|
||||||
|
/* Have large file support */
|
||||||
|
#cmakedefine HAVE_LARGE_FILE_SUPPORT 1
|
||||||
|
@@ -712,6 +709,8 @@
|
||||||
|
/* The size of `size_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_SIZE_T @SIZEOF_SIZE_T@
|
||||||
|
|
||||||
|
+#cmakedefine01 HAVE_GNU_STRERROR_R
|
||||||
|
+
|
||||||
|
/* Define to 1 if the system has the type `struct sockaddr'. */
|
||||||
|
#cmakedefine HAVE_STRUCT_SOCKADDR 1
|
||||||
|
|
||||||
|
diff --git a/src/mono/cmake/configure.cmake b/src/mono/cmake/configure.cmake
|
||||||
|
index 7bee1c6b98553..e8e9fb9e67d79 100644
|
||||||
|
--- a/src/mono/cmake/configure.cmake
|
||||||
|
+++ b/src/mono/cmake/configure.cmake
|
||||||
|
@@ -135,6 +135,37 @@
|
||||||
|
check_type_size("long long" SIZEOF_LONG_LONG)
|
||||||
|
check_type_size("size_t" SIZEOF_SIZE_T)
|
||||||
|
|
||||||
|
+if (HOST_LINUX OR HOST_ANDROID)
|
||||||
|
+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+check_c_source_compiles(
|
||||||
|
+ "
|
||||||
|
+ #include <string.h>
|
||||||
|
+ int main(void)
|
||||||
|
+ {
|
||||||
|
+ char buffer[1];
|
||||||
|
+ char c = *strerror_r(0, buffer, 0);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ "
|
||||||
|
+ HAVE_GNU_STRERROR_R)
|
||||||
|
+
|
||||||
|
+check_c_source_compiles(
|
||||||
|
+ "
|
||||||
|
+ #include <sched.h>
|
||||||
|
+ int main(void)
|
||||||
|
+ {
|
||||||
|
+ CPU_COUNT((void *) 0);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ "
|
||||||
|
+ HAVE_GNU_CPU_COUNT)
|
||||||
|
+
|
||||||
|
+if (HOST_LINUX OR HOST_ANDROID)
|
||||||
|
+ set(CMAKE_REQUIRED_DEFINITIONS)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# ICONV
|
||||||
|
set(ICONV_LIB)
|
||||||
|
find_library(LIBICONV_FOUND iconv)
|
||||||
|
@@ -142,14 +173,6 @@
|
||||||
|
set(ICONV_LIB "iconv")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c
|
||||||
|
- "#include <sched.h>\n"
|
||||||
|
- "void main () { CPU_COUNT((void *) 0); }\n"
|
||||||
|
-)
|
||||||
|
-try_compile(GLIBC_HAS_CPU_COUNT ${CMAKE_BINARY_DIR}/CMakeTmp SOURCES "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c"
|
||||||
|
- COMPILE_DEFINITIONS "-D_GNU_SOURCE")
|
||||||
|
-
|
||||||
|
-
|
||||||
|
if(HOST_WIN32)
|
||||||
|
# checking for this doesn't work for some reason, hardcode result
|
||||||
|
set(HAVE_WINTERNL_H 1)
|
||||||
|
diff --git a/src/mono/cmake/defines-todo.cmake b/src/mono/cmake/defines-todo.cmake
|
||||||
|
index d45098d4eea4f..8d2828d53e9ba 100644
|
||||||
|
--- a/src/mono/cmake/defines-todo.cmake
|
||||||
|
+++ b/src/mono/cmake/defines-todo.cmake
|
||||||
|
@@ -4,7 +4,6 @@
|
||||||
|
|
||||||
|
#option (MAJOR_IN_MKDEV "Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.")
|
||||||
|
#option (MAJOR_IN_SYSMACROS "Define to 1 if `major', `minor', and `makedev' are declared in <sysmacros.h>.")
|
||||||
|
-#option (STRERROR_R_CHAR_P "Define to 1 if strerror_r returns char *.")
|
||||||
|
#option (HAVE_LIBICONV "Define to 1 if you have the `iconv' library (-liconv).")
|
||||||
|
#option (ANDROID_UNIFIED_HEADERS "Whether Android NDK unified headers are used")
|
||||||
|
#option (MONO_DL_NEED_USCORE "Does dlsym require leading underscore.")
|
||||||
|
diff --git a/src/mono/mono/eglib/gstr.c b/src/mono/mono/eglib/gstr.c
|
||||||
|
index c549b241894f1..cbf63d8f02b97 100644
|
||||||
|
--- a/src/mono/mono/eglib/gstr.c
|
||||||
|
+++ b/src/mono/mono/eglib/gstr.c
|
||||||
|
@@ -249,7 +249,11 @@ g_strerror (gint errnum)
|
||||||
|
size_t buff_len = sizeof (tmp_buff);
|
||||||
|
buff [0] = 0;
|
||||||
|
|
||||||
|
-#ifndef STRERROR_R_CHAR_P
|
||||||
|
+#if HAVE_GNU_STRERROR_R
|
||||||
|
+ buff = strerror_r (errnum, buff, buff_len);
|
||||||
|
+ if (!error_messages [errnum])
|
||||||
|
+ error_messages [errnum] = g_strdup (buff);
|
||||||
|
+#else /* HAVE_GNU_STRERROR_R */
|
||||||
|
int r;
|
||||||
|
while ((r = strerror_r (errnum, buff, buff_len - 1))) {
|
||||||
|
if (r != ERANGE) {
|
||||||
|
@@ -261,17 +265,13 @@ g_strerror (gint errnum)
|
||||||
|
else
|
||||||
|
buff = g_realloc (buff, buff_len * 2);
|
||||||
|
buff_len *= 2;
|
||||||
|
- //Spec is not clean on whether size argument includes space for null terminator or not
|
||||||
|
+ //Spec is not clean on whether size argument includes space for null terminator or not
|
||||||
|
}
|
||||||
|
if (!error_messages [errnum])
|
||||||
|
error_messages [errnum] = g_strdup (buff);
|
||||||
|
if (buff != tmp_buff)
|
||||||
|
g_free (buff);
|
||||||
|
-#else /* STRERROR_R_CHAR_P */
|
||||||
|
- buff = strerror_r (errnum, buff, buff_len);
|
||||||
|
- if (!error_messages [errnum])
|
||||||
|
- error_messages [errnum] = g_strdup (buff);
|
||||||
|
-#endif /* STRERROR_R_CHAR_P */
|
||||||
|
+#endif /* HAVE_GNU_STRERROR_R */
|
||||||
|
|
||||||
|
#else /* HAVE_STRERROR_R */
|
||||||
|
if (!error_messages [errnum])
|
||||||
|
diff --git a/src/mono/mono/utils/mono-proclib.c b/src/mono/mono/utils/mono-proclib.c
|
||||||
|
index 1fe731d9fe0f5..9a33fc2924e6b 100644
|
||||||
|
--- a/src/mono/mono/utils/mono-proclib.c
|
||||||
|
+++ b/src/mono/mono/utils/mono-proclib.c
|
||||||
|
@@ -81,7 +81,7 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SCHED_GETAFFINITY
|
||||||
|
-# ifndef GLIBC_HAS_CPU_COUNT
|
||||||
|
+# ifndef HAVE_GNU_CPU_COUNT
|
||||||
|
static int
|
||||||
|
CPU_COUNT(cpu_set_t *set)
|
||||||
|
{
|
58
runtime-73065-clang15-support.patch
Normal file
58
runtime-73065-clang15-support.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From 992cf8c97cc71d4ca9a0a11e6604a6716ed4cefc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adeel Mujahid <3840695+am11@users.noreply.github.com>
|
||||||
|
Date: Fri, 29 Jul 2022 19:34:00 +0300
|
||||||
|
Subject: [PATCH] Define __cpuid{ex} only when there's no builtin one (#73065)
|
||||||
|
|
||||||
|
* Define __cpuid{ex} only when there's no builtin one
|
||||||
|
|
||||||
|
Fix clang 15 RC1 build: `error: definition of builtin function '__cpuid'`
|
||||||
|
|
||||||
|
* Add clang-15 autodetection
|
||||||
|
---
|
||||||
|
eng/common/native/find-native-compiler.sh | 2 +-
|
||||||
|
src/coreclr/vm/amd64/unixstubs.cpp | 4 ++++
|
||||||
|
3 files changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/eng/common/native/find-native-compiler.sh b/eng/common/native/find-native-compiler.sh
|
||||||
|
index 4b99a9cad3b77..41a26d802a93f 100644
|
||||||
|
--- a/eng/common/native/find-native-compiler.sh
|
||||||
|
+++ b/eng/common/native/find-native-compiler.sh
|
||||||
|
@@ -55,7 +55,7 @@
|
||||||
|
# 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=( 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
|
||||||
|
+ if [[ "$compiler" == "clang" ]]; then versions=( 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=( 9 8 7 6 5 4.9 ); fi
|
||||||
|
|
||||||
|
for version in "${versions[@]}"; do
|
||||||
|
diff --git a/src/coreclr/vm/amd64/unixstubs.cpp b/src/coreclr/vm/amd64/unixstubs.cpp
|
||||||
|
index 517eea98f6b6a..09d2568a9273b 100644
|
||||||
|
--- a/src/coreclr/vm/amd64/unixstubs.cpp
|
||||||
|
+++ b/src/coreclr/vm/amd64/unixstubs.cpp
|
||||||
|
@@ -10,6 +10,7 @@ extern "C"
|
||||||
|
PORTABILITY_ASSERT("Implement for PAL");
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if !__has_builtin(__cpuid)
|
||||||
|
void __cpuid(int cpuInfo[4], int function_id)
|
||||||
|
{
|
||||||
|
// Based on the Clang implementation provided in cpuid.h:
|
||||||
|
@@ -20,7 +21,9 @@ extern "C"
|
||||||
|
: "0"(function_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
+#if !__has_builtin(__cpuidex)
|
||||||
|
void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id)
|
||||||
|
{
|
||||||
|
// Based on the Clang implementation provided in cpuid.h:
|
||||||
|
@@ -31,6 +34,7 @@ extern "C"
|
||||||
|
: "0"(function_id), "2"(subFunction_id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
DWORD xmmYmmStateSupport()
|
||||||
|
{
|
Loading…
Reference in New Issue
Block a user