Merge pull request #775 from micmac1/chan-dongle-iconv-update
[feed/telephony.git] / libs / pjproject / patches / 0050-fix-race-parallel-build.patch
1 From 78683646c8bc670ec730a42494e075f671a08e28 Mon Sep 17 00:00:00 2001
2 From: Guido Falsi <mad@madpilot.net>
3 Date: Mon, 11 May 2020 08:50:39 +0200
4 Subject: [PATCH] Fix race condition in parallel builds (#2426)
5
6 * Some targets residing in `OBJDIRS` are missing a dependency on that directory, which results in a race condition, causing build to fail sometimes due to the directory not existing when running parallel builds.
7
8 * The `PJSUA_LIB` variable is not defined anywhere, resulting in an empty value, and no correct dependency on the pjsua shared library for `pjsua2`. The correct variable seems to be `PJSUA_LIB_LIB`, defined at the start of this same `Makefile`.
9 ---
10 build/rules.mak | 12 ++++++------
11 pjsip/build/Makefile | 2 +-
12 2 files changed, 7 insertions(+), 7 deletions(-)
13
14 --- a/build/rules.mak
15 +++ b/build/rules.mak
16 @@ -129,7 +129,7 @@ endif
17 $(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
18 $(CROSS_COMPILE)ld -r -o $@ $(OBJS)
19
20 -$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o
21 +$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o | $(OBJDIRS)
22 @echo Creating kbuild Makefile...
23 @echo "# Our module name:" > $(OBJDIR)/Makefile
24 @echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
25 @@ -154,27 +154,27 @@ $(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o
26 ../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
27 cp $(OBJDIR)/$(app).ko ../lib
28
29 -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.m
30 +$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.m | $(OBJDIRS)
31 $(CC) $($(APP)_CFLAGS) \
32 $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
33 $(subst /,$(HOST_PSEP),$<)
34
35 -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c
36 +$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c | $(OBJDIRS)
37 $(CC) $($(APP)_CFLAGS) \
38 $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
39 $(subst /,$(HOST_PSEP),$<)
40
41 -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S
42 +$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S | $(OBJDIRS)
43 $(CC) $($(APP)_CFLAGS) \
44 $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
45 $(subst /,$(HOST_PSEP),$<)
46
47 -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp
48 +$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp | $(OBJDIRS)
49 $(CXX) $($(APP)_CXXFLAGS) \
50 $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
51 $(subst /,$(HOST_PSEP),$<)
52
53 -$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cc
54 +$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cc | $(OBJDIRS)
55 $(CXX) $($(APP)_CXXFLAGS) \
56 $(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
57 $(subst /,$(HOST_PSEP),$<)
58 --- a/pjsip/build/Makefile
59 +++ b/pjsip/build/Makefile
60 @@ -261,7 +261,7 @@ $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME): $(
61
62 pjsua2-lib: $(PJSUA2_LIB_LIB)
63 $(PJSUA2_LIB_SONAME): $(PJSUA2_LIB_LIB)
64 -$(PJSUA2_LIB_LIB) $(PJSUA2_LIB_SONAME): $(PJSUA_LIB) $(PSJUA_LIB_SONAME) $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
65 +$(PJSUA2_LIB_LIB) $(PJSUA2_LIB_SONAME): $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
66 $(MAKE) -f $(RULES_MAK) APP=PJSUA2_LIB app=pjsua2-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
67
68 pjsip-test: $(TEST_EXE)