[Buildroot] [PATCH 1/1] package/boost: drop tagged layout
Fabrice Fontaine
fontaine.fabrice at gmail.com
Wed Apr 20 12:12:02 UTC 2022
Drop boost tagged layout which raises the following build failure with
botan or libcpprestsdk:
/nvmedata/autobuild/instance-31/output-1/host/opt/ext-toolchain/bin/../lib/gcc/m68k-buildroot-linux-uclibc/11.2.0/../../../../m68k-buildroot-linux-uclibc/bin/ld: cannot find -lboost_system
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: random system thread filesystem chrono
atomic date_time regex) (found version "1.78.0")
While at it:
- drop BR2_PACKAGE_BOOST_LAYOUT and BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
- move --layout=system, --ignore-site-config,
--user-config=$(@D)/user-config.jam, -j$(PARALLEL_JOBS), -q and
--prefix=$(HOST_DIR) to BOOST_OPTS and HOST_BOOST_OPTS
- drop parentheses to avoid spawning a useless sub-shell
- use b2 everywhere instead of mixing b2 and
tools/build/src/engine/bjam
- drop uneeded 'echo "" >> $(@D)/user-config.jam'
Fixes:
- http://autobuild.buildroot.org/results/f237c9345faf8c28f3c73f7d8acb49271fe61780
- http://autobuild.buildroot.org/results/a73225e40fa29bc3b24f36a86719e80c8e469d1f
Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
---
Config.in.legacy | 13 ++++++++++
package/boost/Config.in | 27 ---------------------
package/boost/boost.mk | 53 ++++++++++++++---------------------------
3 files changed, 31 insertions(+), 62 deletions(-)
diff --git a/Config.in.legacy b/Config.in.legacy
index 27f19f14e7..a4811831f3 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,19 @@ endif
comment "Legacy options removed in 2022.05"
+config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
+ bool "boost system layout removed"
+ select BR2_LEGACY
+ help
+ Boost system layout is now the only supported layout.
+
+config BR2_PACKAGE_BOOST_LAYOUT_TAGGED
+ bool "boost tagged layout removed"
+ select BR2_LEGACY
+ help
+ Boost tagged layout isn't handled by some packages (e.g. botan
+ or libcpprestsdk).
+
config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
bool "boost versioned layout removed"
select BR2_LEGACY
diff --git a/package/boost/Config.in b/package/boost/Config.in
index 9e96be7878..b99b01f22e 100644
--- a/package/boost/Config.in
+++ b/package/boost/Config.in
@@ -16,33 +16,6 @@ config BR2_PACKAGE_BOOST
if BR2_PACKAGE_BOOST
-choice
- prompt "Layout"
- default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
- help
- Selects the layout of Boost binary names
-
-config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
- bool "system"
- help
- Boost binary names do not include the Boost version number
- or the name and version number of the compiler.
-
-config BR2_PACKAGE_BOOST_LAYOUT_TAGGED
- bool "tagged"
- help
- Boost binary names include the encoded build properties such
- as variant and threading, but do not include compiler name
- and version, or Boost version. This option is useful if you
- build several variants of Boost, using the same compiler.
-
-endchoice
-
-config BR2_PACKAGE_BOOST_LAYOUT
- string
- default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM
- default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED
-
config BR2_PACKAGE_BOOST_ATOMIC
bool "boost-atomic"
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
diff --git a/package/boost/boost.mk b/package/boost/boost.mk
index 032ba5c820..346d309777 100644
--- a/package/boost/boost.mk
+++ b/package/boost/boost.mk
@@ -76,7 +76,9 @@ BOOST_DEPENDENCIES += python3
endif
HOST_BOOST_OPTS += --no-cmake-config toolset=gcc threading=multi \
- variant=release link=shared runtime-link=shared
+ variant=release link=shared runtime-link=shared -j$(PARALLEL_JOBS) -q \
+ --ignore-site-config --layout=system --prefix=$(HOST_DIR) \
+ --user-config=$(@D)/user-config.jam
ifeq ($(BR2_MIPS_OABI32),y)
BOOST_ABI = o32
@@ -90,7 +92,12 @@ BOOST_OPTS += --no-cmake-config \
toolset=gcc \
threading=multi \
abi=$(BOOST_ABI) \
- variant=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release)
+ variant=$(if $(BR2_ENABLE_RUNTIME_DEBUG),debug,release) \
+ -j$(PARALLEL_JOBS) \
+ -q \
+ --ignore-site-config \
+ --layout=system \
+ --user-config=$(@D)/user-config.jam
ifeq ($(BR2_sparc64),y)
BOOST_OPTS += architecture=sparc instruction-set=ultrasparc
@@ -119,43 +126,29 @@ endif
BOOST_WITHOUT_FLAGS_COMMASEPARATED += $(subst $(space),$(comma),$(strip $(BOOST_WITHOUT_FLAGS)))
BOOST_FLAGS += $(if $(BOOST_WITHOUT_FLAGS_COMMASEPARATED), --without-libraries=$(BOOST_WITHOUT_FLAGS_COMMASEPARATED))
-BOOST_LAYOUT = $(call qstrip, $(BR2_PACKAGE_BOOST_LAYOUT))
# how verbose should the build be?
BOOST_OPTS += $(if $(QUIET),-d,-d+1)
HOST_BOOST_OPTS += $(if $(QUIET),-d,-d+1)
define BOOST_CONFIGURE_CMDS
- (cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS))
+ cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS)
echo "using gcc : `$(TARGET_CC) -dumpversion` : $(TARGET_CXX) : <cxxflags>\"$(BOOST_TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > $(@D)/user-config.jam
- echo "" >> $(@D)/user-config.jam
sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam
endef
define BOOST_BUILD_CMDS
- (cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \
- --user-config=$(@D)/user-config.jam \
- $(BOOST_OPTS) \
- --ignore-site-config \
- --layout=$(BOOST_LAYOUT))
+ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS)
endef
define BOOST_INSTALL_TARGET_CMDS
- (cd $(@D) && $(TARGET_MAKE_ENV) ./b2 -j$(PARALLEL_JOBS) -q \
- --user-config=$(@D)/user-config.jam \
- $(BOOST_OPTS) \
- --prefix=$(TARGET_DIR)/usr \
- --ignore-site-config \
- --layout=$(BOOST_LAYOUT) install )
+ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
+ --prefix=$(TARGET_DIR)/usr install
endef
define BOOST_INSTALL_STAGING_CMDS
- (cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \
- --user-config=$(@D)/user-config.jam \
- $(BOOST_OPTS) \
- --prefix=$(STAGING_DIR)/usr \
- --ignore-site-config \
- --layout=$(BOOST_LAYOUT) install)
+ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
+ --prefix=$(STAGING_DIR)/usr install
endef
# These hooks will help us to detect missing select in Config.in
@@ -177,26 +170,16 @@ endef
BOOST_POST_INSTALL_TARGET_HOOKS += BOOST_CHECK_TARGET_LIBRARIES
define HOST_BOOST_CONFIGURE_CMDS
- (cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS))
+ cd $(@D) && ./bootstrap.sh $(HOST_BOOST_FLAGS)
echo "using gcc : `$(HOST_CC) -dumpversion` : $(HOSTCXX) : <cxxflags>\"$(HOST_CXXFLAGS)\" <linkflags>\"$(HOST_LDFLAGS)\" ;" > $(@D)/user-config.jam
- echo "" >> $(@D)/user-config.jam
endef
define HOST_BOOST_BUILD_CMDS
- (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \
- --user-config=$(@D)/user-config.jam \
- $(HOST_BOOST_OPTS) \
- --ignore-site-config \
- --prefix=$(HOST_DIR) )
+ cd $(@D) && ./b2 $(HOST_BOOST_OPTS)
endef
define HOST_BOOST_INSTALL_CMDS
- (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \
- --user-config=$(@D)/user-config.jam \
- $(HOST_BOOST_OPTS) \
- --prefix=$(HOST_DIR) \
- --ignore-site-config \
- --layout=$(BOOST_LAYOUT) install )
+ cd $(@D) && ./b2 $(HOST_BOOST_OPTS) install
endef
$(eval $(generic-package))
--
2.35.1
More information about the buildroot
mailing list