Bug#457009: FTBFS with GCC 4.3: #define redefined

Martin Michlmayr tbm at cyrius.com
Wed Dec 19 03:56:58 UTC 2007


Package: iceape
Version: 1.1.7-1
Usertags: ftbfs-gcc-4.3

Your package fails to build with GCC 4.3.  Version 4.3 has not been
released yet but I'm building with a snapshot in order to find errors
and give people an advance warning.  GCC 4.3 has converted a number
of warnings into errors.  With GCC 4.3, you're no longer to
just redefine a previous #define.  You need to either avoid
redefinitions directly or to use #ifndef to make sure that something
has not been defined already.  See
http://www.cyrius.com/journal/gcc/gcc-4.3-pedwarn.html

You can reproduce this problem with gcc-snapshot from unstable.  Note
that Red Hat, Novell and Ubuntu have done some work getting packages
to build with GCC 4.3 so there might be patches floating around
somewhere.  I suggest you talk to your upstream.

> Automatic build of iceape_1.1.7-1 on papa by sbuild/alpha 0.52
...
> make[5]: Entering directory `/build/tbm/iceape-1.1.7/modules/libpr0n/encoders/png'
> nsPNGEncoder.cpp
> c++ -o nsPNGEncoder.o -c -fvisibility=hidden -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6\" -DOSARCH=\"Linux\" -DBUILD_ID=2007111901  -I../../../../dist/include/xpcom -I../../../../dist/include/gfx -I../../../../dist/include/string -I../../../../dist/include/imglib2 -I../../../../dist/include/imgpnge -I../../../../dist/include -I/usr/include/nspr    -I../../../../dist/sdk/include    -fPIC   -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -mieee -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2 -fno-strict-aliasing -g   -DMOZILLA_CLIENT -include ../../../../mozilla-config.h -Wp,-MD,.deps/nsPNGEncoder.pp nsPNGEncoder.cpp
> In file included from nsPNGEncoder.cpp:40:
> nsPNGEncoder.h:41:1: error: "NS_DECL_IMGIENCODER" redefined
> In file included from nsPNGEncoder.h:38,
>                  from nsPNGEncoder.cpp:40:
> ../../../../dist/include/imglib2/imgIEncoder.h:124:1: error: this is the location of the previous definition
> In file included from ../../../../dist/include/string/nsStringIterator.h:43,
>                  from ../../../../dist/include/string/nsAString.h:47,
>                  from ../../../../dist/include/string/nsSubstring.h:43,
>                  from ../../../../dist/include/string/nsString.h:44,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsCharTraits.h: In static member function 'static PRUnichar nsCharTraits<short unsigned int>::ASCIIToLower(PRUnichar)':
> ../../../../dist/include/string/nsCharTraits.h:249: warning: conversion to 'PRUnichar' from 'int' may alter its value
> ../../../../dist/include/string/nsCharTraits.h: In static member function 'static char nsCharTraits<char>::ASCIIToLower(char)':
> ../../../../dist/include/string/nsCharTraits.h:504: warning: conversion to 'char' from 'int' may alter its value
> In file included from ../../../../dist/include/string/nsDependentSubstring.h:48,
>                  from ../../../../dist/include/string/nsString.h:48,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTDependentSubstring.h: In constructor 'nsDependentSubstring::nsDependentSubstring(const PRUnichar*, const PRUnichar*)':
> ../../../../dist/include/string/nsTDependentSubstring.h:74: warning: conversion to 'PRUint32' from 'long int' may alter its value
> ../../../../dist/include/string/nsTDependentSubstring.h: In constructor 'nsDependentSubstring::nsDependentSubstring(const nsReadingIterator<short unsigned int>&, const nsReadingIterator<short unsigned int>&)':
> ../../../../dist/include/string/nsTDependentSubstring.h:77: warning: conversion to 'PRUint32' from 'long int' may alter its value
> In file included from ../../../../dist/include/string/nsDependentSubstring.h:53,
>                  from ../../../../dist/include/string/nsString.h:48,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTDependentSubstring.h: In constructor 'nsDependentCSubstring::nsDependentCSubstring(const char*, const char*)':
> ../../../../dist/include/string/nsTDependentSubstring.h:74: warning: conversion to 'PRUint32' from 'long int' may alter its value
> ../../../../dist/include/string/nsTDependentSubstring.h: In constructor 'nsDependentCSubstring::nsDependentCSubstring(const nsReadingIterator<char>&, const nsReadingIterator<char>&)':
> ../../../../dist/include/string/nsTDependentSubstring.h:77: warning: conversion to 'PRUint32' from 'long int' may alter its value
> In file included from ../../../../dist/include/string/nsString.h:74,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTString.h: In constructor 'nsFixedString::nsFixedString(PRUnichar*, PRUint32)':
> ../../../../dist/include/string/nsTString.h:464: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> In file included from ../../../../dist/include/string/nsString.h:79,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTString.h: In constructor 'nsFixedCString::nsFixedCString(char*, PRUint32)':
> ../../../../dist/include/string/nsTString.h:464: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> In file included from ../../../../dist/include/string/nsDependentString.h:52,
>                  from ../../../../dist/include/string/nsString.h:202,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTDependentString.h: In constructor 'nsDependentString::nsDependentString(const PRUnichar*, const PRUnichar*)':
> ../../../../dist/include/string/nsTDependentString.h:76: warning: conversion to 'PRUint32' from 'long int' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In constructor 'nsDependentString::nsDependentString(const PRUnichar*)':
> ../../../../dist/include/string/nsTDependentString.h:89: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In member function 'void nsDependentString::Rebind(const PRUnichar*)':
> ../../../../dist/include/string/nsTDependentString.h:117: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In member function 'void nsDependentString::Rebind(const PRUnichar*, const PRUnichar*)':
> ../../../../dist/include/string/nsTDependentString.h:124: warning: conversion to 'PRUint32' from 'long int' may alter its value
> In file included from ../../../../dist/include/string/nsDependentString.h:57,
>                  from ../../../../dist/include/string/nsString.h:202,
>                  from nsPNGEncoder.cpp:42:
> ../../../../dist/include/string/nsTDependentString.h: In constructor 'nsDependentCString::nsDependentCString(const char*, const char*)':
> ../../../../dist/include/string/nsTDependentString.h:76: warning: conversion to 'PRUint32' from 'long int' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In constructor 'nsDependentCString::nsDependentCString(const char*)':
> ../../../../dist/include/string/nsTDependentString.h:89: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In member function 'void nsDependentCString::Rebind(const char*)':
> ../../../../dist/include/string/nsTDependentString.h:117: warning: conversion to 'PRUint32' from 'size_t' may alter its value
> ../../../../dist/include/string/nsTDependentString.h: In member function 'void nsDependentCString::Rebind(const char*, const char*)':
> ../../../../dist/include/string/nsTDependentString.h:124: warning: conversion to 'PRUint32' from 'long int' may alter its value
> nsPNGEncoder.cpp: In member function 'void nsPNGEncoder::ConvertHostARGBRow(const PRUint8*, PRUint8*, PRUint32, PRBool)':
> nsPNGEncoder.cpp:276: warning: cast from 'const PRUint8*' to 'const PRUint32*' increases required alignment of target type
> nsPNGEncoder.cpp:279: warning: conversion to 'PRUint8' from 'unsigned int' may alter its value
> nsPNGEncoder.cpp:283: warning: conversion to 'unsigned char' from 'unsigned int' may alter its value
> nsPNGEncoder.cpp:284: warning: conversion to 'unsigned char' from 'unsigned int' may alter its value
> nsPNGEncoder.cpp:285: warning: conversion to 'unsigned char' from 'unsigned int' may alter its value
> nsPNGEncoder.cpp: In static member function 'static void nsPNGEncoder::WriteCallback(png_struct*, png_byte*, png_size_t)':
> nsPNGEncoder.cpp:335: warning: conversion to 'PRUint32' from 'long unsigned int' may alter its value
> make[5]: *** [nsPNGEncoder.o] Error 1
> make[5]: Leaving directory `/build/tbm/iceape-1.1.7/modules/libpr0n/encoders/png'

-- 
Martin Michlmayr
http://www.cyrius.com/





More information about the pkg-mozilla-maintainers mailing list