[Buildroot] External toolchain support improvements
Grant Likely
grant.likely at secretlab.ca
Fri Oct 31 19:21:25 UTC 2008
On Thu, Oct 30, 2008 at 2:45 AM, Thomas Petazzoni
<thomas.petazzoni at free-electrons.com> wrote:
> Improve external toolchain support
>
> * Do not put kernel-headers in the dependencies of BASE_TARGETS in
> the case where BR2_TOOLCHAIN_SOURCE is not y. The kernel headers
> are already supposed to be part of the external toolchain, so
> there's no need to download, extract and install them.
>
> * In the configuration system, don't display the kernel headers
> version selection list when an external toolchain is selected. This
> is implemented by moving the source
> "toolchain/kernel-headers/Config.in" inside the if
> BR2_TOOLCHAIN_SOURCE in toolchain/Config.in.2.
>
> * Change the description and help message of the BR2_LARGEFILE,
> BR2_INET_IPV6, BR2_INET_RPC, and BR2_SOFT_FLOAT option in
> toolchain/external-toolchain/Config.in. In the case of an external
> toolchain, the semantic of these options is not to enable large
> file support, IPV6 or RPC (since the toolchain is already compiled,
> it has been decided previously). Their semantic is to let Buildroot
> know about the characteristics of the external toolchain being
> used.
>
> As an improvement, we could guess these values automatically:
>
> - for BR2_LARGEFILE, look at the value of __UCLIBC_HAS_LFS__ in
> bits/uClibc_config.h in the libc headers directory.
>
> - for BR2_INET_RPC, look at the value of __UCLIBC_HAS_RPC__ in the
> same file
>
> - for BR2_INET_IPV6, look at the value of __UCLIBC_HAS_IPV6__ in
> the same file
>
> - for BR2_SOFT_FLOAT, look at the output of $(CC) -v 2>&1 | grep
> -- "--with-float=soft"
>
> But I'm not sure how this would be possible, since these values are
> used at configuration-time by other configuration options, not only
> at build time.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Acked-by: Grant Likely <grant.likely at secretlab.ca>
> ---
> Makefile | 2 +-
> toolchain/Config.in.2 | 3 +--
> toolchain/external-toolchain/Config.in | 23 ++++++++++-------------
> 3 files changed, 12 insertions(+), 16 deletions(-)
>
> Index: buildroot/Makefile
> ===================================================================
> --- buildroot.orig/Makefile
> +++ buildroot/Makefile
> @@ -202,7 +202,7 @@
> ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
> BASE_TARGETS:=uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers
> else
> -BASE_TARGETS:=uclibc kernel-headers
> +BASE_TARGETS:=uclibc
> endif
> TARGETS:=
>
> Index: buildroot/toolchain/Config.in.2
> ===================================================================
> --- buildroot.orig/toolchain/Config.in.2
> +++ buildroot/toolchain/Config.in.2
> @@ -1,8 +1,7 @@
> #
>
> -source "toolchain/kernel-headers/Config.in"
> -
> if BR2_TOOLCHAIN_SOURCE
> +source "toolchain/kernel-headers/Config.in"
> source "toolchain/uClibc/Config.in"
> source "toolchain/binutils/Config.in"
> source "toolchain/gcc/Config.in"
> Index: buildroot/toolchain/external-toolchain/Config.in
> ===================================================================
> --- buildroot.orig/toolchain/external-toolchain/Config.in
> +++ buildroot/toolchain/external-toolchain/Config.in
> @@ -69,32 +69,29 @@
> endchoice
>
> config BR2_LARGEFILE
> - bool "Enable large file (files > 2 GB) support?"
> + bool "Toolchain supports large files (> 2 GB) ?"
> depends on !BR2_cris
> default y
> help
> - Enable large file (files > 2 GB) support
> + Set this option if the external toolchain supports large
> + files (> 2 GB)
> +
>
> config BR2_INET_IPV6
> - bool "Enable IPv6"
> + bool "Toolchain supports IPv6 ?"
> help
> - Enable IPv6.
> + Set this option if the external toolchain supports IPv6.
>
> config BR2_INET_RPC
> - bool "Enable RPC"
> + bool "Toolchain supports RPC ?"
> help
> - Enable RPC. RPC support is needed for nfs.
> + Set this option if the external toolchain supports RPC.
>
> config BR2_SOFT_FLOAT
> - bool "Use software floating point by default"
> + bool "Toolchain supports soft float ?"
> depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_powerpc
> help
> - If your target CPU does not have a Floating Point Unit (FPU) or a
> - kernel FPU emulator, but you still wish to support floating point
> - functions, then everything will need to be compiled with soft
> - floating point support (-msoft-float).
> -
> - Most people will answer N.
> + Set this option if the external toolchain supports soft float.
>
> config BR2_TARGET_OPTIMIZATION
> string "Target Optimizations"
>
>
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers and embedded Linux development,
> consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
More information about the buildroot
mailing list