diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-04-23 10:53:25 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-04-23 10:53:25 +0200 |
| commit | 6f5eaf9650e9e23b11f81366de580215ddf57295 (patch) | |
| tree | f37472f8ce557ada396d066546ca5bf6985a876a /private/gcc-latest/patches | |
| parent | 691ddba017596abb02af51dba9dbad06e3f62bbc (diff) | |
| download | slackbuilder-6f5eaf9650e9e23b11f81366de580215ddf57295.tar.gz | |
gcc-latest: Removed
There were still problems with this build. For example LibreOffice
cannot be built if GCC is installed.
Diffstat (limited to 'private/gcc-latest/patches')
| -rw-r--r-- | private/gcc-latest/patches/gcc-no_fixincludes.diff | 27 | ||||
| -rw-r--r-- | private/gcc-latest/patches/gdc-immutable-struct.patch | 91 | ||||
| -rw-r--r-- | private/gcc-latest/patches/gdc-link-lambda.patch | 187 |
3 files changed, 0 insertions, 305 deletions
diff --git a/private/gcc-latest/patches/gcc-no_fixincludes.diff b/private/gcc-latest/patches/gcc-no_fixincludes.diff deleted file mode 100644 index e152e08..0000000 --- a/private/gcc-latest/patches/gcc-no_fixincludes.diff +++ /dev/null @@ -1,27 +0,0 @@ ---- ./gcc/Makefile.in.orig 2018-03-09 09:24:44.000000000 -0600 -+++ ./gcc/Makefile.in 2018-05-02 12:25:43.958002771 -0500 -@@ -3004,9 +3004,9 @@ - chmod a+r $${fix_dir}/limits.h; \ - done - # Install the README -- rm -f include-fixed/README -- cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README -- chmod a+r include-fixed/README -+# rm -f include-fixed/README -+# cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README -+# chmod a+r include-fixed/README - $(STAMP) $@ - - .PHONY: install-gcc-tooldir -@@ -3087,10 +3087,7 @@ - (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \ - SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \ - gcc_dir=`${PWD_COMMAND}` ; \ -- export TARGET_MACHINE srcdir SHELL MACRO_LIST && \ -- cd $(build_objdir)/fixincludes && \ -- $(SHELL) ./fixinc.sh "$${gcc_dir}/$${fix_dir}" \ -- $(BUILD_SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \ -+ export TARGET_MACHINE srcdir SHELL MACRO_LIST ); \ - rm -f $${fix_dir}/syslimits.h; \ - if [ -f $${fix_dir}/limits.h ]; then \ - mv $${fix_dir}/limits.h $${fix_dir}/syslimits.h; \ diff --git a/private/gcc-latest/patches/gdc-immutable-struct.patch b/private/gcc-latest/patches/gdc-immutable-struct.patch deleted file mode 100644 index 5c47aa7..0000000 --- a/private/gcc-latest/patches/gdc-immutable-struct.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 2583365912c8700abe1f4a23ed611acb80fac09d Mon Sep 17 00:00:00 2001 -From: Iain Buclaw <ibuclaw@gdcproject.org> -Date: Mon, 27 Feb 2023 20:46:18 +0100 -Subject: [PATCH] d: Fix ICE on explicit immutable struct import [PR108877] - -Const and immutable types are built as variants of the type they are -derived from, and TYPE_STUB_DECL is not set for these variants. - - PR d/108877 - -gcc/d/ChangeLog: - - * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call - make_import on TYPE_MAIN_VARIANT. - (ImportVisitor::visit (AggregateDeclaration *)): Likewise. - (ImportVisitor::visit (ClassDeclaration *)): Likewise. - -gcc/testsuite/ChangeLog: - - * gdc.dg/imports/pr108877a.d: New test. - * gdc.dg/pr108877.d: New test. - -(cherry picked from commit ce1cea3e22f58bbddde017f8a92e59bae8892339) ---- - gcc/d/imports.cc | 7 ++++++- - gcc/testsuite/gdc.dg/imports/pr108877a.d | 6 ++++++ - gcc/testsuite/gdc.dg/pr108877.d | 9 +++++++++ - 3 files changed, 21 insertions(+), 1 deletion(-) - create mode 100644 gcc/testsuite/gdc.dg/imports/pr108877a.d - create mode 100644 gcc/testsuite/gdc.dg/pr108877.d - -diff --git a/gcc/d/imports.cc b/gcc/d/imports.cc -index dfda2401ee8..6a59ef61b9c 100644 ---- a/gcc/d/imports.cc -+++ b/gcc/d/imports.cc -@@ -106,12 +106,16 @@ public: - tree type = build_ctype (d->type); - /* Not all kinds of D enums create a TYPE_DECL. */ - if (TREE_CODE (type) == ENUMERAL_TYPE) -- this->result_ = this->make_import (TYPE_STUB_DECL (type)); -+ { -+ type = TYPE_MAIN_VARIANT (type); -+ this->result_ = this->make_import (TYPE_STUB_DECL (type)); -+ } - } - - void visit (AggregateDeclaration *d) - { - tree type = build_ctype (d->type); -+ type = TYPE_MAIN_VARIANT (type); - this->result_ = this->make_import (TYPE_STUB_DECL (type)); - } - -@@ -119,6 +123,7 @@ public: - { - /* Want the RECORD_TYPE, not POINTER_TYPE. */ - tree type = TREE_TYPE (build_ctype (d->type)); -+ type = TYPE_MAIN_VARIANT (type); - this->result_ = this->make_import (TYPE_STUB_DECL (type)); - } - -diff --git a/gcc/testsuite/gdc.dg/imports/pr108877a.d b/gcc/testsuite/gdc.dg/imports/pr108877a.d -new file mode 100644 -index 00000000000..a23c78ddf84 ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/imports/pr108877a.d -@@ -0,0 +1,6 @@ -+immutable struct ImmutableS { } -+const struct ConstS { } -+immutable class ImmutableC { } -+const class ConstC { } -+immutable enum ImmutableE { _ } -+const enum ConstE { _ } -diff --git a/gcc/testsuite/gdc.dg/pr108877.d b/gcc/testsuite/gdc.dg/pr108877.d -new file mode 100644 -index 00000000000..710551f3f9a ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/pr108877.d -@@ -0,0 +1,9 @@ -+// { dg-options "-I $srcdir/gdc.dg" } -+// { dg-do compile } -+import imports.pr108877a : -+ ImmutableS, -+ ConstS, -+ ImmutableC, -+ ConstC, -+ ImmutableE, -+ ConstE; --- -2.31.1 - diff --git a/private/gcc-latest/patches/gdc-link-lambda.patch b/private/gcc-latest/patches/gdc-link-lambda.patch deleted file mode 100644 index 32f069e..0000000 --- a/private/gcc-latest/patches/gdc-link-lambda.patch +++ /dev/null @@ -1,187 +0,0 @@ -From 3b8b42f32627ca5ad029fe418a5839b9fc4512e9 Mon Sep 17 00:00:00 2001 -From: Iain Buclaw <ibuclaw@gdcproject.org> -Date: Sat, 10 Dec 2022 22:11:41 +0100 -Subject: [PATCH] d: Fix undefined reference to nested lambda in template - (PR108055) - -Sometimes, nested lambdas of templated functions get no code generation -due to them being marked as instantianted outside of all modules being -compiled in the current compilation unit. This despite enclosing -template instances being marked as instantiated inside the current -compilation unit. To fix, all enclosing templates are now checked in -`function_defined_in_root_p'. - -Because of this change, `function_needs_inline_definition_p' has also -been fixed up to only check whether the regular function definition -itself is to be emitted in the current compilation unit. - - PR d/108055 - -gcc/d/ChangeLog: - - * decl.cc (function_defined_in_root_p): Check all enclosing template - instances for definition in a root module. - (function_needs_inline_definition_p): Replace call to - function_defined_in_root_p with test for outer module `isRoot'. - -gcc/testsuite/ChangeLog: - - * gdc.dg/torture/imports/pr108055conv.d: New. - * gdc.dg/torture/imports/pr108055spec.d: New. - * gdc.dg/torture/imports/pr108055write.d: New. - * gdc.dg/torture/pr108055.d: New test. - -(cherry picked from commit 9fe7d3debbf60ed9fef8053123ad542a99d62100) ---- - gcc/d/decl.cc | 14 ++++++---- - .../gdc.dg/torture/imports/pr108055conv.d | 26 +++++++++++++++++++ - .../gdc.dg/torture/imports/pr108055spec.d | 18 +++++++++++++ - .../gdc.dg/torture/imports/pr108055write.d | 19 ++++++++++++++ - gcc/testsuite/gdc.dg/torture/pr108055.d | 12 +++++++++ - 5 files changed, 84 insertions(+), 5 deletions(-) - create mode 100644 gcc/testsuite/gdc.dg/torture/imports/pr108055conv.d - create mode 100644 gcc/testsuite/gdc.dg/torture/imports/pr108055spec.d - create mode 100644 gcc/testsuite/gdc.dg/torture/imports/pr108055write.d - create mode 100644 gcc/testsuite/gdc.dg/torture/pr108055.d - -diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc -index e62be0c580a..11fd7f6c81f 100644 ---- a/gcc/d/decl.cc -+++ b/gcc/d/decl.cc -@@ -1023,7 +1023,8 @@ build_decl_tree (Dsymbol *d) - input_location = saved_location; - } - --/* Returns true if function FD is defined or instantiated in a root module. */ -+/* Returns true if function FD, or any lexically enclosing scope function of FD -+ is defined or instantiated in a root module. */ - - static bool - function_defined_in_root_p (FuncDeclaration *fd) -@@ -1032,9 +1033,11 @@ function_defined_in_root_p (FuncDeclaration *fd) - if (md && md->isRoot ()) - return true; - -- TemplateInstance *ti = fd->isInstantiated (); -- if (ti && ti->minst && ti->minst->isRoot ()) -- return true; -+ for (TemplateInstance *ti = fd->isInstantiated (); ti != NULL; ti = ti->tinst) -+ { -+ if (ti->minst && ti->minst->isRoot ()) -+ return true; -+ } - - return false; - } -@@ -1062,7 +1065,8 @@ function_needs_inline_definition_p (FuncDeclaration *fd) - - /* Check whether function will be regularly defined later in the current - translation unit. */ -- if (function_defined_in_root_p (fd)) -+ Module *md = fd->getModule (); -+ if (md && md->isRoot ()) - return false; - - /* Non-inlineable functions are always external. */ -diff --git a/gcc/testsuite/gdc.dg/torture/imports/pr108055conv.d b/gcc/testsuite/gdc.dg/torture/imports/pr108055conv.d -new file mode 100644 -index 00000000000..93ebba747b1 ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/torture/imports/pr108055conv.d -@@ -0,0 +1,26 @@ -+module imports.pr108055conv; -+ -+T toStr(T, S)(S src) -+{ -+ static if (is(typeof(T.init[0]) E)) -+ { -+ struct Appender -+ { -+ inout(E)[] data; -+ } -+ -+ import imports.pr108055spec; -+ import imports.pr108055write; -+ -+ auto w = Appender(); -+ FormatSpec!E f; -+ formatValue(w, src, f); -+ return w.data; -+ } -+} -+ -+T to(T, A)(A args) -+{ -+ return toStr!T(args); -+} -+ -diff --git a/gcc/testsuite/gdc.dg/torture/imports/pr108055spec.d b/gcc/testsuite/gdc.dg/torture/imports/pr108055spec.d -new file mode 100644 -index 00000000000..801c5810516 ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/torture/imports/pr108055spec.d -@@ -0,0 +1,18 @@ -+module imports.pr108055spec; -+ -+template Unqual(T : const U, U) -+{ -+ alias Unqual = U; -+} -+ -+template FormatSpec(Char) -+if (!is(Unqual!Char == Char)) -+{ -+ alias FormatSpec = FormatSpec!(Unqual!Char); -+} -+ -+struct FormatSpec(Char) -+if (is(Unqual!Char == Char)) -+{ -+ const(Char)[] nested; -+} -diff --git a/gcc/testsuite/gdc.dg/torture/imports/pr108055write.d b/gcc/testsuite/gdc.dg/torture/imports/pr108055write.d -new file mode 100644 -index 00000000000..fe41d7baa7c ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/torture/imports/pr108055write.d -@@ -0,0 +1,19 @@ -+module imports.pr108055write; -+import imports.pr108055spec; -+ -+void formatValueImpl(Writer, T, Char)(ref Writer , const(T) , -+ scope const ref FormatSpec!Char ) -+{ -+ T val; -+ char spec; -+ -+ (ref val) @trusted { -+ return (cast(const char*) &val)[0 .. val.sizeof]; -+ }(val); -+ -+} -+ -+void formatValue(Writer, T, Char)(Writer w, T val, Char f) -+{ -+ formatValueImpl(w, val, f); -+} -diff --git a/gcc/testsuite/gdc.dg/torture/pr108055.d b/gcc/testsuite/gdc.dg/torture/pr108055.d -new file mode 100644 -index 00000000000..c4ffad26d1e ---- /dev/null -+++ b/gcc/testsuite/gdc.dg/torture/pr108055.d -@@ -0,0 +1,12 @@ -+// { dg-do link } -+// { dg-additional-files "imports/pr108055conv.d imports/pr108055spec.d imports/pr108055write.d" } -+// { dg-additional-options "-I[srcdir] -fno-druntime" } -+import imports.pr108055conv; -+ -+extern(C) int main() -+{ -+ float zis; -+ static if (is(typeof(to!string(&zis)))) -+ to!string(&zis); -+ return 0; -+} --- -2.31.1 - |
