[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