package/boost: drop tagged layout

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'

BR2_PACKAGE_BOOST_LAYOUT_SYSTEM is not added to Config.in.legacy since
nothing changes for configs which already had it selected.

Fixes:
 - http://autobuild.buildroot.org/results/f237c9345faf8c28f3c73f7d8acb49271fe61780
 - http://autobuild.buildroot.org/results/a73225e40fa29bc3b24f36a86719e80c8e469d1f

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Arnout: don't add BR2_PACKAGE_BOOST_LAYOUT_SYSTEM to Config.in.legacy]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022.05.x
Fabrice Fontaine 2022-04-20 14:12:02 +02:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 7d211f6701
commit fc68bcf9b5
3 changed files with 25 additions and 62 deletions

View File

@ -152,6 +152,13 @@ config BR2_BINUTILS_VERSION_2_35_X
help
binutils 2.35 has been removed, use a newer version.
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

View File

@ -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

View File

@ -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))