All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/boost: drop tagged layout
@ 2022-04-20 12:12 Fabrice Fontaine
  2022-04-23 15:38 ` Arnout Vandecappelle
  0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2022-04-20 12:12 UTC (permalink / raw)
  To: buildroot; +Cc: Fabrice Fontaine

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

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/boost: drop tagged layout
  2022-04-20 12:12 [Buildroot] [PATCH 1/1] package/boost: drop tagged layout Fabrice Fontaine
@ 2022-04-23 15:38 ` Arnout Vandecappelle
  0 siblings, 0 replies; 2+ messages in thread
From: Arnout Vandecappelle @ 2022-04-23 15:38 UTC (permalink / raw)
  To: Fabrice Fontaine, buildroot



On 20/04/2022 14:12, Fabrice Fontaine wrote:
> 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@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.

  I didn't include this. Indeed, nothing changes if you already had this 
selected. The purpose of Config.in.legacy is to make it easier for people to 
migrate if Config.in options change. If an option is renamed, then we 
automatically "convert" the old config to the old config. If an option is plain 
removed, we can warn the user that it no longer applies. But if an option just 
becomes mandatory and the user already had it selected, than nothing changes for 
that user - we only want to warn people if they *didn't* have it selected. 
Forcing people to go through the legacy menu and manually deselect it is just 
creating extra work without any gains.

  Applied to master, thanks.

  Regards,
  Arnout


> +
> +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))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-04-23 15:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-20 12:12 [Buildroot] [PATCH 1/1] package/boost: drop tagged layout Fabrice Fontaine
2022-04-23 15:38 ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.