[Buildroot] [PATCH] package: coreutils: allow building individual binaries

Thomas Petazzoni thomas.petazzoni at bootlin.com
Wed Apr 10 09:50:46 UTC 2019


Hello Markus,

On Tue,  9 Apr 2019 15:04:54 -0700
Markus Mayer <mmayer at broadcom.com> wrote:

> We add configuration option BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES
> so that coreutils can be built and installed as individual binaries.
> 
> The approach is modelled after Busybox's similarly named configuration
> option.
> 
> Signed-off-by: Markus Mayer <mmayer at broadcom.com>

Thanks for your patch. Could you adjust the commit log to explain the
use case for wanting individual binaries ? The change looks perfectly
OK, but it's good to have an explanation of the "why".

Also, the commit title prefix should be "package/coreutils" and not
"package: coreutils".

More comments below.

> diff --git a/package/coreutils/Config.in b/package/coreutils/Config.in
> index 11a6019e820f..0142db4bddd1 100644
> --- a/package/coreutils/Config.in
> +++ b/package/coreutils/Config.in
> @@ -19,3 +19,17 @@ comment "coreutils needs a toolchain w/ wchar"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_USE_WCHAR
>  	depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
> +
> +config BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES
> +	bool "Individual binaries"
> +	depends on !BR2_STATIC_LIBS
> +	help
> +	  By default (i.e. with this option disabled), coreutils is
> +	  installed as a single binary (Busybox style) called
> +	  /usr/bin/coreutils, and all core utilities are symbolic
> +	  links to this binary.
> +
> +	  With this option enabled, each utility is a separate binary.
> +
> +comment "Coreutils individual binaries need a toolchain w/ dynamic library"
> +	depends on BR2_STATIC_LIBS

All this code should be enclosed in a if BR2_PACKAGE_COREUTILS .. endif
block, otherwise this option appears even when coreutils is disabled.

The comment should use "coreutils" and not "Coreutils"

> diff --git a/package/coreutils/coreutils.mk b/package/coreutils/coreutils.mk
> index 3e8efbf04706..37351663f705 100644
> --- a/package/coreutils/coreutils.mk
> +++ b/package/coreutils/coreutils.mk
> @@ -14,7 +14,11 @@ COREUTILS_LICENSE_FILES = COPYING
>  COREUTILS_AUTORECONF = YES
>  COREUTILS_GETTEXTIZE = YES
>  
> -COREUTILS_CONF_OPTS = --disable-rpath --enable-single-binary=symlinks \
> +ifneq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),y)
> +	CUSTOM_COREUTILS_CONF_OPTS=--enable-single-binary=symlinks
> +endif
> +
> +COREUTILS_CONF_OPTS = --disable-rpath $(CUSTOM_COREUTILS_CONF_OPTS) \
>  	$(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex)

Please do it like this:

COREUTILS_CONF_OPTS = \
	--disable-rpath \
	$(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex)

ifeq ($(BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES),)
COREUTILS_CONF_OPTS += --enable-single-binary=symlinks
endif

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list