drivers/video/logo/logo_linux_mono.c build error

Geert Uytterhoeven Geert.Uytterhoeven at sonycom.com
Thu May 14 17:24:22 EST 2009


On Wed, 13 May 2009, Andrew Morton wrote:
> On Tue, 28 Apr 2009 09:24:53 +0200 (CEST)
> Geert Uytterhoeven <Geert.Uytterhoeven at sonycom.com> wrote:
> > On Tue, 28 Apr 2009, Stephen Rothwell wrote:
> > > On Mon, 27 Apr 2009 14:50:31 -0700 Andrew Morton <akpm at linux-foundation.org> wrote:
> > > > powerpc allmodconfig, current mainline:
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > 
> > > > drivers/video/logo/logo_linux_mono.c:11: error: logo_linux_mono_data causes a section type conflict
> > > > 
> > > > switching it from __initconst to __initdata "fixes" it.
> > > 
> > > Interesting.  The program that generates the .c file above produces
> > > __initdata for me ...
> > 
> > I assume Andrew once built in that tree using the recent logo patches that
> >   1. Makes the logos const and switch them from __initdata to __initconst,
> >   2. Fix the missing dependency of the generated files on the generator program.
> > Hence if you revert the logo patches, you have to manually remove the generated
> > files.
> > 
> > Is my assumption correct?
> 
> Nope - mrproper removes every .c file from drivers/video/logo/ apart
> from logo.c
> 
> 
> 
> The failure is caused by your fbdev-move-logo-externs-to-header-file.patch.

Which is not in current mainline, so the above reference was incorrectly
fueling my assumption?

> Without that patch, drivers/video/logo/logo_linux_mono.c is generated as
> 
> 	static unsigned char logo_linux_mono_data[] __initdata = {
> 	
> and with that patch, drivers/video/logo/logo_linux_mono.c is generated as
> 
> 	static const unsigned char logo_linux_mono_data[] __initconst = {
> 
> and it's the switch from __initdata to __initconst which causes this
> section conflict in my setup.

But logo_linux_mono_data is referenced by 

    const struct linux_logo logo_linux_mono __initconst = { 
	    .type           = LINUX_LOGO_MONO,
	    .width          = 80,
	    .height         = 80,
	    .data           = logo_linux_mono_data
    };      

only, which is also __initconst? Where does the section type conflict come
from?

With kind regards,

Geert Uytterhoeven
Software Architect
Techsoft Centre

Technology and Software Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:    +32 (0)2 700 8453
Fax:      +32 (0)2 700 8622
E-mail:   Geert.Uytterhoeven at sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010



More information about the Linuxppc-dev mailing list