summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/gnat-gpl/files')
-rw-r--r--dev-lang/gnat-gpl/files/gcc-configure-LANG.patch64
-rw-r--r--dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch87
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch66
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch220
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch57
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch113
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch98
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch19
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch20
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch19
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch31
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch18
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch32
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch59
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch42
-rw-r--r--dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch95
16 files changed, 95 insertions, 945 deletions
diff --git a/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch b/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch
deleted file mode 100644
index d1b1b0353662..000000000000
--- a/dev-lang/gnat-gpl/files/gcc-configure-LANG.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in
-option parsing, it may break.
-
-http://bugs.gentoo.org/103483
-
---- configure
-+++ configure
-@@ -54,6 +54,19 @@
- infodir='${prefix}/info'
- mandir='${prefix}/man'
-
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-+ eval $as_var=C; export $as_var
-+ else
-+ unset $as_var
-+ fi
-+done
-+
- # Initialize some other variables.
- subdirs=
- MFLAGS= MAKEFLAGS=
-@@ -452,16 +463,6 @@
- esac
- done
-
--# NLS nuisances.
--# Only set these to C if already set. These must not be set unconditionally
--# because not all systems understand e.g. LANG=C (notably SCO).
--# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
--# Non-C LC_CTYPE values break the ctype check.
--if test "${LANG+set}" = set; then LANG=C; export LANG; fi
--if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
--if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
--if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
--
- # confdefs.h avoids OS command line length limits that DEFS can exceed.
- rm -rf conftest* confdefs.h
- # AIX cpp loses on an empty file, so make sure it contains at least a newline.
-@@ -1850,6 +1850,19 @@
- # Compiler output produced by configure, useful for debugging
- # configure, is in ./config.log if it exists.
-
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval \$as_var=C; export \$as_var) 2>&1`"); then
-+ eval \$as_var=C; export \$as_var
-+ else
-+ unset \$as_var
-+ fi
-+done
-+
- ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
- for ac_option
- do
diff --git a/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch b/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch
deleted file mode 100644
index a58926836e4e..000000000000
--- a/dev-lang/gnat-gpl/files/gcc-spec-env-r1.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-2013-08-22 Magnus Granberg <zorry@gentoo.org>
-
- * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
- and move the process of the user specifed specs.
-
- This allows us to easily control pie/ssp defaults with gcc-config profiles.
- Original patch by Rob Holland
- Extended to support multiple entries separated by ':' by Kevin F. Quinn
- Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
- Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
-
---- gcc-4.8-20130210/gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100
-+++ gcc-4.8-20130210-work/gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200
-@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
- do_option_spec (option_default_specs[i].name,
- option_default_specs[i].spec);
-
-+#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
-+ /* Add specs listed in GCC_SPECS. Note; in the process of separating
-+ * each spec listed, the string is overwritten at token boundaries
-+ * (':') with '\0', an effect of strtok_r().
-+ */
-+ specs_file = getenv ("GCC_SPECS");
-+ if (specs_file && (strlen(specs_file) > 0))
-+ {
-+ char *spec, *saveptr;
-+ for (spec=strtok_r(specs_file,":",&saveptr);
-+ spec!=NULL;
-+ spec=strtok_r(NULL,":",&saveptr))
-+ {
-+ struct user_specs *user = (struct user_specs *)
-+ xmalloc (sizeof (struct user_specs));
-+ user->next = (struct user_specs *) 0;
-+ user->filename = spec;
-+ if (user_specs_tail)
-+ user_specs_tail->next = user;
-+ else
-+ user_specs_head = user;
-+ user_specs_tail = user;
-+ }
-+ }
-+#endif
-+ /* Process any user specified specs in the order given on the command
-+ * line. */
-+ for (uptr = user_specs_head; uptr; uptr = uptr->next)
-+ {
-+ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
-+ R_OK, true);
-+ read_specs (filename ? filename : uptr->filename, false, true);
-+ }
-+ /* Process any user self specs. */
-+ {
-+ struct spec_list *sl;
-+ for (sl = specs; sl; sl = sl->next)
-+ if (sl->name_len == sizeof "self_spec" - 1
-+ && !strcmp (sl->name, "self_spec"))
-+ do_self_spec (*sl->ptr_spec);
-+ }
-+
- /* Process DRIVER_SELF_SPECS, adding any new options to the end
- of the command line. */
-
-@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
- PREFIX_PRIORITY_LAST, 0, 1);
- }
-
-- /* Process any user specified specs in the order given on the command
-- line. */
-- for (uptr = user_specs_head; uptr; uptr = uptr->next)
-- {
-- char *filename = find_a_file (&startfile_prefixes, uptr->filename,
-- R_OK, true);
-- read_specs (filename ? filename : uptr->filename, false, true);
-- }
--
-- /* Process any user self specs. */
-- {
-- struct spec_list *sl;
-- for (sl = specs; sl; sl = sl->next)
-- if (sl->name_len == sizeof "self_spec" - 1
-- && !strcmp (sl->name, "self_spec"))
-- do_self_spec (*sl->ptr_spec);
-- }
--
- if (compare_debug)
- {
- enum save_temps save;
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch
deleted file mode 100644
index aed1ad0e90be..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-bootstrap.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 41a4aa66eac45c8862a79351647ec06dd03bd1f5 Mon Sep 17 00:00:00 2001
-From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 13 Dec 2014 11:24:37 +0000
-Subject: [PATCH] PR bootstrap/64023 * Makefile.tpl
- (EXTRA_TARGET_FLAGS): Set STAGE1_LDFLAGS to POSTSTAGE1_LDFLAGS and
- STAGE1_LIBS to POSTSTAGE1_LIBS. Add -B to libstdc++-v3/src/.libs and
- libstdc++-v3/libsupc++/.libs to CXX. * Makefile.in: Regenerated.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218705 138bc75d-0d04-0410-961f-82ee72b054a4
----
- ChangeLog | 9 +++++++++
- Makefile.in | 6 +++++-
- Makefile.tpl | 6 +++++-
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index ba5ae4c2ecb..8ffc313f157 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -835,7 +835,9 @@ EXTRA_TARGET_FLAGS = \
- 'AS=$(COMPILER_AS_FOR_TARGET)' \
- 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
-- 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-+ 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-+ -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-+ $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
- 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
- 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-@@ -853,6 +855,8 @@ EXTRA_TARGET_FLAGS = \
- 'WINDRES=$$(WINDRES_FOR_TARGET)' \
- 'WINDMC=$$(WINDMC_FOR_TARGET)' \
- 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
-+ 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
-+ 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
- "TFLAGS=$$TFLAGS"
-
- TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
-diff --git a/Makefile.tpl b/Makefile.tpl
-index dcbc6b1b143..bb8227eaafa 100644
---- a/Makefile.tpl
-+++ b/Makefile.tpl
-@@ -641,7 +641,9 @@ EXTRA_TARGET_FLAGS = \
- 'AS=$(COMPILER_AS_FOR_TARGET)' \
- 'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
-- 'CXX=$$(CXX_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-+ 'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-+ -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-+ $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
- 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
- 'GCJ=$$(GCJ_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
-@@ -659,6 +661,8 @@ EXTRA_TARGET_FLAGS = \
- 'WINDRES=$$(WINDRES_FOR_TARGET)' \
- 'WINDMC=$$(WINDMC_FOR_TARGET)' \
- 'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
-+ 'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
-+ 'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
- "TFLAGS=$$TFLAGS"
-
- TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
---
-2.15.0
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch
deleted file mode 100644
index 44503ae6b72e..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-finalization.patch
+++ /dev/null
@@ -1,220 +0,0 @@
---- a/gcc/ada/exp_attr.adb 2018-11-16 20:23:21.775906196 +0100
-+++ b/gcc/ada/exp_attr.adb 2018-11-16 20:25:57.418211404 +0100
-@@ -3121,6 +3121,121 @@
- Analyze_And_Resolve (N, Standard_String);
- end External_Tag;
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size => Finalization_Size : declare
-+ function Calculate_Header_Size return Node_Id;
-+ -- Generate a runtime call to calculate the size of the hidden header
-+ -- along with any added padding which would precede a heap-allocated
-+ -- object of the prefix type.
-+
-+ ---------------------------
-+ -- Calculate_Header_Size --
-+ ---------------------------
-+
-+ function Calculate_Header_Size return Node_Id is
-+ begin
-+ -- Generate:
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment))
-+
-+ return
-+ Convert_To (Universal_Integer,
-+ Make_Function_Call (Loc,
-+ Name =>
-+ New_Occurrence_Of (RTE (RE_Header_Size_With_Padding), Loc),
-+
-+ Parameter_Associations => New_List (
-+ Make_Attribute_Reference (Loc,
-+ Prefix => New_Copy_Tree (Pref),
-+ Attribute_Name => Name_Alignment))));
-+ end Calculate_Header_Size;
-+
-+ -- Local variables
-+
-+ Size : Entity_Id;
-+
-+ -- Start of Finalization_Size
-+
-+ begin
-+ -- An object of a class-wide type first requires a runtime check to
-+ -- determine whether it is actually controlled or not. Depending on
-+ -- the outcome of this check, the Finalization_Size of the object
-+ -- may be zero or some positive value.
-+ --
-+ -- In this scenario, Pref'Finalization_Size is expanded into
-+ --
-+ -- Size : Integer := 0;
-+ --
-+ -- if Needs_Finalization (Pref'Tag) then
-+ -- Size :=
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment));
-+ -- end if;
-+ --
-+ -- and the attribute reference is replaced with a reference to Size.
-+
-+ if Is_Class_Wide_Type (Ptyp) then
-+ Size := Make_Temporary (Loc, 'S');
-+
-+ Insert_Actions (N, New_List (
-+
-+ -- Generate:
-+ -- Size : Integer := 0;
-+
-+ Make_Object_Declaration (Loc,
-+ Defining_Identifier => Size,
-+ Object_Definition =>
-+ New_Occurrence_Of (Standard_Integer, Loc),
-+ Expression => Make_Integer_Literal (Loc, 0)),
-+
-+ -- Generate:
-+ -- if Needs_Finalization (Pref'Tag) then
-+ -- Size :=
-+ -- Universal_Integer
-+ -- (Header_Size_With_Padding (Pref'Alignment));
-+ -- end if;
-+
-+ Make_If_Statement (Loc,
-+ Condition =>
-+ Make_Function_Call (Loc,
-+ Name =>
-+ New_Occurrence_Of (RTE (RE_Needs_Finalization), Loc),
-+
-+ Parameter_Associations => New_List (
-+ Make_Attribute_Reference (Loc,
-+ Prefix => New_Copy_Tree (Pref),
-+ Attribute_Name => Name_Tag))),
-+
-+ Then_Statements => New_List (
-+ Make_Assignment_Statement (Loc,
-+ Name => New_Occurrence_Of (Size, Loc),
-+ Expression => Calculate_Header_Size)))));
-+
-+ Rewrite (N, New_Occurrence_Of (Size, Loc));
-+
-+ -- The prefix is known to be controlled at compile time. Calculate
-+ -- Finalization_Size by calling function Header_Size_With_Padding.
-+
-+ elsif Needs_Finalization (Ptyp) then
-+ Rewrite (N, Calculate_Header_Size);
-+
-+ -- The prefix is not an object with controlled parts, so its
-+ -- Finalization_Size is zero.
-+
-+ else
-+ Rewrite (N, Make_Integer_Literal (Loc, 0));
-+ end if;
-+
-+ -- Due to cases where the entity type of the attribute is already
-+ -- resolved the rewritten N must get re-resolved to its appropriate
-+ -- type.
-+
-+ Analyze_And_Resolve (N, Typ);
-+ end Finalization_Size;
-+
- -----------
- -- First --
- -----------
---- a/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200
---- b/gcc/ada/snames.ads-tmpl 2016-05-16 11:29:28.000000000 +0200
-@@ -884,6 +884,7 @@
- Name_Exponent : constant Name_Id := N + $;
- Name_External_Tag : constant Name_Id := N + $;
- Name_Fast_Math : constant Name_Id := N + $; -- GNAT
-+ Name_Finalization_Size : constant Name_Id := N + $; -- GNAT
- Name_First : constant Name_Id := N + $;
- Name_First_Bit : constant Name_Id := N + $;
- Name_First_Valid : constant Name_Id := N + $; -- Ada 12
-@@ -1523,6 +1524,7 @@
- Attribute_Exponent,
- Attribute_External_Tag,
- Attribute_Fast_Math,
-+ Attribute_Finalization_Size,
- Attribute_First,
- Attribute_First_Bit,
- Attribute_First_Valid,
---- a/gcc/ada/sem_attr.ads 2018-11-16 21:35:46.821279875 +0100
-+++ b/gcc/ada/sem_attr.ads 2018-11-16 21:36:00.028057464 +0100
-@@ -242,6 +242,16 @@
- -- enumeration value. Constraint_Error is raised if no value of the
- -- enumeration type corresponds to the given integer value.
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ Attribute_Finalization_Size => True,
-+ -- For every object or non-class-wide-type, Finalization_Size returns
-+ -- the size of the hidden header used for finalization purposes as if
-+ -- the object or type was allocated on the heap. The size of the header
-+ -- does take into account any extra padding due to alignment issues.
-+
- -----------------
- -- Fixed_Value --
- -----------------
---- a/gcc/ada/sem_attr.adb 2018-11-16 21:35:49.698231429 +0100
-+++ b/gcc/ada/sem_attr.adb 2018-11-16 21:36:00.028057464 +0100
-@@ -3828,6 +3828,42 @@
- Check_Standard_Prefix;
- Rewrite (N, New_Occurrence_Of (Boolean_Literals (Fast_Math), Loc));
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size =>
-+ Check_E0;
-+
-+ -- The prefix denotes an object
-+
-+ if Is_Object_Reference (P) then
-+ Check_Object_Reference (P);
-+
-+ -- The prefix denotes a type
-+
-+ elsif Is_Entity_Name (P) and then Is_Type (Entity (P)) then
-+ Check_Type;
-+ Check_Not_Incomplete_Type;
-+
-+ -- Attribute 'Finalization_Size is not defined for class-wide
-+ -- types because it is not possible to know statically whether
-+ -- a definite type will have controlled components or not.
-+
-+ if Is_Class_Wide_Type (Etype (P)) then
-+ Error_Attr_P
-+ ("prefix of % attribute cannot denote a class-wide type");
-+ end if;
-+
-+ -- The prefix denotes an illegal construct
-+
-+ else
-+ Error_Attr_P
-+ ("prefix of % attribute must be a definite type or an object");
-+ end if;
-+
-+ Set_Etype (N, Universal_Integer);
-+
- -----------
- -- First --
- -----------
-@@ -8264,6 +8300,13 @@
- Fold_Uint (N,
- Eval_Fat.Exponent (P_Base_Type, Expr_Value_R (E1)), Static);
-
-+ -----------------------
-+ -- Finalization_Size --
-+ -----------------------
-+
-+ when Attribute_Finalization_Size =>
-+ null;
-+
- -----------
- -- First --
- -----------
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch
deleted file mode 100644
index 959ed5183124..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-gentoo.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- a/patch/09_all_default-ssp.patch 2017-01-08 16:14:09.377755019 +0100
-+++ b/patch/09_all_default-ssp.patch 2017-01-08 16:15:48.792764201 +0100
-@@ -78,14 +78,14 @@
- optimizing. The default value is 32.
- --- a/gcc/cp/lang-specs.h
- +++ b/gcc/cp/lang-specs.h
--@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. If not see
-+@@ -46,7 +46,7 @@
- %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
- cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
- %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
- - %(cc1_options) %2\
- + %(cc1_options) %(ssp_default) %2\
-- %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
-- %W{o*:--output-pch=%*}}%V}}}}",
-+ %{!fsyntax-only:-o %g.s %{!fdump-ada-spec*:%{!fdump-xref*:%{!o*:--output-pch=%i.gch}\
-+ %W{o*:--output-pch=%*}}}%V}}}}",
- CPLUSPLUS_CPP_SPEC, 0, 0},
- @@ -57,11 +57,11 @@ along with GCC; see the file COPYING3. If not see
- %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\
-@@ -151,14 +151,14 @@
- /* This contains cpp options which are not passed when the preprocessor
- output will be used by another program. */
- @@ -1015,9 +1024,9 @@ static const struct compiler default_compilers[] =
-- %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
-+ %{save-temps*|fdump-scos|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
- %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
- cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
- - %(cc1_options)}\
- + %(cc1_options) %(ssp_default)}\
-- %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
--- cc1 %(cpp_unique_options) %(cc1_options)}}}\
--+ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\
-+ %{!save-temps*:%{!fdump-scos:%{!traditional-cpp:%{!no-integrated-cpp:\
-+- cc1 %(cpp_unique_options) %(cc1_options)}}}}\
-++ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}}\
- %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
- {"-",
- "%{!E:%e-E or -x required when input is from standard input}\
---- a/gcc-4.9-gpl-2016-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-4.9-gpl-2016-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
deleted file mode 100644
index 561c012a23e6..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2016-profile.patch
+++ /dev/null
@@ -1,113 +0,0 @@
---- a/gcc/ada/s-rident.ads 2018-11-18 18:47:39.042412895 +0100
-+++ b/gcc/ada/s-rident.ads 2018-11-18 19:02:31.736559044 +0100
-@@ -378,15 +378,17 @@
- type Profile_Name is
- (No_Profile,
- No_Implementation_Extensions,
-+ Restricted_Tasking,
-+ Restricted,
- Ravenscar,
- GNAT_Extended_Ravenscar,
-- Restricted);
-+ GNAT_Ravenscar_EDF);
- -- Names of recognized profiles. No_Profile is used to indicate that a
- -- restriction came from pragma Restrictions[_Warning], as opposed to
- -- pragma Profile[_Warning].
-
- subtype Profile_Name_Actual is Profile_Name
-- range No_Implementation_Extensions .. Restricted;
-+ range No_Implementation_Extensions .. Profile_Name'Last;
- -- Actual used profile names
-
- type Profile_Data is record
-@@ -456,6 +458,40 @@
- Max_Task_Entries => 0,
- others => 0)),
-
-+ -- Restricted_Tasking Profile
-+
-+ Restricted_Tasking =>
-+
-+ -- Restrictions for Restricted_Tasking profile
-+
-+ (Set =>
-+ (No_Abort_Statements => True,
-+ No_Asynchronous_Control => True,
-+ No_Dynamic_Attachment => True,
-+ No_Dynamic_Priorities => True,
-+ No_Entry_Queue => True,
-+ No_Local_Protected_Objects => True,
-+ No_Protected_Type_Allocators => True,
-+ No_Requeue_Statements => True,
-+ No_Task_Allocators => True,
-+ No_Task_Attributes_Package => True,
-+ No_Task_Hierarchy => True,
-+ No_Terminate_Alternatives => True,
-+ Max_Asynchronous_Select_Nesting => True,
-+ Max_Protected_Entries => True,
-+ Max_Select_Alternatives => True,
-+ Max_Task_Entries => True,
-+ others => False),
-+
-+ -- Value settings for Restricted profile
-+
-+ Value =>
-+ (Max_Asynchronous_Select_Nesting => 0,
-+ Max_Protected_Entries => 1,
-+ Max_Select_Alternatives => 0,
-+ Max_Task_Entries => 0,
-+ others => 0)),
-+
- -- Ravenscar Profile
-
- -- Note: the table entries here only represent the
-@@ -509,6 +545,49 @@
- Max_Task_Entries => 0,
- others => 0)),
-
-+ GNAT_Ravenscar_EDF =>
-+
-+ -- Restrictions for Ravenscar = Restricted profile ..
-+
-+ (Set =>
-+ (No_Abort_Statements => True,
-+ No_Asynchronous_Control => True,
-+ No_Dynamic_Attachment => True,
-+ No_Dynamic_Priorities => True,
-+ No_Entry_Queue => True,
-+ No_Local_Protected_Objects => True,
-+ No_Protected_Type_Allocators => True,
-+ No_Requeue_Statements => True,
-+ No_Task_Allocators => True,
-+ No_Task_Attributes_Package => True,
-+ No_Task_Hierarchy => True,
-+ No_Terminate_Alternatives => True,
-+ Max_Asynchronous_Select_Nesting => True,
-+ Max_Protected_Entries => True,
-+ Max_Select_Alternatives => True,
-+ Max_Task_Entries => True,
-+
-+ -- plus these additional restrictions:
-+
-+ No_Calendar => True,
-+ No_Implicit_Heap_Allocations => True,
-+ No_Local_Timing_Events => True,
-+ No_Relative_Delay => True,
-+ No_Select_Statements => True,
-+ No_Specific_Termination_Handlers => True,
-+ No_Task_Termination => True,
-+ Simple_Barriers => True,
-+ others => False),
-+
-+ -- Value settings for Ravenscar (same as Restricted)
-+
-+ Value =>
-+ (Max_Asynchronous_Select_Nesting => 0,
-+ Max_Protected_Entries => 1,
-+ Max_Select_Alternatives => 0,
-+ Max_Task_Entries => 0,
-+ others => 0)),
-+
- GNAT_Extended_Ravenscar =>
-
- -- Restrictions for GNAT_Extended_Ravenscar =
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch
deleted file mode 100644
index de013cdc0d3a..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/patch/13_all_default-ssp-fix.patch 2017-06-14 11:29:28.997183865 +0200
-+++ b/patch/13_all_default-ssp-fix.patch 2017-06-14 12:24:15.042271863 +0200
-@@ -39,9 +39,9 @@
- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
- %{fsyntax-only:-o %j} %{-param*}\
- + %{nostdlib:-nostdlib}\
-- %{coverage:-fprofile-arcs -ftest-coverage}";
-+ %{coverage:-fprofile-arcs -ftest-coverage}\
-+ %{fdump-scos:-fpreserve-decisions-generic}";
-
-- static const char *asm_options =
- --- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200
- +++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200
- @@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
---- a/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
---- a/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 20:57:02.737224515 +0100
-+++ b/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 21:01:59.431929926 +0100
-@@ -58,7 +58,7 @@
- if (*(unsigned char *)(pc+0) == 0x48
- && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
- {
-- struct ucontext *uc_ = context->cfa;
-+ ucontext_t *uc_ = context->cfa;
- /* The void * cast is necessary to avoid an aliasing warning.
- The aliasing warning is correct, but should not be a problem
- because it does not alias anything. */
-@@ -138,7 +138,7 @@
- siginfo_t *pinfo;
- void *puc;
- siginfo_t info;
-- struct ucontext uc;
-+ ucontext_t uc;
- } *rt_ = context->cfa;
- /* The void * cast is necessary to avoid an aliasing warning.
- The aliasing warning is correct, but should not be a problem
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:30.512328872 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:53.104950070 +0100
-@@ -267,7 +267,7 @@
-
- // Alternate stack for signal handling.
- InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
-- struct sigaltstack handler_stack;
-+ stack_t handler_stack;
- internal_memset(&handler_stack, 0, sizeof(handler_stack));
- handler_stack.ss_sp = handler_stack_memory.data();
- handler_stack.ss_size = kHandlerStackSize;
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:09:04.912731275 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:10:03.150754764 +0100
-@@ -546,8 +546,7 @@
- }
- #endif
-
--uptr internal_sigaltstack(const struct sigaltstack *ss,
-- struct sigaltstack *oss) {
-+uptr internal_sigaltstack(const void *ss, void *oss) {
- return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
- }
-
---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:10.109638062 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:30.991287828 +0100
-@@ -28,8 +28,7 @@
-
- // Syscall wrappers.
- uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
--uptr internal_sigaltstack(const struct sigaltstack* ss,
-- struct sigaltstack* oss);
-+uptr internal_sigaltstack(const void* ss, void* oss);
- uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
- __sanitizer_sigset_t *oldset);
- void internal_sigfillset(__sanitizer_sigset_t *set);
---- a/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:09.626608907 +0100
-+++ b/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:28.825286145 +0100
-@@ -291,7 +291,7 @@
- int ExtractResolvFDs(void *state, int *fds, int nfd) {
- #if SANITIZER_LINUX
- int cnt = 0;
-- __res_state *statp = (__res_state*)state;
-+ struct __res_state *statp = (struct __res_state*)state;
- for (int i = 0; i < MAXNS && cnt < nfd; i++) {
- if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
- fds[cnt++] = statp->_u._ext.nssocks[i];
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch
deleted file mode 100644
index 0550722d170b..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libatomic-Werror.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-libatomic does not respect --disable-werror
-
-https://bugs.gentoo.org/475350
---- a/libatomic/configure.ac
-+++ b/libatomic/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libatomic/configure
-+++ b/libatomic/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch
deleted file mode 100644
index 416808a63b15..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libgomp-Werror.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-libgomp does not respect --disable-werror
-
-https://bugs.gentoo.org/229059
-http://gcc.gnu.org/PR38436
---- a/libgomp/configure.ac
-+++ b/libgomp/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libgomp/configure
-+++ b/libgomp/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch
deleted file mode 100644
index 27181e02cfbd..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-libitm-Werror.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-libitm does not respect --disable-werror
-
-https://bugs.gentoo.org/475350
---- a/libitm/configure.ac
-+++ b/libitm/configure.ac
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
---- a/libitm/configure
-+++ b/libitm/configure
-@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS"
- # Add -Wall -Werror if we are using GCC.
- if test "x$GCC" = "xyes"; then
-- XCFLAGS="$XCFLAGS -Wall -Werror"
-+ XCFLAGS="$XCFLAGS -Wall"
- fi
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch
deleted file mode 100644
index 4c57b814ce57..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:53:11.382114157 +0200
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:57:10.725037767 +0200
-@@ -150,7 +150,6 @@
- # include <sys/procfs.h>
- #endif
- #include <sys/user.h>
--#include <sys/ustat.h>
- #include <linux/cyclades.h>
- #include <linux/if_eql.h>
- #include <linux/if_plip.h>
-@@ -243,7 +242,19 @@
- #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
-
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-- unsigned struct_ustat_sz = sizeof(struct ustat);
-+ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
-+ // has been removed from glibc 2.28.
-+#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
-+ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
-+ || defined(__x86_64__)
-+#define SIZEOF_STRUCT_USTAT 32
-+#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
-+ || defined(__powerpc__) || defined(__s390__) || defined(__sparc__)
-+#define SIZEOF_STRUCT_USTAT 20
-+#else
-+#error Unknown size of struct ustat
-+#endif
-+ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
- unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
- unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
- #endif // SANITIZER_LINUX && !SANITIZER_ANDROID
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch
deleted file mode 100644
index 5d6a38af14e3..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-gentoo.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/gcc-7-gpl-2018-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-7-gpl-2018-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch
deleted file mode 100644
index 80cc074d7f34..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p1.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 54d87ffe4b34052f159ac5b72b250129ce813b2a Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Fri, 14 Feb 2020 12:33:27 +0100
-Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
- bootstrap due to libsanitizer)
-
- Backported from mainline
- 2019-10-22 Tamar Christina <tamar.christina@arm.com>
-
- PR sanitizer/92154
- * sanitizer_common/sanitizer_platform_limits_posix.cc:
- Cherry-pick compiler-rt revision r375220.
----
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-@@ -1147,8 +1147,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
--#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-+#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
-+ !defined(__arm__)
- /* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
-+/* On Arm glibc 2.31 and later provide a different mode field, this field is
-+ never used by libsanitizer so we can simply ignore this assert for all glibc
-+ versions. */
- CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
- #endif
-
---
-2.25.2
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch
deleted file mode 100644
index bdd8dcbe3d02..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2018-libsanitizer-p2.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From dbdf86838aaaef76620c00c53096cfe157d5af6e Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Fri, 14 Feb 2020 12:38:30 +0100
-Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm
- bootstrap due to libsanitizer)
-
- Backported from mainline
- 2019-11-26 Jakub Jelinek <jakub@redhat.com>
-
- PR sanitizer/92154
- * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
- llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
- * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
----
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-@@ -1147,12 +1147,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
--#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
-- !defined(__arm__)
--/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
--/* On Arm glibc 2.31 and later provide a different mode field, this field is
-- never used by libsanitizer so we can simply ignore this assert for all glibc
-- versions. */
-+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
-+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
-+ on many architectures. */
- CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
- #endif
-
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -210,20 +210,13 @@ namespace __sanitizer {
- unsigned long __unused1;
- unsigned long __unused2;
- #elif defined(__sparc__)
--# if defined(__arch64__)
- unsigned mode;
-- unsigned short __pad1;
--# else
-- unsigned short __pad1;
-- unsigned short mode;
- unsigned short __pad2;
--# endif
- unsigned short __seq;
- unsigned long long __unused1;
- unsigned long long __unused2;
- #else
-- unsigned short mode;
-- unsigned short __pad1;
-+ unsigned int mode;
- unsigned short __seq;
- unsigned short __pad2;
- #if defined(__x86_64__) && !defined(_LP64)
---
-2.25.2
-
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch
deleted file mode 100644
index 36befaafc0f8..000000000000
--- a/dev-lang/gnat-gpl/files/gnat-gpl-2019-gentoo.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:40.556754095 +0200
-+++ b/patch/15_all_disable-systemtap-switch.patch 2019-05-28 09:25:00.731426775 +0200
-@@ -42,8 +42,8 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
---#line 18451 "configure"
--+#line 18453 "configure"
-+-#line 18497 "configure"
-++#line 18499 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -51,8 +51,8 @@
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
---#line 18557 "configure"
--+#line 18559 "configure"
-+-#line 18603 "configure"
-++#line 18605 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
---- a/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
-+++ b/gcc-8-2019-20190517-18C94-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
-@@ -2229,14 +2229,11 @@
- for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
- if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
- End_Of_Prefix := J - 1;
-+ Start_Of_Suffix := J + Prog'Length;
- exit;
- end if;
- end loop;
-
-- if End_Of_Prefix > 1 then
-- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
-- end if;
--
- -- Create the new program name
-
- return new String'
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch
new file mode 100644
index 000000000000..681fd47262da
--- /dev/null
+++ b/dev-lang/gnat-gpl/files/gnat-gpl-2021-gentoo.patch
@@ -0,0 +1,95 @@
+--- a/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100
++++ b/gcc-10-2021-20210519-19A74-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
+@@ -2229,14 +2229,11 @@
+ for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
+ if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
+ End_Of_Prefix := J - 1;
++ Start_Of_Suffix := J + Prog'Length;
+ exit;
+ end if;
+ end loop;
+
+- if End_Of_Prefix > 1 then
+- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
+- end if;
+-
+ -- Create the new program name
+
+ return new String'
+--- a/patch/04_all_nossp-on-nostdlib.patch 2021-05-10 21:37:05.733985417 +0200
++++ b/patch/04_all_nossp-on-nostdlib.patch 2021-05-10 21:38:02.925029050 +0200
+@@ -4,7 +4,7 @@
+ --- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200
+ +++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100
+ @@ -857,6 +857,12 @@ proper position among the other output f
+- #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
++ #define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
+ #endif
+
+ +#ifdef ENABLE_DEFAULT_SSP
+@@ -19,9 +19,9 @@
+ @@ -1131,7 +1148,7 @@ static const char *cc1_options =
+ %{-version:--version}\
+ %{-help=*:--help=%*}\
+- %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
++ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
+ - %{fsyntax-only:-o %j} %{-param*}\
+ + %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
+ %{coverage:-fprofile-arcs -ftest-coverage}\
++ %{fdump-scos:-fpreserve-decisions-generic}\
+ %{fprofile-arcs|fprofile-generate*|coverage:\
+- %{!fprofile-update=singel:\
+--- a/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:09.663425422 +0100
++++ b/gcc-10-2021-20210519-19A74-src/config/cet.m4 2022-01-01 11:18:14.809345911 +0100
+@@ -62,7 +62,6 @@
+ i[[34567]]86-*-linux* | x86_64-*-linux*)
+ may_have_cet=yes
+ save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -fcf-protection"
+ case "$enable_cet" in
+ auto)
+ # Check if target supports multi-byte NOPs
+--- a/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:45:34.658271627 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libiberty/configure 2024-03-02 19:54:48.013538533 +0100
+@@ -6709,6 +6709,9 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+ else
++ cat >>confdefs.h <<_ACEOF
++extern void exit(int status);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ find_stack_direction ()
+@@ -7539,6 +7542,11 @@
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_strncmp_works=yes
+ else
++ cat >>confdefs.h <<_ACEOF
++ extern long unsigned int strlen(const char *s);
++ extern char *strcpy(char *dst, const char *src);
++ extern int strncmp(const char *s1, const char *s2, long unsigned int n);
++_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+--- a/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:41:56.810707374 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libsanitizer/configure 2024-03-02 20:43:00.189080219 +0100
+@@ -16073,6 +16073,7 @@
+ sanitizer_supported=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+ #include <sys/syscall.h>
++#include <unistd.h>
+ int
+ main ()
+--- a/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:57:47.282939696 +0100
++++ b/gcc-10-2021-20210519-19A74-src/libgfortran/configure 2024-03-02 21:58:34.702446345 +0100
+@@ -26391,6 +26391,7 @@
+ #if HAVE_IEEEFP_H
+ # include <ieeefp.h>
+ #endif /* HAVE_IEEEFP_H */
++extern void fpsetmask(int);
+ int
+ main ()
+ {