This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc 3.4, error: conflicting types for local extern variabled


Olaf Hering <olh@suse.de> writes:

>  On Sun, Sep 14, Andreas Jaeger wrote:
>
>> Olaf Hering <olh@suse.de> writes:
>> 
>> > Hello,
>> >
>> > is this a new feature, do we have to fix the kernel?
>> 
>> 
>> > [...]
>> > setup.c: In function `find_bootinfo':
>> >
>> > setup.c:433: error: conflicting types for '__bss_start'
>> > setup.c:261: error: previous declaration of '__bss_start'
>> 
>> What is in line 261?
>> 
>> > olaf@nectarine:/dev/shm/linux-2.4.23-pre4/arch/ppc/kernel> grep -n __bss_start setup.c                                                                              261:    extern char __bss_start, _end;                                                                                                                              270:    memset_io(PTRRELOC(&__bss_start), 0, &_end - &__bss_start);

sorry, missed this.

>
> see the grep output.

So, you have:
extern char __bss_start;
extern char __bss_start[];

And those are two different types.  So, when and why was this changed?

The second one is correct, the first one is broken.  You'll better
discuss with the kernel folks.

> btw, what type has a declaration in vmlinux.lds? void pointer?

void pointer - but the compiler does not see this, that is seen by the
linker - and you get a compiler error.

Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]