commit: 9034a6d5fcf3a2ead9735466c906830d472a2f9c Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Mon Jan 13 03:23:31 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Jan 13 03:23:38 2025 +0000 URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=9034a6d5
15.0.0: add parallel build patch for D Thank you Arsen! Signed-off-by: Sam James <sam <AT> gentoo.org> ...-d-give-dependency-files-better-filenames.patch | 54 ++++++++++++++++++++++ 15.0.0/gentoo/README.history | 1 + 2 files changed, 55 insertions(+) diff --git a/15.0.0/gentoo/83_all-gcc-d-give-dependency-files-better-filenames.patch b/15.0.0/gentoo/83_all-gcc-d-give-dependency-files-better-filenames.patch new file mode 100644 index 0000000..98156e4 --- /dev/null +++ b/15.0.0/gentoo/83_all-gcc-d-give-dependency-files-better-filenames.patch @@ -0,0 +1,54 @@ +https://inbox.sourceware.org/gcc-patches/[email protected]/ + +From 327b1b3834b4e3c80b209a35a73b063a0f9bfd75 Mon Sep 17 00:00:00 2001 +Message-ID: <327b1b3834b4e3c80b209a35a73b063a0f9bfd75.1736738577.git....@gentoo.org> +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <[email protected]> +Date: Sun, 12 Jan 2025 16:16:58 +0100 +Subject: [PATCH] gcc/d: give dependency files better filenames + +Currently, the dependency files for root-file.o and common-file.o were +both d/.deps/file.Po, which would cause parallel builds to fail +sometimes with: + + make[3]: Leaving directory '/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/build/gcc' + make[3]: Entering directory '/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/build/gcc' + mv: cannot stat 'd/.deps/file.TPo': No such file or directory + make[3]: *** [/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/gcc-14-20240511/gcc/d/Make-lang.in:421: d/root-file.o] Error 1 shuffle=131581365 + +Also, this means that dependencies of one of root-file or common-file +are missing when developing. After this patch, those two files get +assigned dependency files d/.deps/d-root-file.o.Po and +d/.deps/d-common-file.o.Po respectively. + +There are other files with similar conflicts (mangle-package.o, +visitor-package.o for instance). + +gcc/d/ChangeLog: + +* Make-lang.in: Assign dependency-tracking files better + filenames. +--- + gcc/d/Make-lang.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/gcc/d/Make-lang.in b/gcc/d/Make-lang.in +index f28761e4b370..25e2b0bbfe94 100644 +--- a/gcc/d/Make-lang.in ++++ b/gcc/d/Make-lang.in +@@ -65,8 +65,9 @@ ALL_DFLAGS = $(DFLAGS-$@) $(GDCFLAGS) -fversion=IN_GCC $(CHECKING_DFLAGS) \ + $(WARN_DFLAGS) + + DCOMPILE.base = $(GDC) -c $(ALL_DFLAGS) -o $@ +-DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo +-DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po ++DEPFILE = $(subst /,-,$@) ++DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(DEPFILE).TPo ++DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(DEPFILE).TPo $(@D)/$(DEPDIR)/$(DEPFILE).Po + DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++ + + # Like LINKER, but use a mutex for serializing front end links. + +base-commit: 0e05b793fba2a9bea9f0fbb1f068679f5dadf514 +-- +2.48.0 + diff --git a/15.0.0/gentoo/README.history b/15.0.0/gentoo/README.history index 1f53f35..58edd02 100644 --- a/15.0.0/gentoo/README.history +++ b/15.0.0/gentoo/README.history @@ -1,6 +1,7 @@ 38 ???? + 82_all_PR118409-ifcombine.patch + + 83_all-gcc-d-give-dependency-files-better-filenames.patch 37 13 January 2025
