Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages
@ 2007-01-23 23:53 Ulf Samuelsson
  2007-01-24 23:23 ` Bernhard Fischer
  0 siblings, 1 reply; 5+ messages in thread
From: Ulf Samuelsson @ 2007-01-23 23:53 UTC (permalink / raw)
  To: buildroot

If you make Buildroot from scratch, CFLAGS gets set during the build,
but if you add packages later, then CFLAGS should be set in the
makefile fragment of the new package.

I believe that TARGET_CFLAGS needs to include the Linux Include
Directory or you will get compolie time errors.
Don't have a clean patch for that yet, but this is what I do:

TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)

should be changed to

TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \
	-I$(TOOL_BUILD_DIR)/linux/include


Best Regards
Ulf Samuelsson

-------------- next part --------------
A non-text attachment was scrubbed...
Name: target_flags.patch
Type: text/x-patch
Size: 19474 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20070124/0deebaf0/attachment-0001.bin 

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

* [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages
  2007-01-23 23:53 [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages Ulf Samuelsson
@ 2007-01-24 23:23 ` Bernhard Fischer
  2007-01-25  0:02   ` Ulf Samuelsson
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Fischer @ 2007-01-24 23:23 UTC (permalink / raw)
  To: buildroot

On Wed, Jan 24, 2007 at 12:53:53AM +0100, Ulf Samuelsson wrote:
>If you make Buildroot from scratch, CFLAGS gets set during the build,
>but if you add packages later, then CFLAGS should be set in the
>makefile fragment of the new package.

I don't understand what you mean here. Please elaborate
>
>I believe that TARGET_CFLAGS needs to include the Linux Include
>Directory or you will get compolie time errors.

I don't have the linux include in my TARGET_CFLAGS AFAIK and do not get
compile errors. What kernel-headers are you using? What errors are you
seeing with what package?

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

* [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages
  2007-01-24 23:23 ` Bernhard Fischer
@ 2007-01-25  0:02   ` Ulf Samuelsson
  2007-01-25  9:18     ` Bernhard Fischer
  0 siblings, 1 reply; 5+ messages in thread
From: Ulf Samuelsson @ 2007-01-25  0:02 UTC (permalink / raw)
  To: buildroot

Bernhard Fischer wrote:
> On Wed, Jan 24, 2007 at 12:53:53AM +0100, Ulf Samuelsson wrote:
>> If you make Buildroot from scratch, CFLAGS gets set during the build,
>> but if you add packages later, then CFLAGS should be set in the
>> makefile fragment of the new package.
>
> I don't understand what you mean here. Please elaborate
>>

Some packages require kernel headers.
If you build from scratch, something sets CFLAGS to a good value.

If you come back the next day, reconfigure your system,
to include a new package, and recompile, many packages
will bomb out because they do not find the "asm-generic.h"

By adding this CFLAGS patch you can compile those packages.

Many packages have this already, many don't.
Can you explain when you have it and when you don't?

>> I believe that TARGET_CFLAGS needs to include the Linux Include
>> Directory or you will get compolie time errors.
>
> I don't have the linux include in my TARGET_CFLAGS AFAIK and do not
> get compile errors. What kernel-headers are you using? What errors
> are you seeing with what package?

Best Regards,
Ulf Samuelsson
ulf at atmel.com
GSM:  +46 (706) 22 44 57
Tel:     +46  (8) 441 54 22
Fax:     +46 (8) 441 54 29
Mail: Box 2033  174 02 Sundbyberg
Visit: Kavalleriv?gen 24
          174 58 Sundbyberg'
Sweden

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

* [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages
  2007-01-25  0:02   ` Ulf Samuelsson
@ 2007-01-25  9:18     ` Bernhard Fischer
  2007-01-26 18:37       ` Ulf Samuelsson
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Fischer @ 2007-01-25  9:18 UTC (permalink / raw)
  To: buildroot

On Thu, Jan 25, 2007 at 01:02:49AM +0100, Ulf Samuelsson wrote:
>Bernhard Fischer wrote:
>>On Wed, Jan 24, 2007 at 12:53:53AM +0100, Ulf Samuelsson wrote:
>>>If you make Buildroot from scratch, CFLAGS gets set during the build,
>>>but if you add packages later, then CFLAGS should be set in the
>>>makefile fragment of the new package.
>>
>>I don't understand what you mean here. Please elaborate
>>>
>
>Some packages require kernel headers.

The few packages that really need kernel-internal or any other
non-standard include path have to specify their include manually. 

>If you build from scratch, something sets CFLAGS to a good value.
>
>If you come back the next day, reconfigure your system,
>to include a new package, and recompile, many packages
>will bomb out because they do not find the "asm-generic.h"

I cannot reproduce this. Can you paste an error and describe how i can
reproduce this, locally?

>By adding this CFLAGS patch you can compile those packages.
>
>Many packages have this already, many don't.
>Can you explain when you have it and when you don't?

See above. If a package needs any headers that do not live in a standard
place (see e.g. gmp/mpfr.h for gcc or openswan that has a broken
makefile in this respect) have to specify that explicitely.

>>>I believe that TARGET_CFLAGS needs to include the Linux Include
>>>Directory or you will get compolie time errors.
>>
>>I don't have the linux include in my TARGET_CFLAGS AFAIK and do not
>>get compile errors. What kernel-headers are you using? What errors
>>are you seeing with what package?

Please provide an example.

for me, e.g., my cross-compiler works. What do you see if you do the
equivalent thing?

$ echo "#include <asm/unistd.h>" | \
/scratch/obj.x86_64/buildroot.mine/build_i586/staging_dir/bin/i586-linux-gcc \
-xc -dD -E - | grep unistd
# 1 "/scratch/obj.x86_64/buildroot.mine/build_i586/staging_dir/lib/gcc/i586-linux-uclibc/4.2.0/../../../../i586-linux-uclibc/sys-include/asm/unistd.h" 1 3 4

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

* [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages
  2007-01-25  9:18     ` Bernhard Fischer
@ 2007-01-26 18:37       ` Ulf Samuelsson
  0 siblings, 0 replies; 5+ messages in thread
From: Ulf Samuelsson @ 2007-01-26 18:37 UTC (permalink / raw)
  To: buildroot

Bernhard Fischer wrote:
> On Thu, Jan 25, 2007 at 01:02:49AM +0100, Ulf Samuelsson wrote:
>> Bernhard Fischer wrote:
>>> On Wed, Jan 24, 2007 at 12:53:53AM +0100, Ulf Samuelsson wrote:
>>>> If you make Buildroot from scratch, CFLAGS gets set during the
>>>> build, but if you add packages later, then CFLAGS should be set in
>>>> the makefile fragment of the new package.
>>> 
>>> I don't understand what you mean here. Please elaborate
>>>> 
>> 
>> Some packages require kernel headers.
> 
> The few packages that really need kernel-internal or any other
> non-standard include path have to specify their include manually.
> 
>> If you build from scratch, something sets CFLAGS to a good value.
>> 
>> If you come back the next day, reconfigure your system,
>> to include a new package, and recompile, many packages
>> will bomb out because they do not find the "asm-generic.h"
> 
> I cannot reproduce this. Can you paste an error and describe how i can
> reproduce this, locally?
> 
>> By adding this CFLAGS patch you can compile those packages.
>> 
>> Many packages have this already, many don't.
>> Can you explain when you have it and when you don't?
> 
> See above. If a package needs any headers that do not live in a
> standard 
> place (see e.g. gmp/mpfr.h for gcc or openswan that has a broken
> makefile in this respect) have to specify that explicitely.
> 
>>>> I believe that TARGET_CFLAGS needs to include the Linux Include
>>>> Directory or you will get compolie time errors.
>>> 
>>> I don't have the linux include in my TARGET_CFLAGS AFAIK and do not
>>> get compile errors. What kernel-headers are you using? What errors
>>> are you seeing with what package?
> 


As I mentioned yesterday, I have not been able to reproduce the failure
to build due to lack of Linux/include, 
but the patch I sent does not add anything to TARGET_CFLAGS.

The patch is only making sure that each package listed is compiled
with  CFLAGS=$(TARGET_CFLAGS).

Since the current buildroot does not use $(TARGET_CFLAGS)
when compiling these package the optimization level and debug level
specified in the ".config" file gets ignored.

If this is correct behaviour, then I am confused.
Is there a golden rule, which packages should apply TARGET_CFLAGS 
and which packages should not?

Best Regards,
Ulf Samuelsson

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

end of thread, other threads:[~2007-01-26 18:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-23 23:53 [Buildroot] [PATCH] Set CFLAGS = $(TARGET_CFLAGS) for many packages Ulf Samuelsson
2007-01-24 23:23 ` Bernhard Fischer
2007-01-25  0:02   ` Ulf Samuelsson
2007-01-25  9:18     ` Bernhard Fischer
2007-01-26 18:37       ` Ulf Samuelsson

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