summaryrefslogtreecommitdiff
path: root/dev-build/netsurf-buildsystem/files/netsurf-buildsystem-1.9-parallel-pre-post-targets.patch
diff options
context:
space:
mode:
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.patch74
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
-