* [Buildroot] svn commit: trunk/buildroot: toolchain toolchain/external-toolchain
@ 2008-11-03 10:18 jacmet at uclibc.org
2008-11-03 21:09 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain hartleys
0 siblings, 1 reply; 8+ messages in thread
From: jacmet at uclibc.org @ 2008-11-03 10:18 UTC (permalink / raw)
To: buildroot
Author: jacmet
Date: 2008-11-03 02:18:39 -0800 (Mon, 03 Nov 2008)
New Revision: 23908
Log:
External toolchain support improvements
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>
Modified:
trunk/buildroot/Makefile
trunk/buildroot/toolchain/Config.in.2
trunk/buildroot/toolchain/external-toolchain/Config.in
Changeset:
Modified: trunk/buildroot/Makefile
===================================================================
--- trunk/buildroot/Makefile 2008-11-03 06:16:36 UTC (rev 23907)
+++ trunk/buildroot/Makefile 2008-11-03 10:18:39 UTC (rev 23908)
@@ -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:=
Modified: trunk/buildroot/toolchain/Config.in.2
===================================================================
--- trunk/buildroot/toolchain/Config.in.2 2008-11-03 06:16:36 UTC (rev 23907)
+++ trunk/buildroot/toolchain/Config.in.2 2008-11-03 10:18:39 UTC (rev 23908)
@@ -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"
Modified: trunk/buildroot/toolchain/external-toolchain/Config.in
===================================================================
--- trunk/buildroot/toolchain/external-toolchain/Config.in 2008-11-03 06:16:36 UTC (rev 23907)
+++ trunk/buildroot/toolchain/external-toolchain/Config.in 2008-11-03 10:18:39 UTC (rev 23908)
@@ -69,33 +69,30 @@
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).
+ Set this option if the external toolchain supports soft float.
- Most people will answer N.
-
config BR2_TARGET_OPTIMIZATION
string "Target Optimizations"
default "-Os -pipe"
^ permalink raw reply [flat|nested] 8+ messages in thread* [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain 2008-11-03 10:18 [Buildroot] svn commit: trunk/buildroot: toolchain toolchain/external-toolchain jacmet at uclibc.org @ 2008-11-03 21:09 ` hartleys 2008-11-03 23:17 ` Thomas Petazzoni 0 siblings, 1 reply; 8+ messages in thread From: hartleys @ 2008-11-03 21:09 UTC (permalink / raw) To: buildroot On Monday, November 03, 2008 3:19 AM, jacmet at uclibc.org wrote: > Date: 2008-11-03 02:18:39 -0800 (Mon, 03 Nov 2008) New Revision: 23908 > > Log: > External toolchain support improvements > > 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. With these two patches I can no longer build kernel 2.6.27.3 using an external 4.1.1-920t toolchain. I know I should just build a new toolchain with buildroot but I have never been able to successfully get one working. That step I just do not get..... Removing the following two patches fixes the problem. Any other solution? Thanks, Hartley <snip> Changeset: Modified: trunk/buildroot/Makefile =================================================================== --- trunk/buildroot/Makefile 2008-11-03 06:16:36 UTC (rev 23907) +++ trunk/buildroot/Makefile 2008-11-03 10:18:39 UTC (rev 23908) @@ -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:= Modified: trunk/buildroot/toolchain/Config.in.2 =================================================================== --- trunk/buildroot/toolchain/Config.in.2 2008-11-03 06:16:36 UTC (rev 23907) +++ trunk/buildroot/toolchain/Config.in.2 2008-11-03 10:18:39 UTC (rev 23908) @@ -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" ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain 2008-11-03 21:09 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain hartleys @ 2008-11-03 23:17 ` Thomas Petazzoni [not found] ` <BD79186B4FD85F4B8E60E381CAEE1909C9177C@mi8nycmail19.Mi8.com> 0 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2008-11-03 23:17 UTC (permalink / raw) To: buildroot Le Mon, 3 Nov 2008 16:09:10 -0500, "hartleys" <hartleys@visionengravers.com> a ?crit : > With these two patches I can no longer build kernel 2.6.27.3 using an > external 4.1.1-920t toolchain. Oops. Could you give me your Buildroot .config file ? And the error message you're having ? To build the kernel, there are two solutions: * linux (advanced configuration) * linux (same version as linux headers) The second solution is probably broken by my change, but the first one seems to work fine here. I don't use Buildroot to build my kernels, so I missed that problem, sorry. > I know I should just build a new toolchain with buildroot but I have > never been able to successfully get one working. That step I just do > not get..... I also use external toolchain, since I have troubles getting a completely working toolchain with Buildroot. > Removing the following two patches fixes the problem. Any other > solution? I understand why removing the second chunk fixes something, but not really the first chunk. Thanks for the feedback ! Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <BD79186B4FD85F4B8E60E381CAEE1909C9177C@mi8nycmail19.Mi8.com>]
* [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain [not found] ` <BD79186B4FD85F4B8E60E381CAEE1909C9177C@mi8nycmail19.Mi8.com> @ 2008-11-04 17:23 ` Thomas Petazzoni 2008-11-04 19:10 ` [Buildroot] [PATCH] Kernel build fix related to external toolchain use Thomas Petazzoni ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Thomas Petazzoni @ 2008-11-04 17:23 UTC (permalink / raw) To: buildroot Hi hartleys, Please keep the list in Cc, other Buildroot developers can give very valuable insights, very often better than mine. Le Mon, 3 Nov 2008 19:09:02 -0500, "hartleys" <hartleys@visionengravers.com> a ?crit : > > Oops. Could you give me your Buildroot .config file ? And the error > message you're having ? > > Attached is the .config Is this a .config generated with the bare trunk, or with the trunk modified to remove the two chunks that you mentionned previously ? Since BR2_KERNEL_HEADERS_2_6_27 is set, I'm inclined to think that this is a .config after removal of the two chunks. > > To build the kernel, there are two solutions: > > * linux (advanced configuration) > > * linux (same version as linux headers) > > > > The second solution is probably broken by my change, but the first > > one seems to work fine here. > > The second is broken with your change. > > I tried the first but it's a bit of a pain. Every time there is a new > kernel I have to go in an update the values. I guess it's more of a > nit... The second option ? same version as linux headers ? clearly cannot work with my patches: since we're using an external toolchain, there's no version of linux headers defined in Buildroot. So my proposal is: 1) remove the option "linux (same version as linux headers)" when an external toolchain is used ; 2) improve the "advanced" support to suit your needs. What do you mean by ? I have to go in and update the values ? ? What do you think about this ? > At this point I'm still in development and a lot of the stuff I am > working on is kernel related. I keep sending off patches that are > slowly showing up in the newer kernels so I always want the latest > stuff. I really wish I could figure out how to use git inside > buildroot... Grant Likely recently sent a patch adding the ability to get the kernel for a Git repository. See http://buildroot.uclibc.org/lists/buildroot/2008-October/011037.html. This patch hasn't been integrated to Buildroot, yet. > > I don't use Buildroot to build my kernels, so I missed that problem, > sorry. > > Not a problem. How else can you cross compile the kernel? See slides 136 and following in http://free-electrons.com/doc/embedded_linux_kernel_and_drivers.pdf. Sincerly, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Kernel build fix related to external toolchain use 2008-11-04 17:23 ` Thomas Petazzoni @ 2008-11-04 19:10 ` Thomas Petazzoni 2008-11-04 19:59 ` Peter Korsgaard 2008-11-04 19:22 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain Peter Korsgaard 2008-11-04 19:50 ` hartleys 2 siblings, 1 reply; 8+ messages in thread From: Thomas Petazzoni @ 2008-11-04 19:10 UTC (permalink / raw) To: buildroot Le Tue, 4 Nov 2008 18:23:14 +0100, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit : > 1) remove the option "linux (same version as linux headers)" when an > external toolchain is used ; Kernel build fix related to external toolchain use This patch prevents the user from select "linux (Same version as linux headers)" as a choice for building the kernel when an external binary toolchain is used, since "same version as linux headers" doesn't make sense when an external toolchain is used. It fixes the issue encountered by Hartley <hartleys@visionengravers.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- target/Config.in | 7 +++++++ 1 file changed, 7 insertions(+) Index: buildroot2/target/Config.in =================================================================== --- buildroot2.orig/target/Config.in +++ buildroot2/target/Config.in @@ -45,6 +45,11 @@ kernel headers are just that (headers) and not full kernels. This is a feature. +# The kernel with the same version as linux headers cannot be compiled +# when using an external toolchain, because the linux headers are not +# handled by Buildroot in this case. +if BR2_TOOLCHAIN_SOURCE + config BR2_KERNEL_LINUX bool "linux (Same version as linux headers)" select BR2_PACKAGE_LINUX @@ -56,6 +61,8 @@ kernel headers are just that (headers) and not full kernels. This is a feature. +endif + config BR2_KERNEL_HURD bool "hurd" help -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] [PATCH] Kernel build fix related to external toolchain use 2008-11-04 19:10 ` [Buildroot] [PATCH] Kernel build fix related to external toolchain use Thomas Petazzoni @ 2008-11-04 19:59 ` Peter Korsgaard 0 siblings, 0 replies; 8+ messages in thread From: Peter Korsgaard @ 2008-11-04 19:59 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Thomas> Le Tue, 4 Nov 2008 18:23:14 +0100, Thomas> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit : >> 1) remove the option "linux (same version as linux headers)" when an >> external toolchain is used ; Thomas> Kernel build fix related to external toolchain use Thanks! Committed as r23924. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain 2008-11-04 17:23 ` Thomas Petazzoni 2008-11-04 19:10 ` [Buildroot] [PATCH] Kernel build fix related to external toolchain use Thomas Petazzoni @ 2008-11-04 19:22 ` Peter Korsgaard 2008-11-04 19:50 ` hartleys 2 siblings, 0 replies; 8+ messages in thread From: Peter Korsgaard @ 2008-11-04 19:22 UTC (permalink / raw) To: buildroot >>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: Hi, Thomas> The second option ? same version as linux headers ? clearly Thomas> cannot work with my patches: since we're using an external Thomas> toolchain, there's no version of linux headers defined in Thomas> Buildroot. Thomas> So my proposal is: Thomas> 1) remove the option "linux (same version as linux headers)" Thomas> when an external toolchain is used ; Seems logical. Thomas> Grant Likely recently sent a patch adding the ability to get the kernel Thomas> for a Git repository. See Thomas> http://buildroot.uclibc.org/lists/buildroot/2008-October/011037.html. Thomas> This patch hasn't been integrated to Buildroot, yet. Yeah, it's still on my todo list. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain 2008-11-04 17:23 ` Thomas Petazzoni 2008-11-04 19:10 ` [Buildroot] [PATCH] Kernel build fix related to external toolchain use Thomas Petazzoni 2008-11-04 19:22 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain Peter Korsgaard @ 2008-11-04 19:50 ` hartleys 2 siblings, 0 replies; 8+ messages in thread From: hartleys @ 2008-11-04 19:50 UTC (permalink / raw) To: buildroot On Tuesday, November 04, 2008 10:23 AM, Thomas Petazzoni wrote: > Please keep the list in Cc, other Buildroot developers can give > very valuable insights, very often better than mine. Sorry about that, hit the wrong reply button... >>> Oops. Could you give me your Buildroot .config file ? And the error >>> message you're having ? >> >> Attached is the .config > > Is this a .config generated with the bare trunk, or with the trunk > modified to remove the two chunks that you mentionned previously ? > > Since BR2_KERNEL_HEADERS_2_6_27 is set, I'm inclined to think that > this is a .config after removal of the two chunks. Correct. The .config is after removing the two patches. That config builds with no problems. >>> To build the kernel, there are two solutions: >>> * linux (advanced configuration) >>> * linux (same version as linux headers) >>> >>> The second solution is probably broken by my change, but the first >>> one seems to work fine here. >> >> The second is broken with your change. >> >> I tried the first but it's a bit of a pain. Every time there is a new >> kernel I have to go in an update the values. I guess it's more of a >> nit... > > The second option < same version as linux headers > clearly cannot work > with my patches: since we're using an external toolchain, there's no > version of linux headers defined in Buildroot. > > So my proposal is: > > 1) remove the option "linux (same version as linux headers)" when an > external toolchain is used ; > > 2) improve the "advanced" support to suit your needs. What do you mean > by < I have to go in and update the values > ? > > What do you think about this ? I have no problems with your proposal. Maybe I just need a better explanation on how the "advanced" support works. Right now when Kernel type is set to BR2_KERNEL_LINUX_ADVANCED you get options for the following: Linux Kernel Version ({string}) ---> Patches ---> Linux Kernel Configuration ---> Kernel binary format ({string}) ---> Destinations for linux kernel binaries ---> There are quite a few Linux Kernel Version choices but the "latest" one is always quite old so I have to select "Linux <custom> version then supply all the information for what kernel I actually want to use. Like I said, maybe I'm just doing it wrong. >> At this point I'm still in development and a lot of the stuff I am >> working on is kernel related. I keep sending off patches that are >> slowly showing up in the newer kernels so I always want the latest >> stuff. I really wish I could figure out how to use git inside >> buildroot... > > Grant Likely recently sent a patch adding the ability to get the > kernel for a Git repository. See > http://buildroot.uclibc.org/lists/buildroot/2008-October/011037.html. > This patch hasn't been integrated to Buildroot, yet. I'll look at that. >>> I don't use Buildroot to build my kernels, so I missed that problem, >> sorry. >> >> Not a problem. How else can you cross compile the kernel? > > See slides 136 and following in > http://free-electrons.com/doc/embedded_linux_kernel_and_drivers.pdf. Thanks for the link. I'll take a look at it. Hartley ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-11-04 19:59 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-03 10:18 [Buildroot] svn commit: trunk/buildroot: toolchain toolchain/external-toolchain jacmet at uclibc.org
2008-11-03 21:09 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain hartleys
2008-11-03 23:17 ` Thomas Petazzoni
[not found] ` <BD79186B4FD85F4B8E60E381CAEE1909C9177C@mi8nycmail19.Mi8.com>
2008-11-04 17:23 ` Thomas Petazzoni
2008-11-04 19:10 ` [Buildroot] [PATCH] Kernel build fix related to external toolchain use Thomas Petazzoni
2008-11-04 19:59 ` Peter Korsgaard
2008-11-04 19:22 ` [Buildroot] svn commit: trunk/buildroot: toolchaintoolchain/external-toolchain Peter Korsgaard
2008-11-04 19:50 ` hartleys
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox