All of lore.kernel.org
 help / color / mirror / Atom feed
* linux-next: kbuild tree build failure
@ 2008-11-26  4:42 Stephen Rothwell
  2008-11-26 21:06 ` Sam Ravnborg
  0 siblings, 1 reply; 50+ messages in thread
From: Stephen Rothwell @ 2008-11-26  4:42 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-next

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

Hi Sam,

Today's linux-next build (x86_64 allmodconfig) failed like this:

In file included from arch/x86/include/asm/processor.h:15,
                 from include/linux/prefetch.h:14,
                 from include/linux/list.h:6,
                 from include/linux/module.h:9,
                 from kernel/configs.mod.c:1:
arch/x86/include/asm/current.h:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'struct'

and went rapidly down hill from there.

I have dropped the kbuild tree again.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

^ permalink raw reply	[flat|nested] 50+ messages in thread
* linux-next: kbuild tree build failure
@ 2009-10-14  1:20 Stephen Rothwell
  2009-10-14  7:43 ` Sam Ravnborg
  0 siblings, 1 reply; 50+ messages in thread
From: Stephen Rothwell @ 2009-10-14  1:20 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: linux-next, linux-kernel, David S. Miller, Arnaldo Carvalho de Melo

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

Hi Sam,

Today's linux-next build (x86_64 allmodconfig) failed like this:

In file included from arch/x86/kernel/syscall_64.c:28:
arch/x86/include/asm/unistd_64.h:665: error: array index in initializer exceeds array bounds
arch/x86/include/asm/unistd_64.h:665: error: (near initialization for 'sys_call_table')
arch/x86/include/asm/unistd_64.h:665: warning: excess elements in array initializer
arch/x86/include/asm/unistd_64.h:665: warning: (near initialization for 'sys_call_table')

Exposed by commit a2e2725541fad72416326798c2d7fa4dafb7d337 ("net:
Introduce recvmmsg socket syscall").  include/asm/asm-offsets.h did not
get updated even though arch/x86/kernel/asm-offsets.s did.  Ah,
generated/asm-offsets.h has been updated but my build tree still has the
(generated in a previous build) include/asm/asm-offsets.h which is
presumably found before the new arch/x86/include/asm/asm-offsets.h
introduced by commit fe5ff47a5d79ca99ec7e3155eb19469b44905b2c ("kbuild:
move asm-offsets.h to include/generated").

Sam, can you think of a better migration path?

I removed include/asm/asm_offsets.h from my object tree and everything
builds ok.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

^ permalink raw reply	[flat|nested] 50+ messages in thread
* linux-next: kbuild tree build failure
@ 2009-06-09  1:48 Stephen Rothwell
  2009-06-09 16:15 ` Sam Ravnborg
  0 siblings, 1 reply; 50+ messages in thread
From: Stephen Rothwell @ 2009-06-09  1:48 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-next, linux-kernel

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

Hi Sam,

Today's linux-next build (powerpc ppc64_defconfig) failed like this:

powerpc-linux-ld:arch/powerpc/kernel/vmlinux.lds:190: syntax error

Caused by commit 59d59d97e34c6593bec43666679b28da5d583958 ("Improve
vmlinux.lds.h support for arch specific linker scripts") which was
clearly not build tested - don't do that! There is a missing \ at the end
of a line in the definition of the HEAD_SECTION macro.

I have used the version of the kbuild tree from next-20090605.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

^ permalink raw reply	[flat|nested] 50+ messages in thread
* linux-next: kbuild tree build failure
@ 2009-05-05  1:17 Stephen Rothwell
  2009-05-05  6:35 ` Jan Beulich
  0 siblings, 1 reply; 50+ messages in thread
From: Stephen Rothwell @ 2009-05-05  1:17 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-next, Jan Beulich, Steven Whitehouse

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

Hi Sam,

Today's linux-next build (powerpc ppc64_defconfig) failed like this:

fs/nfs/nfsroot.c:400: error: __setup_str_nfs_root_setup causes a section type conflict
fs/nfs/nfsroot.c:400: error: __setup_str_nfs_root_setup causes a section type conflict

We get these occasionally on powerpc builds - Usually from
EXPORT_SYMBOLS.  Though I was hoping that using a newer compiler would
fix that (I am now compiling with gcc 4.4.0).

Direct cause is commit efbe795f5f63b74ed642e196518907355aa94bd7
("initconst adjustments").

OK, looking at the preprocessor output, I see we have a previous variable
(static match_table_t __initconst tokens) with __attribute__ ((__section__
(".init.rodata"))) but it is not const ... (This came from commit
a447c0932445f92ce6f4c1bd020f62c5097a7842 "vfs: Use const for kernel
parser table" which changed "tokens" from __initdata to __initconst.  Not
using "const" seems deliberate, but the changelog does not include enough
information as to why.)

So, I will revert the above commit for today to allow it to be "improved"
by also fixing the tokens variable definition above.  Of course there may
be other places where such mixed definitions exist.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

^ permalink raw reply	[flat|nested] 50+ messages in thread
* linux-next: kbuild tree build failure
@ 2008-11-25  4:47 Stephen Rothwell
  2008-11-25  8:42 ` Sam Ravnborg
  0 siblings, 1 reply; 50+ messages in thread
From: Stephen Rothwell @ 2008-11-25  4:47 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-next

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

Hi Sam,

Today's linux-next build (powerpc ppc64_defconfig) failed like this:

WARNING: modpost: Found 11 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
.tmp_kallsyms1.S:1:23: error: asm/types.h: No such file or directory

I have dropped the kbuild tree for today.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: linux-next: kbuild tree build failure
@ 2008-07-12 22:32 ` Milton Miller
  0 siblings, 0 replies; 50+ messages in thread
From: Milton Miller @ 2008-07-12 22:32 UTC (permalink / raw)
  To: Roman Zippel
  Cc: ppcdev, Stephen Rothwell, linux-kernel, Michael Ellerman,
	Paul Mackerras, Sam Ravnborg, Benjamin Herrenschmidt

In-Reply-To: <Pine.LNX.4.64.0807101654080.6791@localhost.localdomain>

On Fri Jul 11 00:59:25 EST 2008, Roman Zippel wrote:
> On Thu, 10 Jul 2008, Michael Ellerman wrote:
>
> > Well yes :)  But I think that's because you're thinking of
> > "end-users" and I'm thinking of "users" like myself - ie. _I_ use
> > Kconfig and I do expect myself to be able to type a 64-bit address.
>
> That doesn't really answer my question, why you need this.
>
> > > > --- .config.orig  2008-07-08 09:30:00.000000000 +1000
> > > > +++ .config       2008-07-08 09:30:43.000000000 +1000
> > > > @@ -370,9 +370,8 @@
> > > >  CONFIG_HOTPLUG_PCI_RPA=m
> > > >  CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
> > > >  # CONFIG_HAS_RAPIDIO is not set
> > > > -CONFIG_PAGE_OFFSET=0xc000000000000000
> > > > -CONFIG_KERNEL_START=0xc000000002000000
> > > > -CONFIG_PHYSICAL_START=0x02000000
> > > > +CONFIG_PAGE_OFFSET=0xc0000000
> > > > +CONFIG_PHYSICAL_START=0x2000000
> > >
> > > Why is this worse? These are constants, you're not supposed to 
> change them
> > > anyway.
> > > The remaining values are generated in page.h and should be the 
> same as
> > > before. If that isn't the case and this patch produces a nonworking
> > > kernel, I'd like to hear about it.
> >
> > You're right the built kernel is fine. So it's not a bug,
>

But its horrible code.

> Good, could someone please ack whether the powerpc changes are 
> acceptable?
>

Well, since no one else has said it,
NAK

The primary reason I object is this:
>>>> Index: linux-2.6/include/asm-powerpc/page.h
>>>> ===================================================================
>>>> --- linux-2.6.orig/include/asm-powerpc/page.h
>>>> +++ linux-2.6/include/asm-powerpc/page.h
>>>> @@ -67,9 +67,15 @@
>>>>   * If you want to test if something's a kernel address, use 
>>>> is_kernel_addr().
>>>>   */
>>>>
>>>> -#define KERNELBASE      ASM_CONST(CONFIG_KERNEL_START)
>>>> +#ifdef CONFIG_PPC64
>>>> +#define PAGE_OFFSET    (ASM_CONST(CONFIG_PAGE_OFFSET) << 32)
>>>> +#define KERNELBASE     
>>>> (PAGE_OFFSET+ASM_CONST(CONFIG_PHYSICAL_START))
>>>> +#define LOAD_OFFSET    PAGE_OFFSET
>>>> +#else
>>>> +#define KERNELBASE     ASM_CONST(CONFIG_KERNEL_START)
>>>>  #define PAGE_OFFSET    ASM_CONST(CONFIG_PAGE_OFFSET)
>>>> -#define LOAD_OFFSET    
>>>> ASM_CONST((CONFIG_KERNEL_START-CONFIG_PHYSICAL_START))
>>>> +#define LOAD_OFFSET    
>>>> (ASM_CONST(CONFIG_KERNEL_START)-ASM_CONST(CONFIG_PHYSICAL_START))
>>>> +#endif
>>>>
>>>>  #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_FLATMEM)
>>>>  #ifndef __ASSEMBLY__

(1) #define PAGE_OFFSET    (ASM_CONST(CONFIG_PAGE_OFFSET) << 32)

It creates unreadable code, where two defines with almost the same name 
(the only difference being
the CONFIG_ prefix, which is often ignored when scanning) contains 
radically different values.

(2)  #define PAGE_OFFSET    ASM_CONST(CONFIG_PAGE_OFFSET)

It creates config variables that mean different things depending on 
other config variables
The 32 and 64 bit powerpc kernel share a common source, a config 
variable should be used for
only one purpose.



> > but I think it is nicer to have the real values in the .config.
>
> Why?

Mostly consistency between the different portions of the archticture.

As I remember, this code was adjusted and some of the defines moved 
from page.h
as part of the 32 bit relocatable kernel for 85xx booke ASMP support.

The 32 bit kernel has advanced options to change the VMA split, which 
enable
direct user input when explicitly defined.  That allows us to not need 
patches
for the embedded boards who need some other split than 3G/1G.  So there
is the reason that we have this directly specified in Kconfig at all.

While the 64 bit kernel doesn't need to actually change the page 
offset, as we
don't support the full 64 bits of the real address anyways (in fact, the
archtiecture prevents us from doing so) and therefore don't need to 
adjust
the effective address spilt between user and kernel.

But introducing config variables that mean different things is 
UNMAINTAINABLE.

Also, I remember, CONFIG_PAGE_OFFSET is used by the linker script and 
previously
page.h was conditionally included.   Does it always include page.h now?



On a seperate note,
>>>>  config PINT3_ASSIGN
>>>>         hex "PINT3_ASSIGN"
>>>>         depends on PINTx_REASSIGN
>>>> -       default 0x02020303
>>>> +       default 0x2020303

is harder to read.   The value is a list of 4 1 byte values, but you 
have hidden the first nibble making parsing the rest of the value hard.

>>>>
>>>>  config IRAM_SIZE
>>>>         hex "Internal memory size (hex)"
>>>>         depends on (CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || 
>>>> CHIP_OPSP || CHIP_M32104) && DISCONTIGMEM
>>>> -       default "00080000" if CHIP_M32700
>>>> -       default "00010000" if CHIP_M32102 || CHIP_OPSP || 
>>>> CHIP_M32104
>>>> -       default "00008000" if CHIP_VDEC2
>>>> +       default "0x80000" if CHIP_M32700
>>>> +       default "0x10000" if CHIP_M32102 || CHIP_OPSP || CHIP_M32104
>>>> +       default "0x8000" if CHIP_VDEC2

Likewize, I find it easier to mentally check the order of magnitude and 
compare sizes when they have
leading zeros and are right aligned.


Going to another email in the thread,

On Fri Jul 11 00:52:25 EST 2008, Roman Zippel wrpte:
> On Tue, 8 Jul 2008, Sam Ravnborg wrote:
> > We use Kconfig for a mixture of user editable values and fixed
> > configuration values.
> > And I agree that asking the user to input a 64 bit number is not 
> usefull.
> >
> > But keeping support for 64 bit values is what I would consider
> > expected functionality.
...
> > > This would also ease on any portability issues
> > > (kconfig is compiled with the host compiler not the target 
> compiler).
> >
> > We use strtol() in a few places in symbol.c already where we do an
> > implicit conversion to int. Why did this not cause us problems 
> before?
> >
> > Is it because these code paths are only triggered when we deal with 
> ranges?
> > If so we could 'fix' strdup_type() to not use strto{,u}l() so it
> > is 64 bit clean and we are back to old behaviour.
>
> Ranges are the primary reason I made it consistent with this.
> If we really wanted to support 64bit numbers, it would create only more
> problems. First you have to make sure that on every build host (i.e 
> also
> non-Linux) strtoll() is available. Then how it should these numbers be
> represented? On 32bit these may need a 'll' postfix, but the powerpc
> example already shows, that there are different requirements, so they 
> use
> ASM_CONST for that. How should this postprecessing be integrated into
> kconfig?

I think the architectures will already do something like ASM_CONST in
their C code when its needed.  This should not be the responsibility of
kbuild.

If you are worried about users tring to set values that are too high,
then make the types be hex8, hex16, hex32, and hex64.

milton


^ permalink raw reply	[flat|nested] 50+ messages in thread
* linux-next: kbuild tree build failure
@ 2008-07-07  8:40 ` Stephen Rothwell
  0 siblings, 0 replies; 50+ messages in thread
From: Stephen Rothwell @ 2008-07-07  8:40 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: linux-next, Roman Zippel, Paul Mackerras, linuxppc-dev

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

Hi Sam,

Today's linux-next build (powerpc ppc64_defconfig) failed like this:

arch/powerpc/platforms/cell/spu_base.c: In function '__spu_trap_data_seg':
arch/powerpc/platforms/cell/spu_base.c:194: error: duplicate case value
arch/powerpc/platforms/cell/spu_base.c:177: error: previously used here

This means that USER_REGION_ID (line 177) is the same as KERNEL_REGION_ID
(line 194).

>From include/asm-powerpc/pgtable-ppc64.h:

#define REGION_SHIFT            60UL
#define REGION_MASK             (0xfUL << REGION_SHIFT)
#define REGION_ID(ea)           (((unsigned long)(ea)) >> REGION_SHIFT)

#define VMALLOC_REGION_ID       (REGION_ID(VMALLOC_START))
#define KERNEL_REGION_ID        (REGION_ID(PAGE_OFFSET))
#define VMEMMAP_REGION_ID       (0xfUL)
#define USER_REGION_ID          (0UL)

>From include/asm-powerpc/page.h:

#define PAGE_OFFSET     ASM_CONST(CONFIG_PAGE_OFFSET)

>From .config:

CONFIG_PAGE_OFFSET=0xffffffff

Not good.

>From arch/powerpc/Kconfig (ADVANCED_OPTIONS is not set):

config PAGE_OFFSET_BOOL
        bool "Set custom page offset address"
        depends on ADVANCED_OPTIONS

config PAGE_OFFSET
        hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
        default "0xc0000000"

if PPC64
config PAGE_OFFSET
        hex
        default "0xc000000000000000"
endif

Reverting commit 9ba4ff5059e1a26698786373c8c71321c37ef7f9 ("kconfig:
normalize int/hex values") seems to have fixed it.

>From .config:

CONFIG_PAGE_OFFSET=0xc000000000000000

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

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

end of thread, other threads:[~2009-10-14  7:44 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-26  4:42 linux-next: kbuild tree build failure Stephen Rothwell
2008-11-26 21:06 ` Sam Ravnborg
2008-11-26 23:49   ` Stephen Rothwell
2008-12-03  0:36   ` Stephen Rothwell
2008-12-03  9:46     ` Sam Ravnborg
  -- strict thread matches above, loose matches on Subject: below --
2009-10-14  1:20 Stephen Rothwell
2009-10-14  7:43 ` Sam Ravnborg
2009-06-09  1:48 Stephen Rothwell
2009-06-09 16:15 ` Sam Ravnborg
2009-06-09 16:19   ` Stephen Rothwell
2009-06-09 21:04     ` Sam Ravnborg
2009-06-09 23:27       ` Stephen Rothwell
2009-05-05  1:17 Stephen Rothwell
2009-05-05  6:35 ` Jan Beulich
2009-05-05  6:43   ` Sam Ravnborg
2009-05-05  7:04     ` Jan Beulich
2008-11-25  4:47 Stephen Rothwell
2008-11-25  8:42 ` Sam Ravnborg
2008-11-25  8:58   ` Stephen Rothwell
2008-07-12 22:32 Milton Miller
2008-07-12 22:32 ` Milton Miller
2008-07-12 23:21 ` Roman Zippel
2008-07-12 23:21   ` Roman Zippel
2008-07-07  8:40 Stephen Rothwell
2008-07-07  8:40 ` Stephen Rothwell
2008-07-07 12:51 ` Sam Ravnborg
2008-07-07 12:51   ` Sam Ravnborg
2008-07-07 13:08   ` Stephen Rothwell
2008-07-07 13:08     ` Stephen Rothwell
2008-07-07 16:13 ` Roman Zippel
2008-07-07 16:13   ` Roman Zippel
2008-07-07 21:01   ` Sam Ravnborg
2008-07-07 23:36   ` Michael Ellerman
2008-07-07 23:36     ` Michael Ellerman
2008-07-08  2:55     ` Roman Zippel
2008-07-08  2:55       ` Roman Zippel
2008-07-10  0:51       ` Michael Ellerman
2008-07-10  0:51         ` Michael Ellerman
2008-07-10 14:59         ` Roman Zippel
2008-07-10 14:59           ` Roman Zippel
2008-07-14 16:53           ` Milton Miller
2008-07-14 16:53             ` Milton Miller
2008-07-08 21:19   ` Sam Ravnborg
2008-07-10 14:52     ` Roman Zippel
2008-07-25  4:13 ` Stephen Rothwell
2008-07-25  4:13   ` Stephen Rothwell
2008-07-26 10:06   ` Sam Ravnborg
2008-07-26 10:06     ` Sam Ravnborg
2008-07-26 12:40     ` Stephen Rothwell
2008-07-26 12:40       ` Stephen Rothwell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.