From 6e4093c32e0f508180d66d086351920fef39708e Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Wed, 10 Aug 2022 12:52:57 +0300 Subject: [PATCH] Fix glibc 2.36 compile & update ISL 0.18 config scripts The same changes as for GCC 11 build. Signed-off-by: David Abdurachmanov --- 0001-Fix-for-glibc-2.36.patch | 61 +++++++++++++++++++++++++++++++++++ gcc.spec | 19 ++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-for-glibc-2.36.patch diff --git a/0001-Fix-for-glibc-2.36.patch b/0001-Fix-for-glibc-2.36.patch new file mode 100644 index 0000000..a6eb498 --- /dev/null +++ b/0001-Fix-for-glibc-2.36.patch @@ -0,0 +1,61 @@ +From 45d05567b776686843da39bde28b8adf0e14a2fa Mon Sep 17 00:00:00 2001 +From: David Abdurachmanov +Date: Sun, 31 Jul 2022 08:00:50 +0300 +Subject: [PATCH] Fix for glibc 2.36 + +See: +https://github.com/llvm/llvm-project/commit/9cf13067cb5088626ba7ee1ec4c42ec59c7995a0 +https://github.com/gcc-mirror/gcc/commit/f35d65517a59565758107c5b1a51a5fa382f8d1a + +Signed-off-by: David Abdurachmanov +--- + libgo/sysinfo.c | 3 --- + .../sanitizer_platform_limits_posix.cpp | 10 ++++++---- + 2 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c +index 8ce061e2f..336a59837 100644 +--- a/libgo/sysinfo.c ++++ b/libgo/sysinfo.c +@@ -158,9 +158,6 @@ + #if defined(HAVE_LINUX_ETHER_H) + #include + #endif +-#if defined(HAVE_LINUX_FS_H) +-#include +-#endif + #if defined(HAVE_LINUX_REBOOT_H) + #include + #endif +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index 025e575b5..5743516c0 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -72,7 +72,9 @@ + #include + #include + #include ++#if SANITIZER_ANDROID + #include ++#endif + #include + #include + #include +@@ -828,10 +830,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT; + unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT; + #endif +- unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS; +- unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION; +- unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS; +- unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION; ++ unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long); ++ unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long); ++ unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long); ++ unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long); + unsigned IOCTL_GIO_CMAP = GIO_CMAP; + unsigned IOCTL_GIO_FONT = GIO_FONT; + unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP; +-- +2.35.1 + diff --git a/gcc.spec b/gcc.spec index ce9cae6..0deb0a1 100644 --- a/gcc.spec +++ b/gcc.spec @@ -125,7 +125,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}%{?dist}.1 +Release: %{gcc_release}.0.riscv64%{?dist}.1 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -283,6 +283,8 @@ Patch101: gcc12-fortran-flogical-as-integer.patch Patch102: gcc12-fortran-fdec-override-kind.patch Patch103: gcc12-fortran-fdec-non-logical-if.patch +Patch200: 0001-Fix-for-glibc-2.36.patch + # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. %ifnarch %{arm} @@ -814,6 +816,10 @@ so that there cannot be any synchronization problems. %patch103 -p1 -b .fortran-fdec-non-logical-if~ %endif +%ifarch riscv64 +%patch200 -p1 -b .fix-glibc236~ +%endif + %ifarch %{arm} rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go %endif @@ -925,6 +931,13 @@ ISL_FLAG_PIC=-fPIC ISL_FLAG_PIC=-fpic %endif cd isl-build + +%ifarch riscv64 +# Update config.{sub,guess} scripts for riscv64 (the original ones are too old) +cp -f -v /usr/lib/rpm/redhat/config.guess ../../isl-%{isl_version}/config.guess +cp -f -v /usr/lib/rpm/redhat/config.sub ../../isl-%{isl_version}/config.sub +%endif + sed -i 's|libisl|libgcc12privateisl|g' \ ../../isl-%{isl_version}/Makefile.{am,in} ../../isl-%{isl_version}/configure \ @@ -3217,6 +3230,10 @@ end %endif %changelog +* Wed Aug 10 2022 David Abdurachmanov - 12.1.1-3.1.0.riscv64 +- Update config.{sub,guess} scripts for ISL 0.18 on riscv64 +- Fix build for glibc 2.36 + * Thu Jul 21 2022 Fedora Release Engineering - 12.1.1-3.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild