* [Buildroot] Simple glibc-based external toolchain support
@ 2009-04-13 20:12 Thomas Petazzoni
2009-04-15 14:03 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2009-04-13 20:12 UTC (permalink / raw)
To: buildroot
xSimple glibc-based external toolchain support
The current Buildroot works just well with sysrootable glibc
toolchains, using the external toolchain feature. The only thing that
needs to be customized is the set of libraries that must be compiled
to the target.
The following patch takes a simple approach to making it easier for
users to use glibc toolchains. It just adds a uClibc/glibc choice in
the external toolchain menu. Then, depending on that selection, the
configuration system will choose a sane default value for the library
files list.
The other advantage of having a uClibc/glibc choice is that in the
future, we'll be able to add checks verifying that the external
toolchain configuration matches the features selected in Buildroot (in
terms of IPv6, RPC, locales or large file support).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
toolchain/external-toolchain/Config.in | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
Index: buildroot/toolchain/external-toolchain/Config.in
===================================================================
--- buildroot.orig/toolchain/external-toolchain/Config.in
+++ buildroot/toolchain/external-toolchain/Config.in
@@ -1,9 +1,24 @@
#
if BR2_TOOLCHAIN_EXTERNAL
+choice
+ prompt "External toolchain C library"
+ default BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+
+config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+ bool "uClibc"
+
+config BR2_TOOLCHAIN_EXTERNAL_GLIBC
+ bool "glibc"
+
+endchoice
+
+menu "Library files"
+
config BR2_TOOLCHAIN_EXTERNAL_LIB_C
string "The core C library from the external toolchain"
- default "libc.so.0"
+ default "libc.so.0" if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+ default "libc.so.6" if BR2_TOOLCHAIN_EXTERNAL_GLIBC
help
Specify the core C shared library found in the external
toolchain. This is required in addition to any other
@@ -11,13 +26,16 @@
config BR2_TOOLCHAIN_EXTERNAL_LIBS
string "Libraries to copy from the external toolchain"
- default "ld-uClibc.so.0 libcrypt.so.0 libdl.so.0 libgcc_s.so libm.so.0 libnsl.so.0 libpthread.so.0 libresolv.so.0 librt.so.0 libutil.so.0"
+ default "ld-uClibc.so.0 libcrypt.so.0 libdl.so.0 libgcc_s.so libm.so.0 libnsl.so.0 libpthread.so.0 libresolv.so.0 librt.so.0 libutil.so.0" if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+ default "ld-linux.so.3 libcrypt.so.1 libdl.so.2 libgcc_s.so.1 libm.so.6 libnsl.so.1 libpthread.so.0 libresolv.so.2 librt.so.1 libutil.so.1 libnss_files.so.2" if BR2_TOOLCHAIN_EXTERNAL_GLIBC
help
A space separated list of the shared libraries to be copied
from the external toolchain into the root filesystem. Only
the top-level name is needed, i.e. libc.so, libpthread.so as
the actual shared library symlinked to will be copied also.
+endmenu
+
config BR2_TOOLCHAIN_EXTERNAL_STRIP
bool
default y
--
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Simple glibc-based external toolchain support
2009-04-13 20:12 [Buildroot] Simple glibc-based external toolchain support Thomas Petazzoni
@ 2009-04-15 14:03 ` Thomas Petazzoni
2009-04-15 14:13 ` Peter Korsgaard
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2009-04-15 14:03 UTC (permalink / raw)
To: buildroot
Hi,
Any opinion on this ? I'm adding Grant Likely to the Cc: list because
he showed interest in having support for external Glibc toolchains in
Buildroot.
Sincerly,
Thomas
Le Mon, 13 Apr 2009 22:12:19 +0200,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :
> xSimple glibc-based external toolchain support
>
> The current Buildroot works just well with sysrootable glibc
> toolchains, using the external toolchain feature. The only thing that
> needs to be customized is the set of libraries that must be compiled
> to the target.
>
> The following patch takes a simple approach to making it easier for
> users to use glibc toolchains. It just adds a uClibc/glibc choice in
> the external toolchain menu. Then, depending on that selection, the
> configuration system will choose a sane default value for the library
> files list.
>
> The other advantage of having a uClibc/glibc choice is that in the
> future, we'll be able to add checks verifying that the external
> toolchain configuration matches the features selected in Buildroot (in
> terms of IPv6, RPC, locales or large file support).
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> toolchain/external-toolchain/Config.in | 22 ++++++++++++++++++++--
> 1 file changed, 20 insertions(+), 2 deletions(-)
>
> Index: buildroot/toolchain/external-toolchain/Config.in
> ===================================================================
> --- buildroot.orig/toolchain/external-toolchain/Config.in
> +++ buildroot/toolchain/external-toolchain/Config.in
> @@ -1,9 +1,24 @@
> #
>
> if BR2_TOOLCHAIN_EXTERNAL
> +choice
> + prompt "External toolchain C library"
> + default BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> +
> +config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> + bool "uClibc"
> +
> +config BR2_TOOLCHAIN_EXTERNAL_GLIBC
> + bool "glibc"
> +
> +endchoice
> +
> +menu "Library files"
> +
> config BR2_TOOLCHAIN_EXTERNAL_LIB_C
> string "The core C library from the external toolchain"
> - default "libc.so.0"
> + default "libc.so.0" if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> + default "libc.so.6" if BR2_TOOLCHAIN_EXTERNAL_GLIBC
> help
> Specify the core C shared library found in the external
> toolchain. This is required in addition to any other
> @@ -11,13 +26,16 @@
>
> config BR2_TOOLCHAIN_EXTERNAL_LIBS
> string "Libraries to copy from the external toolchain"
> - default "ld-uClibc.so.0 libcrypt.so.0 libdl.so.0 libgcc_s.so
> libm.so.0 libnsl.so.0 libpthread.so.0 libresolv.so.0 librt.so.0
> libutil.so.0"
> + default "ld-uClibc.so.0 libcrypt.so.0 libdl.so.0 libgcc_s.so
> libm.so.0 libnsl.so.0 libpthread.so.0 libresolv.so.0 librt.so.0
> libutil.so.0" if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
> + default "ld-linux.so.3 libcrypt.so.1 libdl.so.2
> libgcc_s.so.1 libm.so.6 libnsl.so.1 libpthread.so.0 libresolv.so.2
> librt.so.1 libutil.so.1 libnss_files.so.2" if
> BR2_TOOLCHAIN_EXTERNAL_GLIBC help A space separated list of the
> shared libraries to be copied from the external toolchain into the
> root filesystem. Only the top-level name is needed, i.e. libc.so,
> libpthread.so as the actual shared library symlinked to will be
> copied also. +endmenu
> +
> config BR2_TOOLCHAIN_EXTERNAL_STRIP
> bool
> default y
>
>
--
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Simple glibc-based external toolchain support
2009-04-15 14:03 ` Thomas Petazzoni
@ 2009-04-15 14:13 ` Peter Korsgaard
2009-04-15 14:23 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Peter Korsgaard @ 2009-04-15 14:13 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
Thomas> Hi,
Thomas> Any opinion on this ? I'm adding Grant Likely to the Cc: list
Thomas> because he showed interest in having support for external
Thomas> Glibc toolchains in Buildroot.
I don't have a use for it myself, but I don't have a problem with it
getting added (as long as someone is willing to supports its
users).
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Simple glibc-based external toolchain support
2009-04-15 14:13 ` Peter Korsgaard
@ 2009-04-15 14:23 ` Thomas Petazzoni
2009-04-15 14:38 ` Peter Korsgaard
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2009-04-15 14:23 UTC (permalink / raw)
To: buildroot
Le Wed, 15 Apr 2009 16:13:53 +0200,
Peter Korsgaard <jacmet@uclibc.org> a ?crit :
> I don't have a use for it myself, but I don't have a problem with it
> getting added (as long as someone is willing to supports its
> users).
Ok, thanks. My approach has one drawback: when one selects uClibc, the
Kconfig system picks up the default uClibc values for
BR2_TOOLCHAIN_EXTERNAL_LIB_C and BR2_TOOLCHAIN_EXTERNAL_LIBS. If the
user then later changes to glibc, then Kconfig doesn't change the
BR2_TOOLCHAIN_EXTERNAL_LIB_C and BR2_TOOLCHAIN_EXTERNAL_LIBS : they are
kept to their uClibc defaults. That may confuse users.
This raises the following point: do we need these options at all ?
Can't we just hardcode in ext-took.mk the list of libraries that have
to be imported in the target, depending on the choosen C library ?
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Simple glibc-based external toolchain support
2009-04-15 14:23 ` Thomas Petazzoni
@ 2009-04-15 14:38 ` Peter Korsgaard
0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2009-04-15 14:38 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
Hi,
Thomas> This raises the following point: do we need these options at
Thomas> all ? Can't we just hardcode in ext-took.mk the list of
Thomas> libraries that have to be imported in the target, depending
Thomas> on the choosen C library ?
Sure, if the value is the same for all library versions, with/without
tls/ntpl, endianness, abi, ..
Alternatively we could add 3 options: uclibc, glibc and custom, and
then only display the setting for custom.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-04-15 14:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-13 20:12 [Buildroot] Simple glibc-based external toolchain support Thomas Petazzoni
2009-04-15 14:03 ` Thomas Petazzoni
2009-04-15 14:13 ` Peter Korsgaard
2009-04-15 14:23 ` Thomas Petazzoni
2009-04-15 14:38 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox