gnat*: fixup build with glibc-2.34

This commit is contained in:
Vladimír Čunát 2022-04-04 18:57:06 +02:00
parent c6476294e1
commit f91a565fe3
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
3 changed files with 36 additions and 0 deletions

View file

@ -74,6 +74,7 @@ let majorVersion = "6";
] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langAda ../gnat-cflags.patch
++ optional langAda ./gnat-glibc234.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch

View file

@ -0,0 +1,30 @@
Fix build with glibc 2.34. Adapted from:
https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -579,12 +579,8 @@
#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__
--- a/gcc/ada/s-osinte-linux.ads
+++ b/gcc/ada/s-osinte-linux.ads
@@ -328,7 +328,7 @@
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);

View file

@ -83,6 +83,11 @@ let majorVersion = "9";
sha256 = ""; # TODO: uncomment and check hash when available.
}) */
++ optional langAda ../gnat-cflags.patch
++ optional langAda (fetchpatch {
name = "gnat-glibc-234.diff";
url = "https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103.diff";
sha256 = "eS4B7vJasnv2N+5v5yB8/iDpKPX8CJDAy2xabWWj+aU=";
})
++ optional langD ../libphobos.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch