Skip to contentSkip to conversation

boost: disable locale and regex modules if static build and icu are enabled

PATCH New yegorslists at googlemail.com 2 participants 2 messages May 10, 2017 – May 11, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 boost: disable locale and regex modules if static build and icu are enabled

From: Yegor Yefremov <[email protected]>

Boost build system doesn't support ICU static only building [1], so so disable locale and regex modules for this case.

[1] http://boost.2283326.n4.nabble.com/bjam-Building-Regex-with-static-runtime-linking-td2588874.html

Fixes:
http://autobuild.buildroot.net/results/436/436f6173bb29a945abc75899a6b74e1266362fc9

---
 package/boost/Config.in | 4 ++++
 1 file changed, 4 insertions(+)
package/boost/Config.in +4 -0
index 9825c09..76efe3b 100644
@@ -98,6 +98,8 @@ config BR2_PACKAGE_BOOST_IOSTREAMS
 
 config BR2_PACKAGE_BOOST_LOCALE
 	bool "boost-locale"
+	# Boost build system doesn't support ICU static only building
+	depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 
 config BR2_PACKAGE_BOOST_LOG
@@ -134,6 +136,8 @@ config BR2_PACKAGE_BOOST_RANDOM
 
 config BR2_PACKAGE_BOOST_REGEX
 	bool "boost-regex"
+	# Boost build system doesn't support ICU static only building
+	depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
 
 config BR2_PACKAGE_BOOST_SERIALIZATION
 	bool "boost-serialization"
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 boost: disable locale and regex modules if static build and icu are enabled

Hello,

Quoted 6 lines · yegorslists at googlemail.com

From: Yegor Yefremov <[email protected]>

Boost build system doesn't support ICU static only building [1], so so disable locale and regex modules for this case.

[1] http://boost.2283326.n4.nabble.com/bjam-Building-Regex-with-static-runtime-linking-td2588874.html

This thread doesn't really say it doesn't support ICU static linking. I found https://svn.boost.org/trac/boost/ticket/9685 to be somewhat more informative.

package/boost/Config.in config BR2_PACKAGE_BOOST_RANDOM · line 140

Quoted 13 lines

config BR2_PACKAGE_BOOST_LOCALE

package/boost/Config.in +4 -0
 	bool "boost-locale"
+	# Boost build system doesn't support ICU static only building
+	depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 
 config BR2_PACKAGE_BOOST_LOG
@@ -134,6 +136,8 @@ config BR2_PACKAGE_BOOST_RANDOM
 
 config BR2_PACKAGE_BOOST_REGEX
 	bool "boost-regex"
+	# Boost build system doesn't support ICU static only building
+	depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)

Is this the right way? Wouldn't it be better to do:

ifeq ($(BR2_PACKAGE_ICU):$(BR2_STATIC_LIBS),y:)
BOOST_FLAGS += --with-icu=$(STAGING_DIR)/usr
BOOST_DEPENDENCIES += icu
else
BOOST_FLAGS += --without-icu
endif

My understanding is that it's not Boost::Locale and Boost::Regex that have a problem, but the fact of using ICU in a static linking situation. If that's the case, then I believe tweaking the .mk file to not use ICU in static linking scenarios is probably better.

What do you think? Could you test this?

Thanks a lot!

Thomas

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