diff options
Diffstat (limited to 'dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch')
-rw-r--r-- | dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch b/dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch deleted file mode 100644 index f1e51e7c5251..000000000000 --- a/dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 067a5105a76e51eebcdf7e7786d1f91040442d47 Mon Sep 17 00:00:00 2001 -From: Michael Orlitzky <michael@orlitzky.com> -Date: Mon, 14 Aug 2023 13:23:09 -0400 -Subject: makefiles/Makefile.top: dependencies for PRE_ and POST_TARGETS - -The PRE_TARGETS and POST_TARGETS are supposed to be built before and -after $(OBJECTS), respectively -- at least according to the comments -in Makefile.top: - - # List of targets to run before building $(OBJECT) - PRE_TARGETS := - # List of targets to run after building $(OBJECT) - POST_TARGETS := - -The default target however builds them at the same time as $(OUTPUT), - - # Default target - all: $(PRE_TARGETS) $(OUTPUT) $(POST_TARGETS) - -where $(OUTPUT) basically just builds $(OBJECTS): - - $(OUTPUT): $(BUILDDIR)/stamp $(OBJECTS) - ... - -As a result, there is a race condition when $(OBJECTS) truly requires -$(PRE_TARGETS), because they may be built at the same time. The same -problem arises the other way around with $(POST_TARGETS). As a -demonstration, one can try to build the libsvgtiny shared library -directly (note: the details are platform-dependent), - - $ BD=build-x86_64-pc-linux-gnu-x86_64-pc-linux-gnu-release-lib-shared - $ make COMPONENT_TYPE=lib-shared "${BD}/libsvgtiny.so.0.1.7" - COMPILE: src/svgtiny.c - ... - src/svgtiny.c:24:10: fatal error: autogenerated_colors.c: No such file or directory - 24 | #include "autogenerated_colors.c" - | ^~~~~~~~~~~~~~~~~~~~~~~~ - compilation terminated. - -This is because $(PRE_TARGETS) is not satisfied. In practice, this -condition seems hard to hit unintentionally, but it can happen if you -are building in parallel and extemely unlucky. A user discovered it in -Gentoo bug 711200. - -The fix simply adds the stated dependencies on $(OBJECTS) and -$(POST_TARGETS) to guarantee the correct order. ---- - makefiles/Makefile.top | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/makefiles/Makefile.top b/makefiles/Makefile.top -index 0b0fe22..2a41697 100644 ---- a/makefiles/Makefile.top -+++ b/makefiles/Makefile.top -@@ -422,6 +422,16 @@ else - endif - endif - -+ifneq ($(PRE_TARGETS),) -+# Ensure that PRE_TARGETS are built before OBJECTS. -+$(OBJECTS): $(PRE_TARGETS) -+endif -+ -+ifneq ($(POST_TARGETS),) -+# Ensure that POST_TARGETS are built after OBJECTS. -+$(POST_TARGETS): $(OBJECTS) -+endif -+ - ############################################################################### - # Autogenerated, implied rules - ############################################################################### --- -cgit v1.2.1 - |