From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] External toolchain support improvements
Date: Thu, 30 Oct 2008 09:45:01 +0100 [thread overview]
Message-ID: <20081030094501.66983ff9@surf> (raw)
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@free-electrons.com>
---
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
next reply other threads:[~2008-10-30 8:45 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-30 8:45 Thomas Petazzoni [this message]
2008-10-31 18:42 ` [Buildroot] External toolchain support improvements hartleys
2008-11-03 8:31 ` Thomas Petazzoni
2008-11-03 15:52 ` hartleys
2008-11-03 23:51 ` Markus Heidelberg
2008-10-31 19:21 ` Grant Likely
2008-11-03 10:15 ` Peter Korsgaard
2008-11-03 10:18 ` Peter Korsgaard
2008-11-03 12:48 ` Shinya Kuribayashi
2008-11-03 12:58 ` Peter Korsgaard
2008-11-03 13:25 ` Shinya Kuribayashi
2008-11-03 14:03 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081030094501.66983ff9@surf \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox