]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- up to 8.5.0 (final gcc 8 release, branch diff is empty now) GCC_8
authorJakub Bogusz <qboosh@pld-linux.org>
Tue, 15 Feb 2022 17:51:41 +0000 (18:51 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Tue, 15 Feb 2022 17:51:41 +0000 (18:51 +0100)
- added ada-99264 patch (fixes build with glibc 2.34+)
- added sanitizer-100379 patch (fix for cyclades driver removal from Linux 5.12)

branch.sh
gcc-ada-99264.patch [new file with mode: 0644]
gcc-sanitizer-100379.patch [new file with mode: 0644]
gcc.spec

index 473fa56b18e7c832d448990173da898019aab2d9..fc3587e933baf16e6bac4ec8d30218932a240d25 100755 (executable)
--- a/branch.sh
+++ b/branch.sh
@@ -2,7 +2,7 @@
 set -e
 url=git://gcc.gnu.org/git/gcc.git
 package=gcc
-tag=releases/gcc-8.4.0
+tag=releases/gcc-8.5.0
 branch=releases/gcc-8
 out=$package-branch.diff
 repo=$package.git
diff --git a/gcc-ada-99264.patch b/gcc-ada-99264.patch
new file mode 100644 (file)
index 0000000..df7a104
--- /dev/null
@@ -0,0 +1,39 @@
+2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+  PR ada/99264
+  * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
+  MINSIGSTKSZ and bump size to 32KB.
+  * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
+
+diff --git a/gcc/ada/init.c b/gcc/ada/init.c
+index e76aa79c5a8..3ceb1a31b02 100644
+--- a/gcc/ada/init.c
++++ b/gcc/ada/init.c
+@@ -579,12 +579,8 @@ __gnat_error_handler (int sig, siginfo_t *si ATTRIBUTE_UNUSED, void *ucontext)
+ #ifndef __ia64__
+ #define HAVE_GNAT_ALTERNATE_STACK 1
+-/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.
+-   It must be larger than MINSIGSTKSZ and hopefully near 2 * SIGSTKSZ.  */
+-# if 16 * 1024 < MINSIGSTKSZ
+-#  error "__gnat_alternate_stack too small"
+-# endif
+-char __gnat_alternate_stack[16 * 1024];
++/* This must be in keeping with System.OS_Interface.Alternate_Stack_Size.  */
++char __gnat_alternate_stack[32 * 1024];
+ #endif
+ #ifdef __XENO__
+diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
+index f7af00bf5e2..2272f83d68d 100644
+--- a/gcc/ada/libgnarl/s-osinte__linux.ads
++++ b/gcc/ada/libgnarl/s-osinte__linux.ads
+@@ -328,7 +328,7 @@ package System.OS_Interface is
+       oss : access stack_t) return int;
+    pragma Import (C, sigaltstack, "sigaltstack");
+-   Alternate_Stack_Size : constant := 16 * 1024;
++   Alternate_Stack_Size : constant := 32 * 1024;
+    --  This must be in keeping with init.c:__gnat_alternate_stack
+    Alternate_Stack : aliased char_array (1 .. Alternate_Stack_Size);
diff --git a/gcc-sanitizer-100379.patch b/gcc-sanitizer-100379.patch
new file mode 100644 (file)
index 0000000..3411983
--- /dev/null
@@ -0,0 +1,121 @@
+From 2b40941d23b1570cdd90083b58fa0f66aa58c86e Mon Sep 17 00:00:00 2001
+From: Tamar Christina <tamar.christina@arm.com>
+Date: Fri, 21 May 2021 12:16:56 +0100
+Subject: [PATCH] libsanitizer: Remove cyclades from libsanitizer
+
+The Linux kernel has removed the interface to cyclades from
+the latest kernel headers[1] due to them being orphaned for the
+past 13 years.
+
+libsanitizer uses this header when compiling against glibc, but
+glibcs itself doesn't seem to have any references to cyclades.
+
+Further more it seems that the driver is broken in the kernel and
+the firmware doesn't seem to be available anymore.
+
+As such since this is breaking the build of libsanitizer (and so the
+GCC bootstrap[2]) I propose to remove this.
+
+[1] https://lkml.org/lkml/2021/3/2/153
+[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100379
+
+libsanitizer/ChangeLog:
+
+       PR sanitizer/100379
+       * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry-pick
+       llvm-project revision f7c5351552387bd43f6ca3631016d7f0dfe0f135.
+       * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
+       * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
+---
+ .../sanitizer_common_interceptors_ioctl.inc           |  9 ---------
+ .../sanitizer_platform_limits_posix.cc                | 11 -----------
+ .../sanitizer_platform_limits_posix.h                 | 10 ----------
+ 3 files changed, 30 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+index 5408ea17c59..7a9cd3f5968 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+@@ -365,15 +365,6 @@ static void ioctl_table_fill() {
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+-  _(CYGETDEFTHRESH, WRITE, sizeof(int));
+-  _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+-  _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
+-  _(CYGETTHRESH, WRITE, sizeof(int));
+-  _(CYGETTIMEOUT, WRITE, sizeof(int));
+-  _(CYSETDEFTHRESH, NONE, 0);
+-  _(CYSETDEFTIMEOUT, NONE, 0);
+-  _(CYSETTHRESH, NONE, 0);
+-  _(CYSETTIMEOUT, NONE, 0);
+   _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
+   _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
+   _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+index d823a12190c..e8fce8a0287 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t;
+ # include <sys/procfs.h>
+ #endif
+ #include <sys/user.h>
+-#include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+ #include <linux/lp.h>
+@@ -466,7 +465,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
+-  unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
+ #if EV_VERSION > (0x010000)
+   unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
+ #else
+@@ -833,15 +831,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+-  unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
+-  unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
+-  unsigned IOCTL_CYGETMON = CYGETMON;
+-  unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
+-  unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
+-  unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
+-  unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
+-  unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
+-  unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
+   unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
+   unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
+   unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+index 6a673a7c995..f921bf2b5b5 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -1040,7 +1040,6 @@ struct __sanitizer_cookie_io_functions_t {
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+   extern unsigned struct_ax25_parms_struct_sz;
+-  extern unsigned struct_cyclades_monitor_sz;
+   extern unsigned struct_input_keymap_entry_sz;
+   extern unsigned struct_ipx_config_data_sz;
+   extern unsigned struct_kbdiacrs_sz;
+@@ -1385,15 +1384,6 @@ struct __sanitizer_cookie_io_functions_t {
+ #endif  // SANITIZER_LINUX || SANITIZER_FREEBSD
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+-  extern unsigned IOCTL_CYGETDEFTHRESH;
+-  extern unsigned IOCTL_CYGETDEFTIMEOUT;
+-  extern unsigned IOCTL_CYGETMON;
+-  extern unsigned IOCTL_CYGETTHRESH;
+-  extern unsigned IOCTL_CYGETTIMEOUT;
+-  extern unsigned IOCTL_CYSETDEFTHRESH;
+-  extern unsigned IOCTL_CYSETDEFTIMEOUT;
+-  extern unsigned IOCTL_CYSETTHRESH;
+-  extern unsigned IOCTL_CYSETTIMEOUT;
+   extern unsigned IOCTL_EQL_EMANCIPATE;
+   extern unsigned IOCTL_EQL_ENSLAVE;
+   extern unsigned IOCTL_EQL_GETMASTRCFG;
+-- 
+2.27.0
+
index fd66dbc2af433458879a523ea8bdc16ba2944db7..71560ba6d106d051786afd6c6d9ed8e2cce87b30 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -93,7 +93,7 @@
 # Stable is: any major_ver and minor_ver >= 1.0
 # For PLD we usually use gcc when minor_ver >= 2.0 (first bugfix release or later)
 %define                major_ver       8
-%define                minor_ver       4.0
+%define                minor_ver       5.0
 
 Summary:       GNU Compiler Collection: the C compiler and shared files
 Summary(es.UTF-8):     Colección de compiladores GNU: el compilador C y ficheros compartidos
@@ -106,19 +106,20 @@ Epoch:            6
 License:       GPL v3+
 Group:         Development/Languages
 Source0:       https://ftp.gnu.org/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: bb815a8e3b7be43c4a26fa89dbbd9795
+# Source0-md5: 0c1f625768840187ef3b10adebe8e3b0
 Source1:       %{name}-optimize-la.pl
 # check libffi version with libffi/configure.ac
 Source3:       libffi.pc.in
 Source4:       branch.sh
 # use branch.sh to update gcc-branch.diff
-Patch100:      %{name}-branch.diff
-# Patch100-md5:        f13ade4c91d6a65bcccb315d67054d91
+#Patch100:     %{name}-branch.diff
+## Patch100-md5:       d41d8cd98f00b204e9800998ecf8427e
 Patch0:                %{name}-info.patch
+Patch1:                %{name}-ada-99264.patch
 Patch2:                %{name}-nodebug.patch
 Patch3:                %{name}-ada-link.patch
 Patch4:                %{name}-ada-x32.patch
-
+Patch5:                %{name}-sanitizer-100379.patch
 Patch10:       %{name}-moresparcs.patch
 Patch11:       %{name}-install-libffi.patch
 URL:           http://gcc.gnu.org/
@@ -176,6 +177,7 @@ BuildRequires:      mpfr-devel >= 2.4.2
 BuildRequires: python-devel
 BuildRequires: rpm-pythonprov
 %endif
+BuildRequires: rpm-build >= 4.6
 BuildRequires: rpmbuild(macros) >= 1.752
 BuildRequires: tar >= 1:1.22
 BuildRequires: texinfo >= 4.7
@@ -940,7 +942,7 @@ Summary:    C++ standard library API documentation
 Summary(pl.UTF-8):     Dokumentacja API biblioteki standardowej C++
 License:       FDL v1.3 (mainly), GPL v3+ (doxygen generated parts)
 Group:         Documentation
-%{?noarchpackage}
+BuildArch:     noarch
 
 %description -n libstdc++-apidocs
 API and internal documentation for C++ standard library.
@@ -2664,11 +2666,13 @@ Extensions dla języka C.
 
 %prep
 %setup -q
-%patch100 -p1
+#patch100 -p1
 %patch0 -p1
+%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
 
 %patch10 -p1
 %if %{with gcc_libffi}
This page took 0.165645 seconds and 4 git commands to generate.