Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo Catalyst (http://www.linux-archive.org/gentoo-catalyst/)
-   -   Compile flag derivation logic (catalyst 2.x) (http://www.linux-archive.org/gentoo-catalyst/544453-compile-flag-derivation-logic-catalyst-2-x.html)

Sebastian Pipping 06-26-2011 02:04 AM

Compile flag derivation logic (catalyst 2.x)
 
Hello!


It seems that in order to get your own compile flags applied for a
stage3 or stage4 build you need to append a "CFLAGS=" line to
/etc/make.conf from within the envscript - quite a dirty workaround not
to mention the fact that the envscript is sourced multiple times.

This is how final CFLAGS seem to be derived (numbers indicate order so
higher numbers win):

Targets "stage1, "stage2"
1) key "CFLAGS" subarch defaults
2) key "CFLAGS" earlier /etc/make.conf
3) key "cflags" conf file
4) key "cflags" spec file

Targets "stage3", "stage4", "generic_stage"
1) key "CFLAGS" subarch defaults
2) key "CFLAGS" earlier /etc/make.conf

That explains why my stage4 "subarch: core2" isn't really changing
anything: it gets overriden by the /etc/make.conf from the stage3 I am
using.

Is that what you are expecting?

Is my picture broken - are you experiencing something else with your
stage builds?

Can you thing of reasons to not allow overriding CFLAGS and friends for
stage3 and stage4 builds?

Best,



Sebastian

Matt Turner 06-26-2011 02:33 AM

Compile flag derivation logic (catalyst 2.x)
 
On Sat, Jun 25, 2011 at 10:04 PM, Sebastian Pipping <sping@gentoo.org> wrote:
> Hello!
>
>
> It seems that in order to get your own compile flags applied for a
> stage3 or stage4 build you need to append a "CFLAGS=" line to
> /etc/make.conf from within the envscript - quite a dirty workaround not
> to mention the fact that the envscript is sourced multiple times.
>
> This is how final CFLAGS seem to be derived (numbers indicate order so
> higher numbers win):
>
> *Targets "stage1, "stage2"
> * *1) key "CFLAGS" subarch defaults
> * *2) key "CFLAGS" earlier /etc/make.conf
> * *3) key "cflags" conf file
> * *4) key "cflags" spec file
>
> *Targets "stage3", "stage4", "generic_stage"
> * *1) key "CFLAGS" subarch defaults
> * *2) key "CFLAGS" earlier /etc/make.conf
>
> That explains why my stage4 "subarch: core2" isn't really changing
> anything: it gets overriden by the /etc/make.conf from the stage3 I am
> using.
>
> Is that what you are expecting?
>
> Is my picture broken - are you experiencing something else with your
> stage builds?
>
> Can you thing of reasons to not allow overriding CFLAGS and friends for
> stage3 and stage4 builds?

Thanks for writing this up. This has always been a maze to me, so this
is very useful.

I can't think of a situation where CFLAGS specified in the spec or
conf file should be overridden by the CFLAGS in /etc/make.conf. So,
this seems wrong.

Are you saying that cflags specified in the spec file are totally
ignored for stage3 and stage4? That seems totally broken.

Matt

Sebastian Pipping 06-26-2011 02:43 AM

Compile flag derivation logic (catalyst 2.x)
 
On 06/26/2011 04:33 AM, Matt Turner wrote:
>> Targets "stage1, "stage2"
>> 1) key "CFLAGS" subarch defaults
>> 2) key "CFLAGS" earlier /etc/make.conf
>> 3) key "cflags" conf file
>> 4) key "cflags" spec file

I think I need to correct this one to:

Targets "stage1, "stage2"
1) key "CFLAGS" subarch defaults
2) key "cflags" conf file
3) key "cflags" spec file

So no affect from /etc/make.conf in that case. The file is read but the
code applying its settings is override in classes stage1_target and
stage2_target (without calling the original code).


>> Targets "stage3", "stage4", "generic_stage"
>> 1) key "CFLAGS" subarch defaults
>> 2) key "CFLAGS" earlier /etc/make.conf
>>
>> [..]
>
> [..]
>
> Are you saying that cflags specified in the spec file are totally
> ignored for stage3 and stage4? That seems totally broken.

That's my impression, yes.

Best,



Sebastian


All times are GMT. The time now is 02:37 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.