public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* Re: linux-next: build failure after merge of the ext4 tree
       [not found]           ` <20130808191650.GB3282@free.fr>
@ 2013-08-08 21:54             ` Yann E. MORIN
  2013-08-08 23:58               ` Stephen Rothwell
  2013-08-09 11:42               ` Sam Ravnborg
  0 siblings, 2 replies; 7+ messages in thread
From: Yann E. MORIN @ 2013-08-08 21:54 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Steven Rostedt, Michal Marek, Kevin Hilman, sedat.dilek,
	Theodore Ts'o, linux-next, linux-kernel, Linux kbuild ML

Stephen, All,

On 2013-08-08 21:16 +0200, Yann E. MORIN spake thusly:
> On 2013-08-08 10:36 +1000, Stephen Rothwell spake thusly:
> > On Thu, 8 Aug 2013 10:22:28 +1000 Stephen Rothwell <sfr@canb.auug.org.au>
> > wrote:
> > >
> > > More quick testing with an empty file: v3.9 is OK, v3.10 gives
> > > CONFIG_MODULES unset.
> 
> Sorry, I don't understand the above. Can you elaborate on what you did,
> what you got, what expected, so I can try to reproduce and fix this,
> please?

Ok, I've had a look in the linux-next archives, and I think I got it.
Is the following right?

    git clean -d; git clean -dX     # To be sure tree is clean
    touch empty
    make KCONFIG_ALLCONFIG=empty allmodconfig
    grep MODULES .config
    $ CONFIG_MODULES is not set

If so, I think I found the reason: the modules symbol is _always_ set to
being valid as soon as KCONFIG_ALLCONFIG is read, even if it was not
present in that file.

Since it is set to be valid, the following change means it is not
affected another value later on.

So, I wonder what the best option is:
  1- revert the following, and find another solution,
  2- de-specialise the modules symbol,
  3- or further specialise the modules symbol.

I'd be inclined to go for 1, but I have no straightforward idea so far.
It's late here, so I'll look more thouroughly this WE.

> > Bisecting gives:
> > 
> > cfa98f2e0ae956feca935573e977d7661a9561b9 is the first bad commit
> > commit cfa98f2e0ae956feca935573e977d7661a9561b9
> > Author: Yann E. MORIN <yann.morin.1998@free.fr>
> > Date:   Wed Apr 24 22:00:04 2013 +0200
> > 
> >     kconfig: do not override symbols already set
> >     
> >     For randconfig, if a list of required symbols is specified with
> >     KCONFIG_ALLCONFIG, such symbols do not "have a value" as per
> >     sym_has_value(), but have the "valid" flag set.
> >     
> >     Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > 
> > And reverting that commit in v3.10 gives me CONFIG_MODULES=y.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-08 21:54             ` linux-next: build failure after merge of the ext4 tree Yann E. MORIN
@ 2013-08-08 23:58               ` Stephen Rothwell
  2013-08-09 11:42               ` Sam Ravnborg
  1 sibling, 0 replies; 7+ messages in thread
From: Stephen Rothwell @ 2013-08-08 23:58 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Steven Rostedt, Michal Marek, Kevin Hilman, sedat.dilek,
	Theodore Ts'o, linux-next, linux-kernel, Linux kbuild ML

[-- Attachment #1: Type: text/plain, Size: 1132 bytes --]

Hi Yann,

On Thu, 8 Aug 2013 23:54:49 +0200 "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
>
> Ok, I've had a look in the linux-next archives, and I think I got it.
> Is the following right?
> 
>     git clean -d; git clean -dX     # To be sure tree is clean
>     touch empty
>     make KCONFIG_ALLCONFIG=empty allmodconfig
>     grep MODULES .config
>     $ CONFIG_MODULES is not set

Yes, that is what I am seeing.

> If so, I think I found the reason: the modules symbol is _always_ set to
> being valid as soon as KCONFIG_ALLCONFIG is read, even if it was not
> present in that file.
> 
> Since it is set to be valid, the following change means it is not
> affected another value later on.
> 
> So, I wonder what the best option is:
>   1- revert the following, and find another solution,
>   2- de-specialise the modules symbol,
>   3- or further specialise the modules symbol.
> 
> I'd be inclined to go for 1, but I have no straightforward idea so far.
> It's late here, so I'll look more thouroughly this WE.

Thanks.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-08 21:54             ` linux-next: build failure after merge of the ext4 tree Yann E. MORIN
  2013-08-08 23:58               ` Stephen Rothwell
@ 2013-08-09 11:42               ` Sam Ravnborg
  2013-08-11 21:39                 ` Yann E. MORIN
  1 sibling, 1 reply; 7+ messages in thread
From: Sam Ravnborg @ 2013-08-09 11:42 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Stephen Rothwell, Steven Rostedt, Michal Marek, Kevin Hilman,
	sedat.dilek, Theodore Ts'o, linux-next, linux-kernel,
	Linux kbuild ML

On Thu, Aug 08, 2013 at 11:54:49PM +0200, Yann E. MORIN wrote:
> Stephen, All,
> 
> On 2013-08-08 21:16 +0200, Yann E. MORIN spake thusly:
> > On 2013-08-08 10:36 +1000, Stephen Rothwell spake thusly:
> > > On Thu, 8 Aug 2013 10:22:28 +1000 Stephen Rothwell <sfr@canb.auug.org.au>
> > > wrote:
> > > >
> > > > More quick testing with an empty file: v3.9 is OK, v3.10 gives
> > > > CONFIG_MODULES unset.
> > 
> > Sorry, I don't understand the above. Can you elaborate on what you did,
> > what you got, what expected, so I can try to reproduce and fix this,
> > please?
> 
> Ok, I've had a look in the linux-next archives, and I think I got it.
> Is the following right?
> 
>     git clean -d; git clean -dX     # To be sure tree is clean
>     touch empty
>     make KCONFIG_ALLCONFIG=empty allmodconfig
>     grep MODULES .config
>     $ CONFIG_MODULES is not set
> 
> If so, I think I found the reason: the modules symbol is _always_ set to
> being valid as soon as KCONFIG_ALLCONFIG is read, even if it was not
> present in that file.
> 
> Since it is set to be valid, the following change means it is not
> affected another value later on.
> 
> So, I wonder what the best option is:
>   1- revert the following, and find another solution,
>   2- de-specialise the modules symbol,
>   3- or further specialise the modules symbol.

If we drop the special handling of "MODULES" and introduced
the following in we may fix it - hopefully:

config MODULES
	option modules

The option handling is already in place. It is even documented :-)

At least we could then drop the sym_lookup here (zconf.y):
        if (!modules_sym->prop) {
                struct property *prop;

                prop = prop_alloc(P_DEFAULT, modules_sym);
                prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
        }
Without the sym_lookup I think the symbol will not be defined and tus not marked valid.

Soory - no patch as I am busy with day-time job stuff.

	Sam

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-09 11:42               ` Sam Ravnborg
@ 2013-08-11 21:39                 ` Yann E. MORIN
  2013-08-16 13:10                   ` Michal Marek
  0 siblings, 1 reply; 7+ messages in thread
From: Yann E. MORIN @ 2013-08-11 21:39 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Stephen Rothwell, Steven Rostedt, Michal Marek, Kevin Hilman,
	sedat.dilek, Theodore Ts'o, linux-next, linux-kernel,
	Linux kbuild ML

Sam, All,

On 2013-08-09 13:42 +0200, Sam Ravnborg spake thusly:
> On Thu, Aug 08, 2013 at 11:54:49PM +0200, Yann E. MORIN wrote:
> > Stephen, All,
> > 
> > On 2013-08-08 21:16 +0200, Yann E. MORIN spake thusly:
> > > On 2013-08-08 10:36 +1000, Stephen Rothwell spake thusly:
> > > > On Thu, 8 Aug 2013 10:22:28 +1000 Stephen Rothwell <sfr@canb.auug.org.au>
> > > > wrote:
> > > > >
> > > > > More quick testing with an empty file: v3.9 is OK, v3.10 gives
> > > > > CONFIG_MODULES unset.
> > > 
> > > Sorry, I don't understand the above. Can you elaborate on what you did,
> > > what you got, what expected, so I can try to reproduce and fix this,
> > > please?
> > 
> > Ok, I've had a look in the linux-next archives, and I think I got it.
> > Is the following right?
> > 
> >     git clean -d; git clean -dX     # To be sure tree is clean
> >     touch empty
> >     make KCONFIG_ALLCONFIG=empty allmodconfig
> >     grep MODULES .config
> >     $ CONFIG_MODULES is not set
> > 
> > If so, I think I found the reason: the modules symbol is _always_ set to
> > being valid as soon as KCONFIG_ALLCONFIG is read, even if it was not
> > present in that file.
> > 
> > Since it is set to be valid, the following change means it is not
> > affected another value later on.
> > 
> > So, I wonder what the best option is:
> >   1- revert the following, and find another solution,
> >   2- de-specialise the modules symbol,
> >   3- or further specialise the modules symbol.
> 
> If we drop the special handling of "MODULES" and introduced
> the following in we may fix it - hopefully:
> 
> config MODULES
> 	option modules
> 
> The option handling is already in place. It is even documented :-)

Yes, indeed, that one is pretty easy! :-)

> At least we could then drop the sym_lookup here (zconf.y):
>         if (!modules_sym->prop) {
>                 struct property *prop;
> 
>                 prop = prop_alloc(P_DEFAULT, modules_sym);
>                 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
>         }
> Without the sym_lookup I think the symbol will not be defined and tus not marked valid.

Sorry, I don't understand what we should do here.

From what I understand, here's what happens:
  - there's no symbol that declared the 'modules' option, so the
    modules_sym->prop is NULL;
  - so we look for the symbol 'MODULES' and use that as the symbol used
    to evaluate if tristates are enabled.

So, now we have 'option modules' added to MODULES, we never enter this
if() condition.

But what would happen to other projects that do not have a symbol set
with 'option modules' and no 'MODULES' symbol? Surely, those projects do
not need tristates, but what should the code do in this case?

So, I don't know what to replace this 'sym_lookup("MODULES", 0)' with.

> Soory - no patch as I am busy with day-time job stuff.

I hope you can share some guidnce here, please... ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-11 21:39                 ` Yann E. MORIN
@ 2013-08-16 13:10                   ` Michal Marek
  2013-08-16 17:14                     ` Sam Ravnborg
  0 siblings, 1 reply; 7+ messages in thread
From: Michal Marek @ 2013-08-16 13:10 UTC (permalink / raw)
  To: Yann E. MORIN
  Cc: Sam Ravnborg, Stephen Rothwell, Steven Rostedt, Kevin Hilman,
	sedat.dilek, Theodore Ts'o, linux-next, linux-kernel,
	Linux kbuild ML

On 11.8.2013 23:39, Yann E. MORIN wrote:
> On 2013-08-09 13:42 +0200, Sam Ravnborg spake thusly:
>> If we drop the special handling of "MODULES" and introduced
>> the following in we may fix it - hopefully:
>>
>> config MODULES
>> 	option modules
>>
>> The option handling is already in place. It is even documented :-)
> 
> Yes, indeed, that one is pretty easy! :-)
> 
>> At least we could then drop the sym_lookup here (zconf.y):
>>         if (!modules_sym->prop) {
>>                 struct property *prop;
>>
>>                 prop = prop_alloc(P_DEFAULT, modules_sym);
>>                 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
>>         }
>> Without the sym_lookup I think the symbol will not be defined and tus not marked valid.
> 
> Sorry, I don't understand what we should do here.
> 
> From what I understand, here's what happens:
>   - there's no symbol that declared the 'modules' option, so the
>     modules_sym->prop is NULL;
>   - so we look for the symbol 'MODULES' and use that as the symbol used
>     to evaluate if tristates are enabled.
> 
> So, now we have 'option modules' added to MODULES, we never enter this
> if() condition.
> 
> But what would happen to other projects that do not have a symbol set
> with 'option modules' and no 'MODULES' symbol? Surely, those projects do
> not need tristates, but what should the code do in this case?
> 
> So, I don't know what to replace this 'sym_lookup("MODULES", 0)' with.

If the Kconfig files do not provide any symbol with 'option modules',
then set modules_sym to a dummy bool with the value 'n'?

Thanks,
Michal

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-16 13:10                   ` Michal Marek
@ 2013-08-16 17:14                     ` Sam Ravnborg
  2013-08-16 18:02                       ` Yann E. MORIN
  0 siblings, 1 reply; 7+ messages in thread
From: Sam Ravnborg @ 2013-08-16 17:14 UTC (permalink / raw)
  To: Michal Marek
  Cc: Yann E. MORIN, Stephen Rothwell, Steven Rostedt, Kevin Hilman,
	sedat.dilek, Theodore Ts'o, linux-next, linux-kernel,
	Linux kbuild ML

On Fri, Aug 16, 2013 at 03:10:38PM +0200, Michal Marek wrote:
> On 11.8.2013 23:39, Yann E. MORIN wrote:
> > On 2013-08-09 13:42 +0200, Sam Ravnborg spake thusly:
> >> If we drop the special handling of "MODULES" and introduced
> >> the following in we may fix it - hopefully:
> >>
> >> config MODULES
> >> 	option modules
> >>
> >> The option handling is already in place. It is even documented :-)
> > 
> > Yes, indeed, that one is pretty easy! :-)
> > 
> >> At least we could then drop the sym_lookup here (zconf.y):
> >>         if (!modules_sym->prop) {
> >>                 struct property *prop;
> >>
> >>                 prop = prop_alloc(P_DEFAULT, modules_sym);
> >>                 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
> >>         }
> >> Without the sym_lookup I think the symbol will not be defined and tus not marked valid.
> > 
> > Sorry, I don't understand what we should do here.
> > 
> > From what I understand, here's what happens:
> >   - there's no symbol that declared the 'modules' option, so the
> >     modules_sym->prop is NULL;
> >   - so we look for the symbol 'MODULES' and use that as the symbol used
> >     to evaluate if tristates are enabled.
> > 
> > So, now we have 'option modules' added to MODULES, we never enter this
> > if() condition.
> > 
> > But what would happen to other projects that do not have a symbol set
> > with 'option modules' and no 'MODULES' symbol? Surely, those projects do
> > not need tristates, but what should the code do in this case?
> > 
> > So, I don't know what to replace this 'sym_lookup("MODULES", 0)' with.
> 
> If the Kconfig files do not provide any symbol with 'option modules',
> then set modules_sym to a dummy bool with the value 'n'?
This is my thinking too - to use the symbol "n".
But I wanted to try it out - but so far have not had time for it.

	Sam

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

* Re: linux-next: build failure after merge of the ext4 tree
  2013-08-16 17:14                     ` Sam Ravnborg
@ 2013-08-16 18:02                       ` Yann E. MORIN
  0 siblings, 0 replies; 7+ messages in thread
From: Yann E. MORIN @ 2013-08-16 18:02 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Michal Marek, Stephen Rothwell, Steven Rostedt, Kevin Hilman,
	sedat.dilek, Theodore Ts'o, linux-next, linux-kernel,
	Linux kbuild ML

Sam, Michal, All,

On 2013-08-16 19:14 +0200, Sam Ravnborg spake thusly:
> On Fri, Aug 16, 2013 at 03:10:38PM +0200, Michal Marek wrote:
> > On 11.8.2013 23:39, Yann E. MORIN wrote:
> > > On 2013-08-09 13:42 +0200, Sam Ravnborg spake thusly:
> > >> If we drop the special handling of "MODULES" and introduced
> > >> the following in we may fix it - hopefully:
> > >>
> > >> config MODULES
> > >> 	option modules
> > >>
> > >> The option handling is already in place. It is even documented :-)
> > > 
> > > Yes, indeed, that one is pretty easy! :-)
> > > 
> > >> At least we could then drop the sym_lookup here (zconf.y):
> > >>         if (!modules_sym->prop) {
> > >>                 struct property *prop;
> > >>
> > >>                 prop = prop_alloc(P_DEFAULT, modules_sym);
> > >>                 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
> > >>         }
> > >> Without the sym_lookup I think the symbol will not be defined and tus not marked valid.
> > > 
> > > Sorry, I don't understand what we should do here.
> > > 
> > > From what I understand, here's what happens:
> > >   - there's no symbol that declared the 'modules' option, so the
> > >     modules_sym->prop is NULL;
> > >   - so we look for the symbol 'MODULES' and use that as the symbol used
> > >     to evaluate if tristates are enabled.
> > > 
> > > So, now we have 'option modules' added to MODULES, we never enter this
> > > if() condition.
> > > 
> > > But what would happen to other projects that do not have a symbol set
> > > with 'option modules' and no 'MODULES' symbol? Surely, those projects do
> > > not need tristates, but what should the code do in this case?
> > > 
> > > So, I don't know what to replace this 'sym_lookup("MODULES", 0)' with.
> > 
> > If the Kconfig files do not provide any symbol with 'option modules',
> > then set modules_sym to a dummy bool with the value 'n'?
> This is my thinking too - to use the symbol "n".
> But I wanted to try it out - but so far have not had time for it.

OK, I'll tackle this. Thanks for the info. :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

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

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20130729110816.12958c3a26400f444a9a5012@canb.auug.org.au>
     [not found] ` <CA+icZUUt4domktYZZn0Qp3BZoSFqmKic4qSnVP4cuTKwUww_=A@mail.gmail.com>
     [not found]   ` <20130807153840.4f2997b603397c07aca98b2d@canb.auug.org.au>
     [not found]     ` <87zjsted0c.fsf@linaro.org>
     [not found]       ` <20130808102228.d2034d3a4c986d2970926ab9@canb.auug.org.au>
     [not found]         ` <20130808103614.a039da2f236154b52329b28b@canb.auug.org.au>
     [not found]           ` <20130808191650.GB3282@free.fr>
2013-08-08 21:54             ` linux-next: build failure after merge of the ext4 tree Yann E. MORIN
2013-08-08 23:58               ` Stephen Rothwell
2013-08-09 11:42               ` Sam Ravnborg
2013-08-11 21:39                 ` Yann E. MORIN
2013-08-16 13:10                   ` Michal Marek
2013-08-16 17:14                     ` Sam Ravnborg
2013-08-16 18:02                       ` Yann E. MORIN

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