Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] open-plc-utils: fix build with static musl
@ 2018-10-09 19:21 Fabrice Fontaine
  2018-10-11  8:12 ` Thomas Petazzoni
  0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2018-10-09 19:21 UTC (permalink / raw)
  To: buildroot

Pass -static to EXTRA_LDFLAGS to fix following issue:
/home/buildroot/autobuild/run/instance-3/output/build/host-gcc-final-7.3.0/build/arm-buildroot-linux-musleabihf/libgcc/../../../libgcc/config/arm/lib1funcs.S:1545: undefined reference to `raise'

Move EXTRA_CFLAGS and this new variable to OPEN_PLC_UTILS_MAKE_OPTS for
readability

Fixes:
 - http://autobuild.buildroot.org/results/67bc5e7ac8ae1c49c035b022a394d2f746705cf2

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/open-plc-utils/open-plc-utils.mk | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/package/open-plc-utils/open-plc-utils.mk b/package/open-plc-utils/open-plc-utils.mk
index d45bb9d4f5..1b2e4431b2 100644
--- a/package/open-plc-utils/open-plc-utils.mk
+++ b/package/open-plc-utils/open-plc-utils.mk
@@ -15,8 +15,15 @@ OPEN_PLC_UTILS_LICENSE_FILES = LICENSE
 # Yes, we're passing __UCLIBC__ in EXTRA_CFLAGS, as it fixes a build
 # issue for non-uClibc toolchains. It is the very crappy solution
 # suggested at https://github.com/qca/open-plc-utils/issues/36.
+OPEN_PLC_UTILS_MAKE_OPTS = EXTRA_CFLAGS="-D__UCLIBC__"
+
+ifeq ($(BR2_STATIC_LIBS),y)
+OPEN_PLC_UTILS_MAKE_OPTS += EXTRA_LDFLAGS=-static
+endif
+
 define OPEN_PLC_UTILS_BUILD_CMDS
-	$(TARGET_MAKE_ENV) $(MAKE) CROSS=$(TARGET_CROSS) EXTRA_CFLAGS="-D__UCLIBC__" -C $(@D)
+	$(TARGET_MAKE_ENV) $(MAKE) CROSS=$(TARGET_CROSS) \
+		$(OPEN_PLC_UTILS_MAKE_OPTS) -C $(@D)
 endef
 
 define OPEN_PLC_UTILS_INSTALL_TARGET_CMDS
-- 
2.17.1

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

* [Buildroot] [PATCH 1/1] open-plc-utils: fix build with static musl
  2018-10-09 19:21 [Buildroot] [PATCH 1/1] open-plc-utils: fix build with static musl Fabrice Fontaine
@ 2018-10-11  8:12 ` Thomas Petazzoni
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni @ 2018-10-11  8:12 UTC (permalink / raw)
  To: buildroot

Hello Fabrice,

On Tue,  9 Oct 2018 21:21:02 +0200, Fabrice Fontaine wrote:
> Pass -static to EXTRA_LDFLAGS to fix following issue:
> /home/buildroot/autobuild/run/instance-3/output/build/host-gcc-final-7.3.0/build/arm-buildroot-linux-musleabihf/libgcc/../../../libgcc/config/arm/lib1funcs.S:1545: undefined reference to `raise'
> 
> Move EXTRA_CFLAGS and this new variable to OPEN_PLC_UTILS_MAKE_OPTS for
> readability
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/67bc5e7ac8ae1c49c035b022a394d2f746705cf2
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Thanks for investigating this, however, I believe we need a better fix.

> +OPEN_PLC_UTILS_MAKE_OPTS = EXTRA_CFLAGS="-D__UCLIBC__"
> +
> +ifeq ($(BR2_STATIC_LIBS),y)
> +OPEN_PLC_UTILS_MAKE_OPTS += EXTRA_LDFLAGS=-static
> +endif

The crux of the matter is that open-plc-utils defines its own
CFLAGS/LDFLAGS/CXXFLAGS, without obeying to the ones passed in the
environment. -static is already in TARGET_LDFLAGS when
BR2_STATIC_LIBS=y, so there's no need to repeat this condition.

So, I would suggest to do this instead:

# blabla keep comment about __UCLIBC__
OPEN_PLC_UTILS_MAKE_OPTS = \
	EXTRA_CFLAGS="$(TARGET_CFLAGS) -D__UCLIBC__" \
	EXTRA_CXXFLAGS="$(TARGET_CXXFLAGS)" \
	EXTRA_LDFLAGS="$(TARGET_LDFLAGS)"

This should fix the static linking issue, but also more generally
ensure that our flags are taken into account during the build.

Could you check if this works better, and if it does, send an updated
version of the patch?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

end of thread, other threads:[~2018-10-11  8:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-09 19:21 [Buildroot] [PATCH 1/1] open-plc-utils: fix build with static musl Fabrice Fontaine
2018-10-11  8:12 ` Thomas Petazzoni

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