]> git.pld-linux.org Git - packages/Firebird.git/blob - parallel-build.patch
- updated to 3.0.11.33703
[packages/Firebird.git] / parallel-build.patch
1 Description: allow building with make -jN
2  without this there are sporadic segmentation faults
3  .
4  it seems that when gpre opens a database, it clashes with other gpre
5  processes that have the database open. perhaps this is because at
6  this stage of the build the compiled firebird engine lacks ability for
7  synchronisation. So, wrap all engine-using calls with a lock file
8 Author: Damyan Ivanov <dmn@debian.org>
9 Forwarded: no
10
11 --- Firebird-3.0.10.33601-0/builds/posix/Makefile.in.orig       2022-06-24 13:13:29.537501538 +0200
12 +++ Firebird-3.0.10.33601-0/builds/posix/Makefile.in    2022-06-24 13:15:39.739885352 +0200
13 @@ -364,8 +364,8 @@
14  
15  metadata.fdb:  $(RUN_ISQL) $(SRC_ROOT)/dbs/metadata.sql
16         -$(RM) $@
17 -       $(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql
18 -       $(RUN_GFIX) -mode read_only $@
19 +       $(call LOCK_RUN,$(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql)
20 +       $(call LOCK_RUN,$(RUN_GFIX) -mode read_only $@)
21         $(CHMOD) 0444 $@
22  
23  $(HELP_FDB):   help.fdb
24 @@ -374,7 +374,7 @@
25         $(CHMOD) 0444 $@
26  
27  help.fdb:      $(BLD_ROOT)/misc/help.gbak
28 -       $(RUN_GBAK) -MODE read_only -replace $< $@
29 +       $(call LOCK_RUN,$(RUN_GBAK) -MODE read_only -replace $< $@)
30         $(CHMOD) 0444 $@
31  
32  $(SECURITY_FDB):       security.fdb
33 @@ -384,18 +384,18 @@
34  security.fdb:  $(SRC_ROOT)/dbs/security.sql
35         -$(RM) $@
36         -$(RM) $(SECURITY_TMP)
37 -       echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL)
38 -       $(RUN_GFIX) -write async $(SECURITY_TMP)
39 -       $(RUN_ISQL) -i $^ $(SECURITY_TMP)
40 +       $(call LOCK_RUN,echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL))
41 +       $(call LOCK_RUN,$(RUN_GFIX) -write async $(SECURITY_TMP))
42 +       $(call LOCK_RUN,$(RUN_ISQL) -i $^ $(SECURITY_TMP))
43         $(CHMOD) a=rw $(SECURITY_TMP)
44         $(CP) $(SECURITY_TMP) $@
45 -       $(RUN_GFIX) -write sync $@
46 +       $(call LOCK_RUN,$(RUN_GFIX) -write sync $@)
47  
48  msg.timestamp: $(MSG_FILES)
49         -$(RM) msg.fdb
50 -       echo create database \'msg.fdb\'\; | $(RUN_ISQL)
51 -       $(RUN_GFIX) -write async msg.fdb
52 -       for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done
53 +       $(call LOCK_RUN,echo create database \'msg.fdb\'\; | $(RUN_ISQL))
54 +       $(call LOCK_RUN,$(RUN_GFIX) -write async msg.fdb)
55 +       $(call LOCK_RUN,for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done)
56         $(TOUCH) $@
57  
58  
59 @@ -567,7 +567,7 @@
60  ids:   $(IDS)
61  
62  gen_codes:     $(CODES) msg.timestamp
63 -       $(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT)
64 +       $(call LOCK_RUN,$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT))
65  
66  $(CODES):      $(CODES_Objects) $(COMMON_LIB)
67         $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
68 @@ -603,7 +603,7 @@
69  message_file:  $(FIREBIRD_MSG)
70  
71  $(FIREBIRD_MSG):       $(BUILD_FILE) msg.timestamp
72 -       $(BUILD_FILE) -d msg.fdb -f $@
73 +       $(call LOCK_RUN,$(BUILD_FILE) -d msg.fdb -f $@)
74         $(CHMOD_6) $@
75  
76  $(BUILD_FILE): $(BUILD_Objects) $(COMMON_LIB)
77 diff -urNp -x '*.orig' Firebird-3.0.7.33374-0.org/builds/posix/Makefile.in.examples Firebird-3.0.7.33374-0/builds/posix/Makefile.in.examples
78 --- Firebird-3.0.7.33374-0.org/builds/posix/Makefile.in.examples        2020-10-20 08:40:05.000000000 +0000
79 +++ Firebird-3.0.7.33374-0/builds/posix/Makefile.in.examples    2022-04-04 17:53:33.598825549 +0000
80 @@ -123,8 +123,8 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)%
81  
82  $(EMPLOYEE_DB):        $(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
83         -$(RM) $(EMPLOYEE_DB)
84 -       ./empbuild $(EMPLOYEE_DB)
85 -       $(GFIX) -write sync $(EMPLOYEE_DB)
86 +       $(call LOCK_RUN,./empbuild $(EMPLOYEE_DB))
87 +       $(call LOCK_RUN,$(GFIX) -write sync $(EMPLOYEE_DB))
88         -$(CHMOD_6) $(EMPLOYEE_DB)
89  
90  # To get past the fact isql is called from the programs, we create a local link in this directory
91 @@ -140,7 +140,7 @@ $(EXAMPLES_DEST)/empbuild.c:        $(EXAMPLES_
92  
93  $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/empbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
94         -$(RM) $(EXAMPLES_DEST)/empbuild.fdb
95 -       $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql
96 +       $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql)
97  
98  # The chain for intlemp.fdb is the same a script file to create an empty database
99  # to allow a .e program to be compiled, to then create and populate with data
100 @@ -148,7 +148,7 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPL
101  
102  $(EXAMPLES_DEST)/intlemp.fdb:  $(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
103         -$(RM) intlemp.fdb
104 -       ./intlbld intlemp.fdb
105 +       $(call LOCK_RUN,./intlbld intlemp.fdb)
106         -$(CHMOD_6) intlemp.fdb
107  
108  $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB)
109 @@ -158,7 +158,7 @@ $(EXAMPLES_DEST)/intlbld.c: $(EXAMPLES_D
110  
111  $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
112         -$(RM) intlbuild.fdb
113 -       $(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql
114 +       $(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql)
115  
116  
117  $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql
118 diff -urNp -x '*.orig' Firebird-3.0.7.33374-0.org/builds/posix/make.defaults Firebird-3.0.7.33374-0/builds/posix/make.defaults
119 --- Firebird-3.0.7.33374-0.org/builds/posix/make.defaults       2022-04-04 17:53:31.949821738 +0000
120 +++ Firebird-3.0.7.33374-0/builds/posix/make.defaults   2022-04-04 17:53:33.598825549 +0000
121 @@ -397,6 +397,7 @@ GPRE_BOOT       = $(RBIN)/gpre_boot$(EXE
122  GPRE            = $(BIN)/gpre$(EXEC_EXT)
123  RUN_GPRE        = $(RBIN)/gpre$(EXEC_EXT)
124  GPRE_CURRENT    = $(RBIN)/gpre_current$(EXEC_EXT)
125 +LOCK_RUN        = sh -x -c "lockfile -1 $(BIN)/build-db.lock && $(subst $$,\$$,$(1)); res=\$$?; rm -f $(BIN)/build-db.lock; exit \$$res"
126  
127  
128  # From msgs
129 diff -urNp -x '*.orig' Firebird-3.0.7.33374-0.org/builds/posix/make.rules Firebird-3.0.7.33374-0/builds/posix/make.rules
130 --- Firebird-3.0.7.33374-0.org/builds/posix/make.rules  2020-10-20 08:40:05.000000000 +0000
131 +++ Firebird-3.0.7.33374-0/builds/posix/make.rules      2022-04-04 17:53:33.598825549 +0000
132 @@ -72,17 +72,17 @@ ISQL_GPRE_FLAGS = -m -z -n -ocxx
133  .SUFFIXES: .c .e .epp .cpp
134  
135  .e.c:
136 -       $(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
137 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@)
138  
139  
140  $(OBJ)/jrd/%.cpp: $(SRC_ROOT)/jrd/%.epp
141 -       $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@
142 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@)
143  
144  $(OBJ)/isql/%.cpp: $(SRC_ROOT)/isql/%.epp
145 -       $(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@
146 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@)
147  
148  $(OBJ)/%.cpp: $(SRC_ROOT)/%.epp
149 -       $(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@
150 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@)
151  
152  
153  .SUFFIXES: .lo .o .cpp .c
154 diff -urNp -x '*.orig' Firebird-3.0.7.33374-0.org/builds/posix/make.shared.targets Firebird-3.0.7.33374-0/builds/posix/make.shared.targets
155 --- Firebird-3.0.7.33374-0.org/builds/posix/make.shared.targets 2020-10-20 08:40:05.000000000 +0000
156 +++ Firebird-3.0.7.33374-0/builds/posix/make.shared.targets     2022-04-04 17:53:33.598825549 +0000
157 @@ -65,13 +65,13 @@ $(OBJ)/dsql/Parser.o $(OBJ)/common/keywo
158  
159  # Special cases for building cpp from epp
160  $(OBJ)/dsql/metd.cpp: $(SRC_ROOT)/dsql/metd.epp
161 -       $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
162 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
163  
164  $(OBJ)/dsql/DdlNodes.cpp: $(SRC_ROOT)/dsql/DdlNodes.epp
165 -       $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
166 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
167  
168  $(OBJ)/dsql/PackageNodes.cpp: $(SRC_ROOT)/dsql/PackageNodes.epp
169 -       $(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
170 +       $(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
171  
172  # Adding resources as prerequisite for some files
173  
This page took 0.051292 seconds and 3 git commands to generate.