Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] collectd: fix parallel build issues
@ 2015-07-06 13:12 Gustavo Zacarias
  2015-07-06 13:22 ` Thomas Petazzoni
  2015-07-06 13:48 ` Thomas Petazzoni
  0 siblings, 2 replies; 6+ messages in thread
From: Gustavo Zacarias @ 2015-07-06 13:12 UTC (permalink / raw)
  To: buildroot

For version 5.5.x a reorganization was made and some common funtionality
was moved to libraries, however proper dependency accounting isn't
handled in the Makefile thus causing build breakage on some parallel
builds. Fixes:
http://autobuild.buildroot.net/results/a5e/a5e6891e9ea66ac8216d3302da3702770ef7247b/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 ...-libavltree-libcommon-libheap-dependencies.patch | 21 +++++++++++++++++++++
 package/collectd/collectd.mk                        |  2 ++
 2 files changed, 23 insertions(+)
 create mode 100644 package/collectd/0001-build-add-libavltree-libcommon-libheap-dependencies.patch

diff --git a/package/collectd/0001-build-add-libavltree-libcommon-libheap-dependencies.patch b/package/collectd/0001-build-add-libavltree-libcommon-libheap-dependencies.patch
new file mode 100644
index 0000000..1ee1e7c
--- /dev/null
+++ b/package/collectd/0001-build-add-libavltree-libcommon-libheap-dependencies.patch
@@ -0,0 +1,21 @@
+build: add libavltree, libcommon & libheap dependencies
+
+Otherwise it can break on very parallel builds since collectd link time
+arrives before one or more of these were built.
+
+Status: requested github pull (patch slightly different for newer rev).
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura collectd-5.5.0.orig/src/daemon/Makefile.am collectd-5.5.0/src/daemon/Makefile.am
+--- collectd-5.5.0.orig/src/daemon/Makefile.am	2015-07-06 10:01:17.820506239 -0300
++++ collectd-5.5.0/src/daemon/Makefile.am	2015-07-06 10:02:03.364054763 -0300
+@@ -49,7 +49,7 @@
+ collectd_CFLAGS = $(AM_CFLAGS)
+ collectd_LDFLAGS = -export-dynamic
+ collectd_LDADD = libavltree.la libcommon.la libheap.la -lm
+-collectd_DEPENDENCIES =
++collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la
+ 
+ # Link to these libraries..
+ if BUILD_WITH_LIBRT
diff --git a/package/collectd/collectd.mk b/package/collectd/collectd.mk
index 7649f72..6e1ea5c 100644
--- a/package/collectd/collectd.mk
+++ b/package/collectd/collectd.mk
@@ -11,6 +11,8 @@ COLLECTD_CONF_ENV = ac_cv_lib_yajl_yajl_alloc=yes
 COLLECTD_INSTALL_STAGING = YES
 COLLECTD_LICENSE = GPLv2 LGPLv2.1
 COLLECTD_LICENSE_FILES = COPYING
+# For 0001-build-add-libavltree-libcommon-libheap-dependencies.patch
+COLLECTD_AUTORECONF = YES
 
 # These require unmet dependencies, are fringe, pointless or deprecated
 COLLECTD_PLUGINS_DISABLE = \
-- 
2.3.6

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] collectd: fix parallel build issues
  2015-07-06 13:12 [Buildroot] [PATCH] collectd: fix parallel build issues Gustavo Zacarias
@ 2015-07-06 13:22 ` Thomas Petazzoni
  2015-07-06 13:33   ` Gustavo Zacarias
  2015-07-06 13:48 ` Thomas Petazzoni
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-07-06 13:22 UTC (permalink / raw)
  To: buildroot

Dear Gustavo Zacarias,

On Mon,  6 Jul 2015 10:12:23 -0300, Gustavo Zacarias wrote:

> +diff -Nura collectd-5.5.0.orig/src/daemon/Makefile.am collectd-5.5.0/src/daemon/Makefile.am
> +--- collectd-5.5.0.orig/src/daemon/Makefile.am	2015-07-06 10:01:17.820506239 -0300
> ++++ collectd-5.5.0/src/daemon/Makefile.am	2015-07-06 10:02:03.364054763 -0300
> +@@ -49,7 +49,7 @@
> + collectd_CFLAGS = $(AM_CFLAGS)
> + collectd_LDFLAGS = -export-dynamic
> + collectd_LDADD = libavltree.la libcommon.la libheap.la -lm
> +-collectd_DEPENDENCIES =
> ++collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la

Can you try instead to get rid of the empty collectd_DEPENDENCIES
definition? Because when undefined foo_DEPENDENCIES automatically
contains the contents of foo_LDADD.

From
http://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html:

"""
If _DEPENDENCIES is not supplied, it is computed by Automake. The
automatically-assigned value is the contents of _LDADD or _LIBADD, with
most configure substitutions, -l, -L, -dlopen and -dlpreopen options
removed. The configure substitutions that are left in are only
?$(LIBOBJS)? and ?$(ALLOCA)?; these are left because it is known that
they will not cause an invalid value for _DEPENDENCIES to be generated.
"""

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] collectd: fix parallel build issues
  2015-07-06 13:22 ` Thomas Petazzoni
@ 2015-07-06 13:33   ` Gustavo Zacarias
  2015-07-06 13:38     ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Gustavo Zacarias @ 2015-07-06 13:33 UTC (permalink / raw)
  To: buildroot



On 06/07/15 10:22, Thomas Petazzoni wrote:

> Dear Gustavo Zacarias,
>
> On Mon,  6 Jul 2015 10:12:23 -0300, Gustavo Zacarias wrote:
>
>> +diff -Nura collectd-5.5.0.orig/src/daemon/Makefile.am collectd-5.5.0/src/daemon/Makefile.am
>> +--- collectd-5.5.0.orig/src/daemon/Makefile.am	2015-07-06 10:01:17.820506239 -0300
>> ++++ collectd-5.5.0/src/daemon/Makefile.am	2015-07-06 10:02:03.364054763 -0300
>> +@@ -49,7 +49,7 @@
>> + collectd_CFLAGS = $(AM_CFLAGS)
>> + collectd_LDFLAGS = -export-dynamic
>> + collectd_LDADD = libavltree.la libcommon.la libheap.la -lm
>> +-collectd_DEPENDENCIES =
>> ++collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la
>
> Can you try instead to get rid of the empty collectd_DEPENDENCIES
> definition? Because when undefined foo_DEPENDENCIES automatically
> contains the contents of foo_LDADD.
>
> From
> http://www.gnu.org/software/automake/manual/html_node/Program-and-Library-Variables.html:
>
> """
> If _DEPENDENCIES is not supplied, it is computed by Automake. The
> automatically-assigned value is the contents of _LDADD or _LIBADD, with
> most configure substitutions, -l, -L, -dlopen and -dlpreopen options
> removed. The configure substitutions that are left in are only
> ?$(LIBOBJS)? and ?$(ALLOCA)?; these are left because it is known that
> they will not cause an invalid value for _DEPENDENCIES to be generated.
> """
>
> Best regards,

Hi.
That won't work in this case since it's added upon later (if 
BUILD_WITH_OWN_LIBOCONFIG ... ).
Regards.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] collectd: fix parallel build issues
  2015-07-06 13:33   ` Gustavo Zacarias
@ 2015-07-06 13:38     ` Thomas Petazzoni
  2015-07-06 13:43       ` Gustavo Zacarias
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-07-06 13:38 UTC (permalink / raw)
  To: buildroot

Dear Gustavo Zacarias,

On Mon, 06 Jul 2015 10:33:40 -0300, Gustavo Zacarias wrote:

> > """
> > If _DEPENDENCIES is not supplied, it is computed by Automake. The
> > automatically-assigned value is the contents of _LDADD or _LIBADD, with
> > most configure substitutions, -l, -L, -dlopen and -dlpreopen options
> > removed. The configure substitutions that are left in are only
> > ?$(LIBOBJS)? and ?$(ALLOCA)?; these are left because it is known that
> > they will not cause an invalid value for _DEPENDENCIES to be generated.
> > """
> >
> > Best regards,
> 
> Hi.
> That won't work in this case since it's added upon later (if 
> BUILD_WITH_OWN_LIBOCONFIG ... ).

That same addition should be useless I believe:

collectd_LDADD += $(LIBLTDL) $(top_builddir)/src/liboconfig/liboconfig.la
collectd_DEPENDENCIES += $(top_builddir)/src/liboconfig/liboconfig.la

So LDADD already contains $(top_builddir)/src/liboconfig/liboconfig.la,
and LIBLTDL will be -lltdl, which will be ignored for foo_DEPENDENCIES.

But oh, well, maybe you don't want to fix the entire collectd build system :-)

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] collectd: fix parallel build issues
  2015-07-06 13:38     ` Thomas Petazzoni
@ 2015-07-06 13:43       ` Gustavo Zacarias
  0 siblings, 0 replies; 6+ messages in thread
From: Gustavo Zacarias @ 2015-07-06 13:43 UTC (permalink / raw)
  To: buildroot



On 06/07/15 10:38, Thomas Petazzoni wrote:

> That same addition should be useless I believe:
>
> collectd_LDADD += $(LIBLTDL) $(top_builddir)/src/liboconfig/liboconfig.la
> collectd_DEPENDENCIES += $(top_builddir)/src/liboconfig/liboconfig.la
>
> So LDADD already contains $(top_builddir)/src/liboconfig/liboconfig.la,
> and LIBLTDL will be -lltdl, which will be ignored for foo_DEPENDENCIES.
>
> But oh, well, maybe you don't want to fix the entire collectd build system :-)

In theory it should, but yes i didn't go on a rampage about it since 
they seem to want automatic dependencies but aren't consistent about it.
Let's see what upstream says/applies.
Regards.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH] collectd: fix parallel build issues
  2015-07-06 13:12 [Buildroot] [PATCH] collectd: fix parallel build issues Gustavo Zacarias
  2015-07-06 13:22 ` Thomas Petazzoni
@ 2015-07-06 13:48 ` Thomas Petazzoni
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-07-06 13:48 UTC (permalink / raw)
  To: buildroot

Dear Gustavo Zacarias,

On Mon,  6 Jul 2015 10:12:23 -0300, Gustavo Zacarias wrote:
> For version 5.5.x a reorganization was made and some common funtionality
> was moved to libraries, however proper dependency accounting isn't
> handled in the Makefile thus causing build breakage on some parallel
> builds. Fixes:
> http://autobuild.buildroot.net/results/a5e/a5e6891e9ea66ac8216d3302da3702770ef7247b/
> 
> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> ---
>  ...-libavltree-libcommon-libheap-dependencies.patch | 21 +++++++++++++++++++++
>  package/collectd/collectd.mk                        |  2 ++
>  2 files changed, 23 insertions(+)
>  create mode 100644 package/collectd/0001-build-add-libavltree-libcommon-libheap-dependencies.patch

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-07-06 13:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-06 13:12 [Buildroot] [PATCH] collectd: fix parallel build issues Gustavo Zacarias
2015-07-06 13:22 ` Thomas Petazzoni
2015-07-06 13:33   ` Gustavo Zacarias
2015-07-06 13:38     ` Thomas Petazzoni
2015-07-06 13:43       ` Gustavo Zacarias
2015-07-06 13:48 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox