Skip to contentSkip to conversation

libxmlrpc: fix static build

PATCH New Baruch Siach 3 participants 6 messages Jun 9, 2015 – Jun 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libxmlrpc: fix static build

Fixes:
http://autobuild.buildroot.net/results/16d/16de14ace7b4e089f56b9cb173542e487cae3a9d/

---
 package/libxmlrpc/libxmlrpc.mk | 10 ++++++++++
 1 file changed, 10 insertions(+)
package/libxmlrpc/libxmlrpc.mk +10 -0
index c3788d6c3f36..a6137e07b828 100644
@@ -35,4 +35,14 @@ LIBXMLRPC_MAKE_ENV = \
 	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
 	LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)"
 
+ifeq ($(BR2_STATIC_LIBS),y)
+LIBXMLRPC_STATIC_OPTS = SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N
+endif
+
+LIBXMLRPC_MAKE_OPTS = $(LIBXMLRPC_STATIC_OPTS)
+LIBXMLRPC_INSTALL_STAGING_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(STAGING_DIR) install
+LIBXMLRPC_INSTALL_TARGET_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(TARGET_DIR) install
+
 $(eval $(autotools-package))
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 libxmlrpc: fix static build

Dear Baruch Siach,

Quoted 17 lines · Baruch Siach

Fixes:
http://autobuild.buildroot.net/results/16d/16de14ace7b4e089f56b9cb173542e487cae3a9d/

---
 package/libxmlrpc/libxmlrpc.mk | 10 ++++++++++
 1 file changed, 10 insertions(+)
package/libxmlrpc/libxmlrpc.mk +1 -0
index c3788d6c3f36..a6137e07b828 100644
@@ -35,4 +35,14 @@ LIBXMLRPC_MAKE_ENV = \
 	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
 	LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)"
 
+ifeq ($(BR2_STATIC_LIBS),y)

package/libxmlrpc/libxmlrpc.mk LIBXMLRPC_MAKE_ENV = \ · line 48

Quoted 10 lines
package/libxmlrpc/libxmlrpc.mk +9 -0
+LIBXMLRPC_STATIC_OPTS = SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N
+endif
+
+LIBXMLRPC_MAKE_OPTS = $(LIBXMLRPC_STATIC_OPTS)
+LIBXMLRPC_INSTALL_STAGING_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(STAGING_DIR) install
+LIBXMLRPC_INSTALL_TARGET_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(TARGET_DIR) install
+
 $(eval $(autotools-package))

Can you try instead something like:

ifeq ($(BR2_STATIC_LIBS),y)
LIBXMLRPC_MAKE_ENV += SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N endif

The advantage is that LIBXMLRPC_MAKE_ENV is passed to the build, install staging and install target steps.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 libxmlrpc: fix static build

Hi Thomas,

Quoted 31 lines · Thomas Petazzoni
Quoted 17 lines · Baruch Siach

Fixes:
http://autobuild.buildroot.net/results/16d/16de14ace7b4e089f56b9cb173542e487cae3a9d/

---
 package/libxmlrpc/libxmlrpc.mk | 10 ++++++++++
 1 file changed, 10 insertions(+)
package/libxmlrpc/libxmlrpc.mk +1 -0
index c3788d6c3f36..a6137e07b828 100644
@@ -35,4 +35,14 @@ LIBXMLRPC_MAKE_ENV = \
 	CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
 	LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)"
 
+ifeq ($(BR2_STATIC_LIBS),y)

package/libxmlrpc/libxmlrpc.mk LIBXMLRPC_MAKE_ENV = \ · line 48

Quoted 10 lines
package/libxmlrpc/libxmlrpc.mk +9 -0
+LIBXMLRPC_STATIC_OPTS = SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N
+endif
+
+LIBXMLRPC_MAKE_OPTS = $(LIBXMLRPC_STATIC_OPTS)
+LIBXMLRPC_INSTALL_STAGING_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(STAGING_DIR) install
+LIBXMLRPC_INSTALL_TARGET_OPTS = $(LIBXMLRPC_STATIC_OPTS) \
+	DESTDIR=$(TARGET_DIR) install
+
 $(eval $(autotools-package))

Can you try instead something like:

Quoted 3 lines

ifeq ($(BR2_STATIC_LIBS),y)
LIBXMLRPC_MAKE_ENV += SHARED_LIB_TYPE=NONE MUST_BUILD_SHLIB=N endif

Unfortunately, these make variables are set explicitly in common.mk. So passing them in make environment has no effect.

Quoted 2 lines

The advantage is that LIBXMLRPC_MAKE_ENV is passed to the build, install staging and install target steps.

Now that I think about it, why don't we have a similar thing for MAKE_OPTS, say, $(PKG)_MAKE_VARS. Something like (untested, host packages missing):

package/pkg-autotools.mk +4 -4
index 1d694f0618fc..27ff16235f27 100644
@@ -154,10 +154,10 @@ endif
 $(2)_CONF_ENV			?=
 $(2)_CONF_OPTS			?=
 $(2)_MAKE_ENV			?=
-$(2)_MAKE_OPTS			?=
-$(2)_INSTALL_OPTS                ?= install
-$(2)_INSTALL_STAGING_OPTS	?= DESTDIR=$$(STAGING_DIR) install
-$(2)_INSTALL_TARGET_OPTS		?= DESTDIR=$$(TARGET_DIR)  install
+$(2)_MAKE_OPTS			?= $$($(2)_MAKE_VARS)
+$(2)_INSTALL_OPTS		?= $$($(2)_MAKE_VARS) install
+$(2)_INSTALL_STAGING_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(TARGET_DIR) install
 
 # This must be repeated from inner-generic-package, otherwise we get an empty
 # _DEPENDENCIES if _AUTORECONF is YES.  Also filter the result of _AUTORECONF

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#3 lore raw

PATCH 1/1 libxmlrpc: fix static build

Dear Baruch Siach,

Quoted 2 lines · Baruch Siach

Unfortunately, these make variables are set explicitly in common.mk. So passing them in make environment has no effect.

Argh, ok.

Quoted 9 lines

Now that I think about it, why don't we have a similar thing for MAKE_OPTS, say, $(PKG)_MAKE_VARS. Something like (untested, host packages missing):

package/pkg-autotools.mk +0 -0
index 1d694f0618fc..27ff16235f27 100644
@@ -154,10 +154,10 @@ endif
 $(2)_CONF_ENV			?=

package/pkg-autotools.mk endif · line 160

Quoted 10 lines
package/pkg-autotools.mk +4 -4
 $(2)_CONF_OPTS			?=
 $(2)_MAKE_ENV			?=
-$(2)_MAKE_OPTS			?=
-$(2)_INSTALL_OPTS                ?= install
-$(2)_INSTALL_STAGING_OPTS	?= DESTDIR=$$(STAGING_DIR) install
-$(2)_INSTALL_TARGET_OPTS		?= DESTDIR=$$(TARGET_DIR)  install
+$(2)_MAKE_OPTS			?= $$($(2)_MAKE_VARS)
+$(2)_INSTALL_OPTS		?= $$($(2)_MAKE_VARS) install
+$(2)_INSTALL_STAGING_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(TARGET_DIR) install

Why not. Though I'd be more convinced if there is some evidence that it would also be useful for other packages.

Or maybe we simply need to make $(2)_MAKE_OPTS used for both the build and install steps?

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 libxmlrpc: fix static build

Quoted 32 lines · Thomas Petazzoni

Dear Baruch Siach,

Quoted 2 lines · Baruch Siach

Unfortunately, these make variables are set explicitly in common.mk. So passing them in make environment has no effect.

Argh, ok.

Quoted 9 lines

Now that I think about it, why don't we have a similar thing for MAKE_OPTS, say, $(PKG)_MAKE_VARS. Something like (untested, host packages missing):

package/pkg-autotools.mk +0 -0
index 1d694f0618fc..27ff16235f27 100644
@@ -154,10 +154,10 @@ endif
 $(2)_CONF_ENV			?=

package/pkg-autotools.mk endif · line 160

Quoted 10 lines
package/pkg-autotools.mk +4 -4
 $(2)_CONF_OPTS			?=
 $(2)_MAKE_ENV			?=
-$(2)_MAKE_OPTS			?=
-$(2)_INSTALL_OPTS                ?= install
-$(2)_INSTALL_STAGING_OPTS	?= DESTDIR=$$(STAGING_DIR) install
-$(2)_INSTALL_TARGET_OPTS		?= DESTDIR=$$(TARGET_DIR)  install
+$(2)_MAKE_OPTS			?= $$($(2)_MAKE_VARS)
+$(2)_INSTALL_OPTS		?= $$($(2)_MAKE_VARS) install
+$(2)_INSTALL_STAGING_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(TARGET_DIR) install

Why not. Though I'd be more convinced if there is some evidence that it would also be useful for other packages.

Quoted 2 lines

Or maybe we simply need to make $(2)_MAKE_OPTS used for both the build and install steps?

Well, MAKE_OPTS includes the target that has to be built, so it can't just be
reused as is for _INSTALL. So Baruch's proposal makes more sense to me.

Regards,
Arnout

Quoted 5 lines

Best regards,

Thomas

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#5 lore raw

PATCH 1/1 libxmlrpc: fix static build

In reply to Thomas Petazzoni

Hi Thomas,

Quoted 20 lines · Thomas Petazzoni
Quoted 2 lines · Baruch Siach

Unfortunately, these make variables are set explicitly in common.mk. So passing them in make environment has no effect.

Argh, ok.

Quoted 14 lines

Now that I think about it, why don't we have a similar thing for MAKE_OPTS, say, $(PKG)_MAKE_VARS. Something like (untested, host packages missing):

package/pkg-autotools.mk +0 -3
index 1d694f0618fc..27ff16235f27 100644
@@ -154,10 +154,10 @@ endif
 $(2)_CONF_ENV			?=
 $(2)_CONF_OPTS			?=
 $(2)_MAKE_ENV			?=
-$(2)_MAKE_OPTS			?=
-$(2)_INSTALL_OPTS                ?= install
-$(2)_INSTALL_STAGING_OPTS	?= DESTDIR=$$(STAGING_DIR) install
Quoted 8 lines

package/pkg-autotools.mk endif · line 160

Quoted 5 lines
package/pkg-autotools.mk +4 -1
-$(2)_INSTALL_TARGET_OPTS		?= DESTDIR=$$(TARGET_DIR)  install
+$(2)_MAKE_OPTS			?= $$($(2)_MAKE_VARS)
+$(2)_INSTALL_OPTS		?= $$($(2)_MAKE_VARS) install
+$(2)_INSTALL_STAGING_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPTS	?= $$($(2)_MAKE_VARS) DESTDIR=$$(TARGET_DIR) install

Why not. Though I'd be more convinced if there is some evidence that it would also be useful for other packages.

I looked around and I found a few more packages that might benefit from _MAKE_VARS. But I thing the gain is not enough to worth the trouble. Adding $(2)_MAKE_VARS might also lead to confusion when a user sets both _MAKE_VARS and one or more other _OPTS, thus silently overriding _MAKE_VARS in a way that is not apparent to the reader.

So, I suggest to just apply the original patch.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -