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>
This commit is contained in:
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 help
binutils 2.35 has been removed, use a newer version. 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 config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED
bool "boost versioned layout removed" bool "boost versioned layout removed"
select BR2_LEGACY select BR2_LEGACY

View File

@@ -16,33 +16,6 @@ config BR2_PACKAGE_BOOST
if 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 config BR2_PACKAGE_BOOST_ATOMIC
bool "boost-atomic" bool "boost-atomic"
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS

View File

@@ -76,7 +76,9 @@ BOOST_DEPENDENCIES += python3
endif endif
HOST_BOOST_OPTS += --no-cmake-config toolset=gcc threading=multi \ 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) ifeq ($(BR2_MIPS_OABI32),y)
BOOST_ABI = o32 BOOST_ABI = o32
@@ -90,7 +92,12 @@ BOOST_OPTS += --no-cmake-config \
toolset=gcc \ toolset=gcc \
threading=multi \ threading=multi \
abi=$(BOOST_ABI) \ 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) ifeq ($(BR2_sparc64),y)
BOOST_OPTS += architecture=sparc instruction-set=ultrasparc BOOST_OPTS += architecture=sparc instruction-set=ultrasparc
@@ -119,43 +126,29 @@ endif
BOOST_WITHOUT_FLAGS_COMMASEPARATED += $(subst $(space),$(comma),$(strip $(BOOST_WITHOUT_FLAGS))) 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_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? # how verbose should the build be?
BOOST_OPTS += $(if $(QUIET),-d,-d+1) BOOST_OPTS += $(if $(QUIET),-d,-d+1)
HOST_BOOST_OPTS += $(if $(QUIET),-d,-d+1) HOST_BOOST_OPTS += $(if $(QUIET),-d,-d+1)
define BOOST_CONFIGURE_CMDS 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 "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 sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam
endef endef
define BOOST_BUILD_CMDS define BOOST_BUILD_CMDS
(cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS)
--user-config=$(@D)/user-config.jam \
$(BOOST_OPTS) \
--ignore-site-config \
--layout=$(BOOST_LAYOUT))
endef endef
define BOOST_INSTALL_TARGET_CMDS define BOOST_INSTALL_TARGET_CMDS
(cd $(@D) && $(TARGET_MAKE_ENV) ./b2 -j$(PARALLEL_JOBS) -q \ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
--user-config=$(@D)/user-config.jam \ --prefix=$(TARGET_DIR)/usr install
$(BOOST_OPTS) \
--prefix=$(TARGET_DIR)/usr \
--ignore-site-config \
--layout=$(BOOST_LAYOUT) install )
endef endef
define BOOST_INSTALL_STAGING_CMDS define BOOST_INSTALL_STAGING_CMDS
(cd $(@D) && $(TARGET_MAKE_ENV) ./tools/build/src/engine/bjam -j$(PARALLEL_JOBS) -q \ cd $(@D) && $(TARGET_MAKE_ENV) ./b2 $(BOOST_OPTS) \
--user-config=$(@D)/user-config.jam \ --prefix=$(STAGING_DIR)/usr install
$(BOOST_OPTS) \
--prefix=$(STAGING_DIR)/usr \
--ignore-site-config \
--layout=$(BOOST_LAYOUT) install)
endef endef
# These hooks will help us to detect missing select in Config.in # 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 BOOST_POST_INSTALL_TARGET_HOOKS += BOOST_CHECK_TARGET_LIBRARIES
define HOST_BOOST_CONFIGURE_CMDS 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 "using gcc : `$(HOST_CC) -dumpversion` : $(HOSTCXX) : <cxxflags>\"$(HOST_CXXFLAGS)\" <linkflags>\"$(HOST_LDFLAGS)\" ;" > $(@D)/user-config.jam
echo "" >> $(@D)/user-config.jam
endef endef
define HOST_BOOST_BUILD_CMDS define HOST_BOOST_BUILD_CMDS
(cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \ cd $(@D) && ./b2 $(HOST_BOOST_OPTS)
--user-config=$(@D)/user-config.jam \
$(HOST_BOOST_OPTS) \
--ignore-site-config \
--prefix=$(HOST_DIR) )
endef endef
define HOST_BOOST_INSTALL_CMDS define HOST_BOOST_INSTALL_CMDS
(cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q \ cd $(@D) && ./b2 $(HOST_BOOST_OPTS) install
--user-config=$(@D)/user-config.jam \
$(HOST_BOOST_OPTS) \
--prefix=$(HOST_DIR) \
--ignore-site-config \
--layout=$(BOOST_LAYOUT) install )
endef endef
$(eval $(generic-package)) $(eval $(generic-package))