Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
@ 2013-11-06 10:40 Laurent GONZALEZ
  2013-11-06 14:35 ` Thomas De Schampheleire
  2013-11-06 15:19 ` Thomas Petazzoni
  0 siblings, 2 replies; 6+ messages in thread
From: Laurent GONZALEZ @ 2013-11-06 10:40 UTC (permalink / raw)
  To: buildroot

For configurations using a toolchain that is preinstalled on
the host, <pkg>_SITE and <pkg>_SOURCE variables must be kept
empty to avoid downloading any toolchain package.

Signed-off-by: GONZALEZ Laurent <br2@gezedo.com>
---
 toolchain/toolchain-external/toolchain-external.mk |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 2722600..6f4feb5 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -236,6 +236,7 @@ define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
 	ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
 endef
 
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
 TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
@@ -347,6 +348,7 @@ else
 TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
 TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
 endif
+endif
 
 TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
  2013-11-06 10:40 [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled Laurent GONZALEZ
@ 2013-11-06 14:35 ` Thomas De Schampheleire
  2013-11-06 15:30   ` Laurent GONZALEZ
  2013-11-06 15:19 ` Thomas Petazzoni
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas De Schampheleire @ 2013-11-06 14:35 UTC (permalink / raw)
  To: buildroot

Hi Laurent,

On Wed, Nov 6, 2013 at 11:40 AM, Laurent GONZALEZ <br2@gezedo.com> wrote:
> For configurations using a toolchain that is preinstalled on
> the host, <pkg>_SITE and <pkg>_SOURCE variables must be kept
> empty to avoid downloading any toolchain package.
>
> Signed-off-by: GONZALEZ Laurent <br2@gezedo.com>
> ---
>  toolchain/toolchain-external/toolchain-external.mk |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
> index 2722600..6f4feb5 100644
> --- a/toolchain/toolchain-external/toolchain-external.mk
> +++ b/toolchain/toolchain-external/toolchain-external.mk
> @@ -236,6 +236,7 @@ define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
>         ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
>  endef
>
> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
>  ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
>  TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
> @@ -347,6 +348,7 @@ else
>  TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>  TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>  endif
> +endif
>
>  TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
>

Can you be a bit more specific about the configuration you see this
problem with?
Although I can confirm that there is an attempted download when you
configure a pre-installed codesourcery toolchain, I can't fix the
problem completely with your patch:

$ make toolchain
>>> toolchain undefined Extracting
>>> toolchain undefined Patching toolchain//toolchain
>>> toolchain-external undefined Downloading
/toolchain-external-undefined.tar.gz: Scheme missing.
--2013-11-06 15:33:31--
http://sources.buildroot.net//toolchain-external-undefined.tar.gz

Thanks,
Thomas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
  2013-11-06 10:40 [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled Laurent GONZALEZ
  2013-11-06 14:35 ` Thomas De Schampheleire
@ 2013-11-06 15:19 ` Thomas Petazzoni
  2013-11-06 15:33   ` Laurent GONZALEZ
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2013-11-06 15:19 UTC (permalink / raw)
  To: buildroot

Dear Laurent GONZALEZ,

On Wed, 06 Nov 2013 11:40:06 +0100, Laurent GONZALEZ wrote:
> For configurations using a toolchain that is preinstalled on
> the host, <pkg>_SITE and <pkg>_SOURCE variables must be kept
> empty to avoid downloading any toolchain package.
> 
> Signed-off-by: GONZALEZ Laurent <br2@gezedo.com>
> ---
>  toolchain/toolchain-external/toolchain-external.mk |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
> index 2722600..6f4feb5 100644
> --- a/toolchain/toolchain-external/toolchain-external.mk
> +++ b/toolchain/toolchain-external/toolchain-external.mk
> @@ -236,6 +236,7 @@ define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
>  	ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
>  endef
>  
> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
>  ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
>  TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
> @@ -347,6 +348,7 @@ else
>  TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>  TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>  endif
> +endif
>  
>  TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
>  

I think the right fix would be something like:

ifeq ($(...codesourcery..),y)
...
else ifeq ($(...some other toolchain),y)
....
- else
+ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
# Custom toolchain
TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
- endif
+ else
TOOLCHAIN_EXTERNAL_SOURCE =
endif

So that TOOLCHAIN_EXTERNAL_SOURCE is empty when the external toolchain
is locally installed. Having an empty <pkg>_SOURCE is what tells the
package infrastructure to not download the thing.

Of course, approach above completely untested.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
  2013-11-06 14:35 ` Thomas De Schampheleire
@ 2013-11-06 15:30   ` Laurent GONZALEZ
  0 siblings, 0 replies; 6+ messages in thread
From: Laurent GONZALEZ @ 2013-11-06 15:30 UTC (permalink / raw)
  To: buildroot

On 06/11/2013 15:35, Thomas De Schampheleire wrote:
> Hi Laurent,
> 
> On Wed, Nov 6, 2013 at 11:40 AM, Laurent GONZALEZ <br2@gezedo.com> wrote:
>> For configurations using a toolchain that is preinstalled on
>> the host, <pkg>_SITE and <pkg>_SOURCE variables must be kept
>> empty to avoid downloading any toolchain package.
>>
>> Signed-off-by: GONZALEZ Laurent <br2@gezedo.com>
>> ---
>>  toolchain/toolchain-external/toolchain-external.mk |    2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
>> index 2722600..6f4feb5 100644
>> --- a/toolchain/toolchain-external/toolchain-external.mk
>> +++ b/toolchain/toolchain-external/toolchain-external.mk
>> @@ -236,6 +236,7 @@ define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
>>         ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
>>  endef
>>
>> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
>>  ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
>>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
>>  TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
>> @@ -347,6 +348,7 @@ else
>>  TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>>  TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>>  endif
>> +endif
>>
>>  TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
>>
> 
> Can you be a bit more specific about the configuration you see this
> problem with?
> Although I can confirm that there is an attempted download when you
> configure a pre-installed codesourcery toolchain, I can't fix the
> problem completely with your patch:
> 
> $ make toolchain
>>>> toolchain undefined Extracting
>>>> toolchain undefined Patching toolchain//toolchain
>>>> toolchain-external undefined Downloading
> /toolchain-external-undefined.tar.gz: Scheme missing.
> --2013-11-06 15:33:31--
> http://sources.buildroot.net//toolchain-external-undefined.tar.gz
> 

You're right, the commit message stats that variables must be empty, but my patch does not define them at all. I have probably been fooled by a dirty configuration in my testing sandbox.
I will resubmit ASAP.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
  2013-11-06 15:19 ` Thomas Petazzoni
@ 2013-11-06 15:33   ` Laurent GONZALEZ
  2013-11-06 18:08     ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Laurent GONZALEZ @ 2013-11-06 15:33 UTC (permalink / raw)
  To: buildroot

On 06/11/2013 16:19, Thomas Petazzoni wrote:
> Dear Laurent GONZALEZ,
> 
> On Wed, 06 Nov 2013 11:40:06 +0100, Laurent GONZALEZ wrote:
>> For configurations using a toolchain that is preinstalled on
>> the host, <pkg>_SITE and <pkg>_SOURCE variables must be kept
>> empty to avoid downloading any toolchain package.
>>
>> Signed-off-by: GONZALEZ Laurent <br2@gezedo.com>
>> ---
>>  toolchain/toolchain-external/toolchain-external.mk |    2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
>> index 2722600..6f4feb5 100644
>> --- a/toolchain/toolchain-external/toolchain-external.mk
>> +++ b/toolchain/toolchain-external/toolchain-external.mk
>> @@ -236,6 +236,7 @@ define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK
>>  	ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf
>>  endef
>>  
>> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
>>  ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
>>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
>>  TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
>> @@ -347,6 +348,7 @@ else
>>  TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>>  TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
>>  endif
>> +endif
>>  
>>  TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
>>  
> 
> I think the right fix would be something like:
> 
> ifeq ($(...codesourcery..),y)
> ...
> else ifeq ($(...some other toolchain),y)
> ....
> - else
> + else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
> # Custom toolchain
> TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
> TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
> - endif
> + else
> TOOLCHAIN_EXTERNAL_SOURCE =
> endif
> 
> So that TOOLCHAIN_EXTERNAL_SOURCE is empty when the external toolchain
> is locally installed. Having an empty <pkg>_SOURCE is what tells the
> package infrastructure to not download the thing.
> 

I am afraid this won't work, because I really want to choose some 'codesourcery' toolchain *and* avoid download. Preinstalled toolchain has larger scope than custom toolchain.
By the way my patch had another issue, that i will fix and resubmit soon.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled
  2013-11-06 15:33   ` Laurent GONZALEZ
@ 2013-11-06 18:08     ` Thomas Petazzoni
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2013-11-06 18:08 UTC (permalink / raw)
  To: buildroot

Dear Laurent GONZALEZ,

(Please fix your e-mail client to wrap lines at around 80 columns,
except of course when you send patches!).

On Wed, 06 Nov 2013 16:33:22 +0100, Laurent GONZALEZ wrote:

> > So that TOOLCHAIN_EXTERNAL_SOURCE is empty when the external toolchain
> > is locally installed. Having an empty <pkg>_SOURCE is what tells the
> > package infrastructure to not download the thing.
> > 
> 
> I am afraid this won't work, because I really want to choose some 'codesourcery' toolchain *and* avoid download. Preinstalled toolchain has larger scope than custom toolchain.
> By the way my patch had another issue, that i will fix and resubmit soon.

Aaah, yes, indeed. In this case, I think I'd prefer to have something
like:

ifeq ($(codesourcery...),y)
...
else ifeq ($(someothertoolchain...),y)
...
else
... custom toolchain origin
endif

# In fact, we don't need to download the toolchain, since it is already
# available on the system, so force the site and source to be empty so
# that nothing will be downloaded/extracted.
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED),y)
TOOLCHAIN_EXTERNAL_SITE =
TOOLCHAIN_EXTERNAL_SOURCE =
endif

It's just that I find the big enclosing ifeq
($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) condition a little bit difficult
to follow.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-11-06 18:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-06 10:40 [Buildroot] [PATCH 1/1] Avoid toolchain download when it is preinstalled Laurent GONZALEZ
2013-11-06 14:35 ` Thomas De Schampheleire
2013-11-06 15:30   ` Laurent GONZALEZ
2013-11-06 15:19 ` Thomas Petazzoni
2013-11-06 15:33   ` Laurent GONZALEZ
2013-11-06 18:08     ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox