GCC Warning on MIPS

Joel Sherrill joel.sherrill at OARcorp.com
Tue Apr 22 15:13:38 UTC 2008


Ralf Corsepius wrote:
> On Tue, 2008-04-22 at 10:01 -0500, Joel Sherrill wrote:
>   
>> Ralf Corsepius wrote:
>>     
>>> On Tue, 2008-04-22 at 09:25 -0500, Joel Sherrill wrote:
>>>
>>>       
>>>> Ralf,
>>>>
>>>> I know neither of us go digging through build
>>>> logs when the build works, but I came across this
>>>> warning building GCC SVN trunk targeting mips-rtems4.9
>>>>
>>>> In file included from ./tm.h:10,
>>>>                  from ../../gcc/gcc/gencheck.c:24:
>>>> ../../gcc/gcc/config/rtems.h:21:1: warning: "NO_IMPLICIT_EXTERN_C" redefined
>>>> In file included from ./tm.h:8,
>>>>
>>>> Not critical but is repeated about 10,000 times. :-D
>>>>
>>>> I think the #define NO_IMPLICIT_EXTERN_C in gcc/config/rtems.h
>>>> needs an ifndef or an undef added.
>>>>
>>>> What do you think we need to do?
>>>>
>>>>         
>>> Hmm, do you have this patch below applied?
>>>
>>> diff -Naur gcc-4.3.0.orig/gcc/config/mips/elf.h gcc-4.3.0/gcc/config/mips/elf.h
>>> --- gcc-4.3.0.orig/gcc/config/mips/elf.h        2007-08-02 12:49:31.000000000 +0200
>>> +++ gcc-4.3.0/gcc/config/mips/elf.h     2008-03-06 16:22:30.000000000 +0100
>>> @@ -48,6 +48,4 @@
>>>  #undef  ENDFILE_SPEC
>>>  #define ENDFILE_SPEC "crtend%O%s crtn%O%s"
>>>
>>> -#define NO_IMPLICIT_EXTERN_C 1
>>> -
>>>  #define HANDLE_PRAGMA_PACK_PUSH_POP 1
>>>
>>>
>>> This is a general bug in the mips port (I _know_ it is), but ...
>>> upstream refuses to apply it, which forces us to keep it as a separate
>>> patch :)
>>>
>>>
>>>       
>> In many cases throughout the gcc config files, they just undef
>> the previous one and redefine.  In the above, ENDFILE_SPEC
>> is done that way.  Three of the five definitions in config/rtems.h
>> have an undef in front of them.  Would it be so bad to just
>> do that for the rest of the ones in rtems.h?
>>     
>
> Why should they?
>
> Wrt. to NO_IMPLICIT_EXTERN_C, to me this doesn't make any sense at all.
>
>   
Maybe not but there is precedence for it.  The shared
config files for a number of other OSes do this:

[joel at iceland config]$ grep -r NO_IMPLICIT_EXTERN_C .| grep ifndef | 
grep -v .svn
./lynx.h:#ifndef NO_IMPLICIT_EXTERN_C
[joel at iceland config]$ grep -r NO_IMPLICIT_EXTERN_C .| grep undef| grep 
-v .svn
./netbsd.h:#undef  NO_IMPLICIT_EXTERN_C
./rs6000/sysv4.h:#undef  NO_IMPLICIT_EXTERN_C
./i386/sco5.h:#undef NO_IMPLICIT_EXTERN_C
./freebsd.h:#undef  NO_IMPLICIT_EXTERN_C
./vx-common.h:#undef  NO_IMPLICIT_EXTERN_C
./sparc/openbsd64.h:#undef NO_IMPLICIT_EXTERN_C

--joel
> Ralf
>
>
>
>   

\



More information about the users mailing list