-Description: allow building with make -jN
- without this there are sporadic segmentation faults
- .
- it seems that when gpre opens a database, it clashes with other gpre
- processes that have the database open. perhaps this is because at
- this stage of the build the compiled firebird engine lacks ability for
- synchronisation. So, wrap all engine-using calls with a lock file
-Author: Damyan Ivanov <dmn@debian.org>
-Forwarded: no
-
-diff -up Firebird-4.0.4.3010-0/builds/posix/Makefile.in.orig Firebird-4.0.4.3010-0/builds/posix/Makefile.in
---- Firebird-4.0.4.3010-0/builds/posix/Makefile.in.orig 2023-12-20 10:59:23.894063119 +0100
-+++ Firebird-4.0.4.3010-0/builds/posix/Makefile.in 2023-12-20 11:04:55.318624451 +0100
-@@ -442,8 +442,8 @@ yachts.lnk: metadata.fdb
-
- metadata.fdb: $(RUN_ISQL) $(SRC_ROOT)/dbs/metadata.sql
- -$(RM) $@
-- $(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql
-- $(RUN_GFIX) -mode read_only $@
-+ $(call LOCK_RUN,$(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql)
-+ $(call LOCK_RUN,$(RUN_GFIX) -mode read_only $@)
- $(CHMOD) 0444 $@
-
- $(HELP_FDB): help.fdb
-@@ -452,7 +452,7 @@ $(HELP_FDB): help.fdb
- $(CHMOD) 0444 $@
-
- help.fdb: $(BLD_ROOT)/misc/help.gbak
-- $(RUN_GBAK) -MODE read_only -R $< $@
-+ $(call LOCK_RUN,$(RUN_GBAK) -MODE read_only -R $< $@)
- $(CHMOD) 0444 $@
-
- $(SECURITY_FDB): security.fdb
-@@ -462,18 +462,18 @@ $(SECURITY_FDB): security.fdb
- security.fdb: $(SRC_ROOT)/dbs/security.sql
- -$(RM) $@
- -$(RM) $(SECURITY_TMP)
-- echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL)
-- $(RUN_GFIX) -write async $(SECURITY_TMP)
-- $(RUN_ISQL) -i $^ $(SECURITY_TMP)
-+ $(call LOCK_RUN,echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL))
-+ $(call LOCK_RUN,$(RUN_GFIX) -write async $(SECURITY_TMP))
-+ $(call LOCK_RUN,$(RUN_ISQL) -i $^ $(SECURITY_TMP))
- $(CHMOD) a=rw $(SECURITY_TMP)
- $(CP) $(SECURITY_TMP) $@
-- $(RUN_GFIX) -write sync $@
-+ $(call LOCK_RUN,$(RUN_GFIX) -write sync $@)
-
- msg.timestamp: $(MSG_FILES)
- -$(RM) msg.fdb
-- echo create database \'msg.fdb\'\; | $(RUN_ISQL)
-- $(RUN_GFIX) -write async msg.fdb
-- for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done
-+ $(call LOCK_RUN,echo create database \'msg.fdb\'\; | $(RUN_ISQL))
-+ $(call LOCK_RUN,$(RUN_GFIX) -write async msg.fdb)
-+ $(call LOCK_RUN,for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done)
- $(TOUCH) $@
-
-
-@@ -643,7 +643,7 @@ CODES = $(BIN)/codes$(EXEC_EXT)
- codes: gen_codes
-
- gen_codes: $(CODES) msg.timestamp
-- $(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT)
-+ $(call LOCK_RUN,$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT))
-
- $(CODES): $(CODES_Objects) $(COMMON_LIB)
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
-@@ -675,7 +675,7 @@ examples: include_generic
- message_file: $(FIREBIRD_MSG)
-
- $(FIREBIRD_MSG): $(BUILD_FILE) msg.timestamp
-- $(BUILD_FILE) -d msg.fdb -f $@
-+ $(call LOCK_RUN,$(BUILD_FILE) -d msg.fdb -f $@)
- $(CHMOD_6) $@
-
- tzdata: $(FIREBIRD)/tzdata
-diff -up Firebird-4.0.4.3010-0/builds/posix/Makefile.in.examples.orig Firebird-4.0.4.3010-0/builds/posix/Makefile.in.examples
---- Firebird-4.0.4.3010-0/builds/posix/Makefile.in.examples.orig 2023-11-08 13:07:47.000000000 +0100
-+++ Firebird-4.0.4.3010-0/builds/posix/Makefile.in.examples 2023-12-20 10:59:23.900729743 +0100
-@@ -140,8 +140,8 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)%
-
- $(EMPLOYEE_DB): $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
- -$(RM) $(EMPLOYEE_DB)
-- ./empbuild $(EMPLOYEE_DB)
-- $(GFIX) -write sync $(EMPLOYEE_DB)
-+ $(call LOCK_RUN,./empbuild $(EMPLOYEE_DB))
-+ $(call LOCK_RUN,$(GFIX) -write sync $(EMPLOYEE_DB))
- -$(CHMOD_6) $(EMPLOYEE_DB)
-
- # To get past the fact isql is called from the programs, we create a local link in this directory
-@@ -157,7 +157,7 @@ $(EXAMPLES_DEST)/empbuild.c: $(EXAMPLES_
-
- $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/empbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
- -$(RM) $(EXAMPLES_DEST)/empbuild.fdb
-- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql
-+ $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql)
-
- # The chain for intlemp.fdb is the same a script file to create an empty database
- # to allow a .e program to be compiled, to then create and populate with data
-@@ -165,7 +165,7 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPL
-
- $(EXAMPLES_DEST)/intlemp.fdb: $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
- -$(RM) intlemp.fdb
-- ./intlbld intlemp.fdb
-+ $(call LOCK_RUN,./intlbld intlemp.fdb)
- -$(CHMOD_6) intlemp.fdb
-
- $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB)
-@@ -175,7 +175,7 @@ $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_D
-
- $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
- -$(RM) intlbuild.fdb
-- $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql
-+ $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql)
-
-
- $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql
-diff -up Firebird-4.0.4.3010-0/builds/posix/make.defaults.orig Firebird-4.0.4.3010-0/builds/posix/make.defaults
---- Firebird-4.0.4.3010-0/builds/posix/make.defaults.orig 2023-12-20 10:59:23.900729743 +0100
-+++ Firebird-4.0.4.3010-0/builds/posix/make.defaults 2023-12-20 11:06:32.591338933 +0100
-@@ -427,6 +427,7 @@ GPRE_BOOT = $(RBIN)/gpre_boot$(EXE
- GPRE = $(BIN)/gpre$(EXEC_EXT)
- RUN_GPRE = $(RBIN)/gpre$(EXEC_EXT)
- GPRE_CURRENT = $(RBIN)/gpre_current$(EXEC_EXT)
-+LOCK_RUN = sh -x -c "lockfile -1 $(BIN)/build-db.lock && $(subst $$,\$$,$(1)); res=\$$?; rm -f $(BIN)/build-db.lock; exit \$$res"
-
- # From msgs
- CHECK_MESSAGES = $(BIN)/check_messages$(EXEC_EXT)
-diff -up Firebird-4.0.4.3010-0/builds/posix/make.rules.orig Firebird-4.0.4.3010-0/builds/posix/make.rules
---- Firebird-4.0.4.3010-0/builds/posix/make.rules.orig 2023-12-20 10:59:23.900729743 +0100
-+++ Firebird-4.0.4.3010-0/builds/posix/make.rules 2023-12-20 11:08:35.277238011 +0100
-@@ -88,20 +88,20 @@ OBJECT_GPRE_FLAGS = -m -z -n -ocxx
- .SUFFIXES: .c .e .epp .cpp
-
- .e.c:
-- $(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@)
-
-
- $(OBJ)/jrd/%.cpp: $(SRC_ROOT)/jrd/%.epp
-- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@)
-
- $(OBJ)/isql/%.cpp: $(SRC_ROOT)/isql/%.epp
-- $(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@)
-
- $(OBJ)/burp/%.cpp: $(SRC_ROOT)/burp/%.epp
-- $(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(OBJECT_GPRE_FLAGS) $< $@)
-
- $(OBJ)/%.cpp: $(SRC_ROOT)/%.epp
-- $(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@)
-
-
- .SUFFIXES: .lo .o .cpp .c .cc
-diff -up Firebird-4.0.4.3010-0/builds/posix/make.shared.targets.orig Firebird-4.0.4.3010-0/builds/posix/make.shared.targets
---- Firebird-3.0.7.33374-0.org/builds/posix/make.shared.targets 2020-10-20 08:40:05.000000000 +0000
-+++ Firebird-3.0.7.33374-0/builds/posix/make.shared.targets 2022-04-04 17:53:33.598825549 +0000
-@@ -65,13 +65,13 @@ $(OBJ)/dsql/Parser.o $(OBJ)/common/keywo
-
- # Special cases for building cpp from epp
- $(OBJ)/dsql/metd.cpp: $(SRC_ROOT)/dsql/metd.epp
-- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
-
- $(OBJ)/dsql/DdlNodes.cpp: $(SRC_ROOT)/dsql/DdlNodes.epp
-- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
-
- $(OBJ)/dsql/PackageNodes.cpp: $(SRC_ROOT)/dsql/PackageNodes.epp
-- $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
-+ $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
-
- # Adding resources as prerequisite for some files
-