* [Buildroot] [PATCH] yajl: disable parallel build
@ 2016-03-31 19:01 Jörg Krause
2016-03-31 19:14 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Jörg Krause @ 2016-03-31 19:01 UTC (permalink / raw)
To: buildroot
The yajl build system contains a race condition, which gets triggered by
high BR2_JLEVEL settings - It tries to link the executable gen-extra-close
against libyajl before it is created:
[ 21%] Linking C executable gen-extra-close
[ 26%] Building C object src/CMakeFiles/yajl_s.dir/yajl_buf.c.o
/home/test/autobuild/instance-3/output/host/opt/ext-toolchain/bfin-uclinux/bfin-uclinux/bin/ld.real: cannot find -lyajl
Fix it by disabling parallel build.
Fixes:
http://autobuild.buildroot.net/results/a9b/a9b5209377acb51e69f376e0c008ee71fe00397a/
http://autobuild.buildroot.net/results/55f/55fe22463d49addb42b635d10be5176522f4a561/
http://autobuild.buildroot.net/results/808/808acca0cfed93465845c2aa055a7a4fc56a8a17/
http://autobuild.buildroot.net/results/b92/b92a9c84b71a8a2d022d307245ca6be36a000e6c/
http://autobuild.buildroot.net/results/55d/55df698ab53f7d94235166e8576eb681ed68668e/
.. and more.
Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
---
package/yajl/yajl.mk | 3 +++
1 file changed, 3 insertions(+)
diff --git a/package/yajl/yajl.mk b/package/yajl/yajl.mk
index 7770e86..4346e42 100644
--- a/package/yajl/yajl.mk
+++ b/package/yajl/yajl.mk
@@ -11,4 +11,7 @@ YAJL_LICENSE = ISC
YAJL_LICENSE_FILES = COPYING
YAJL_PATCH = https://github.com/vriera/yajl/commit/6d09f11b8fd358cab0e31b965327e64a599f9ce9.patch
+# Parallel build is broken
+YAJL_MAKE = $(MAKE1)
+
$(eval $(cmake-package))
--
2.8.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] yajl: disable parallel build
2016-03-31 19:01 [Buildroot] [PATCH] yajl: disable parallel build Jörg Krause
@ 2016-03-31 19:14 ` Thomas Petazzoni
2016-04-01 18:38 ` Jörg Krause
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2016-03-31 19:14 UTC (permalink / raw)
To: buildroot
Hello,
On Thu, 31 Mar 2016 21:01:01 +0200, J?rg Krause wrote:
> The yajl build system contains a race condition, which gets triggered by
> high BR2_JLEVEL settings - It tries to link the executable gen-extra-close
> against libyajl before it is created:
>
> [ 21%] Linking C executable gen-extra-close
> [ 26%] Building C object src/CMakeFiles/yajl_s.dir/yajl_buf.c.o
> /home/test/autobuild/instance-3/output/host/opt/ext-toolchain/bfin-uclinux/bfin-uclinux/bin/ld.real: cannot find -lyajl
>
> Fix it by disabling parallel build.
>
> Fixes:
> http://autobuild.buildroot.net/results/a9b/a9b5209377acb51e69f376e0c008ee71fe00397a/
> http://autobuild.buildroot.net/results/55f/55fe22463d49addb42b635d10be5176522f4a561/
> http://autobuild.buildroot.net/results/808/808acca0cfed93465845c2aa055a7a4fc56a8a17/
> http://autobuild.buildroot.net/results/b92/b92a9c84b71a8a2d022d307245ca6be36a000e6c/
> http://autobuild.buildroot.net/results/55d/55df698ab53f7d94235166e8576eb681ed68668e/
> .. and more.
>
> Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
yajl is using a reasonable build system, so there should be a
reasonable way of getting parallel build to work.
Can you try the following patch:
diff --git a/test/api/CMakeLists.txt b/test/api/CMakeLists.txt
index cd65a54..f7b6be1 100644
--- a/test/api/CMakeLists.txt
+++ b/test/api/CMakeLists.txt
@@ -22,4 +22,5 @@ FOREACH (test ${TESTS})
GET_FILENAME_COMPONENT(testProg ${test} NAME_WE)
ADD_EXECUTABLE(${testProg} ${test})
TARGET_LINK_LIBRARIES(${testProg} yajl)
+ ADD_DEPENDENCIES(${testProg} yajl)
ENDFOREACH()
And see if it helps ?
Note: this is only fixing the dependency of the gen-extra-close test
program against the yajl library. Probably other ADD_DEPENDENCIES()
invocations need to be added.
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] yajl: disable parallel build
2016-03-31 19:14 ` Thomas Petazzoni
@ 2016-04-01 18:38 ` Jörg Krause
0 siblings, 0 replies; 3+ messages in thread
From: Jörg Krause @ 2016-04-01 18:38 UTC (permalink / raw)
To: buildroot
Dear Thomas,
On Do, 2016-03-31 at 21:14 +0200, Thomas Petazzoni wrote:
> Hello,
>
> On Thu, 31 Mar 2016 21:01:01 +0200, J?rg Krause wrote:
> >
> > The yajl build system contains a race condition, which gets
> > triggered by
> > high BR2_JLEVEL settings - It tries to link the executable gen-
> > extra-close
> > against libyajl before it is created:
> >
> > [ 21%] Linking C executable gen-extra-close
> > [ 26%] Building C object src/CMakeFiles/yajl_s.dir/yajl_buf.c.o
> > /home/test/autobuild/instance-3/output/host/opt/ext-toolchain/bfin-
> > uclinux/bfin-uclinux/bin/ld.real: cannot find -lyajl
> >
> > Fix it by disabling parallel build.
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/a9b/a9b5209377acb51e69f376e0
> > c008ee71fe00397a/
> > http://autobuild.buildroot.net/results/55f/55fe22463d49addb42b635d1
> > 0be5176522f4a561/
> > http://autobuild.buildroot.net/results/808/808acca0cfed93465845c2aa
> > 055a7a4fc56a8a17/
> > http://autobuild.buildroot.net/results/b92/b92a9c84b71a8a2d022d3072
> > 45ca6be36a000e6c/
> > http://autobuild.buildroot.net/results/55d/55df698ab53f7d94235166e8
> > 576eb681ed68668e/
> > .. and more.
> >
> > Signed-off-by: J?rg Krause <joerg.krause@embedded.rocks>
> yajl is using a reasonable build system, so there should be a
> reasonable way of getting parallel build to work.
>
> Can you try the following patch:
>
> diff --git a/test/api/CMakeLists.txt b/test/api/CMakeLists.txt
> index cd65a54..f7b6be1 100644
> --- a/test/api/CMakeLists.txt
> +++ b/test/api/CMakeLists.txt
> @@ -22,4 +22,5 @@ FOREACH (test ${TESTS})
> ???GET_FILENAME_COMPONENT(testProg ${test} NAME_WE)
> ???ADD_EXECUTABLE(${testProg} ${test})
> ???TARGET_LINK_LIBRARIES(${testProg} yajl)
> +??ADD_DEPENDENCIES(${testProg} yajl)
> ?ENDFOREACH()
>
> And see if it helps ?
>
> Note: this is only fixing the dependency of the gen-extra-close test
> program against the yajl library. Probably other ADD_DEPENDENCIES()
> invocations need to be added.
This was my first try and it did not work. However, after having a
closer look the dependency is yajl_s.
I'll sent a v2 for this. Many thanks for looking into this!
J?rg
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-04-01 18:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-31 19:01 [Buildroot] [PATCH] yajl: disable parallel build Jörg Krause
2016-03-31 19:14 ` Thomas Petazzoni
2016-04-01 18:38 ` Jörg Krause
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox