GCC 3.4 issue

Andrew Lunn andrew@lunn.ch
Fri Feb 27 15:54:00 GMT 2004


On Fri, Feb 27, 2004 at 08:37:46AM -0700, Gary Thomas wrote:
> Just for grins, I thought I'd give 3.4 (pre-release) a spin.  Lo and behold,
> there are problems (PPC at least):
> 
> powerpc-eabi-gcc -c  -I/work/moab/t/install/include -I/work2/ecos/packages/io/fileio/current -I/work2/ecos/packages/io/fileio/current/src -I/work2/ecos/packages/io/fileio/current/tests -I. -I/work2/ecos/packages/io/fileio/current/src/ -msoft-float -mcpu=405 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions   -Wp,-MD,src/file.tmp -o src/io_fileio_file.o /work2/ecos/packages/io/fileio/current/src/file.cxx
> cc1plus: warning: command line option "-Wstrict-prototypes" is valid for C/ObjC but not for C++
> /tmp/cchuPi8h.s: Assembler messages:
> /tmp/cchuPi8h.s:105: Error: symbol `__cygvar_discard_me__' is already defined
> 
> This comes from use of this macro:
> 
> // -------------------------------------------------------------------------
> // Reference a symbol without explicitly making use of it. Ensures that
> // the object containing the symbol will be included when linking.
> 
> #define CYG_REFERENCE_OBJECT(__object__)                                 \
>      CYG_MACRO_START                                                     \
>      static void *__cygvar_discard_me__ __attribute__ ((unused)) =       \
>                                                           &(__object__); \
>      CYG_MACRO_END

Have you looked at the assembly code to work out what is going on? 

Im guessing there are multiple invocations of CYG_REFERENCE_OBJECT()
and its not respecting the static keyword. If thats true its a bug in
GCC which should be fixed.

    Andrew



More information about the Ecos-devel mailing list