From 99e148dd2719749c3e4c141161ca62dd177276a2 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 24 Jul 2023 23:23:14 +0100 Subject: [PATCH] bash: fix parallel build failure on unwind_prot.o As reported by Robert Scott in https://github.com/NixOS/nixpkgs/pull/245066 without the change `make -j8` build of `make` occasionally fails to buildin parallel. The simplest reproducer is: $$ ./configure $$ make unwind_prot.o ... In file included from unwind_prot.c:51: In file included from ./bashintl.h:30: ./include/gettext.h:27:11: fatal error: 'libintl.h' file not found # include ^~~~~~~~~~~ 1 error generated. make: * [Makefile:106: unwind_prot.o] Error 1 The change adds missing ttransitive `${LIBINTL_H}` dependency for unwind_prot.o. --- pkgs/shells/bash/5.nix | 4 ++++ pkgs/shells/bash/parallel.patch | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/shells/bash/parallel.patch diff --git a/pkgs/shells/bash/5.nix b/pkgs/shells/bash/5.nix index 00b4a707ed08..6b126390c9f6 100644 --- a/pkgs/shells/bash/5.nix +++ b/pkgs/shells/bash/5.nix @@ -61,6 +61,10 @@ stdenv.mkDerivation rec { url = "https://cgit.freebsd.org/ports/plain/shells/bash/files/patch-configure?id=3e147a1f594751a68fea00a28090d0792bee0b51"; sha256 = "XHFMQ6eXTReNoywdETyrfQEv1rKF8+XFbQZP4YoVKFk="; }) + # Apply parallel build fix pending upstream inclusion: + # https://savannah.gnu.org/patch/index.php?10373 + # Had to fetch manually to workaround -p0 default. + ./parallel.patch ]; configureFlags = [ diff --git a/pkgs/shells/bash/parallel.patch b/pkgs/shells/bash/parallel.patch new file mode 100644 index 000000000000..d9a0cc28ce04 --- /dev/null +++ b/pkgs/shells/bash/parallel.patch @@ -0,0 +1,12 @@ +From https://savannah.gnu.org/patch/index.php?10373 + https://savannah.gnu.org/patch/download.php?file_id=54964 +--- Makefile.in ++++ Makefile.in +@@ -1432,6 +1432,7 @@ siglist.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + subst.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + test.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + trap.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h ++unwind_prot.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + variables.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + version.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h + xmalloc.o: bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h