On Mon, Oct 24, 2011 at 01:13:05PM +0200, Mònica Ramírez Arceda wrote:
> During a rebuild of all packages in sid, your package failed to build on
> amd64.
> 
> Relevant part:
> > x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I..  
> > -DDATA_DIR=\"/usr/share/pgadmin3/\" -I../pgadmin/include   
> > -I/usr/include/postgresql/9.1/server -I/usr/include/postgresql 
> > -I/usr/include/postgresql/9.1/server -I/usr/include/postgresql -DSSL 
> > -DHAVE_CONNINFO_PARSE -I/usr/lib/wx/include/gtk2-unicode-release-2.8 
> > -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ 
> > -DEMBED_XRC -I/usr/include/libxml2 -I/usr/include/libxml2  -Wall -O2 -c -o 
> > ctlCheckTreeView.o `test -f './ctl/ctlCheckTreeView.cpp' || echo 
> > './'`./ctl/ctlCheckTreeView.cpp
> > In file included from ../pgadmin/include/utils/sysSettings.h:15:0,
> >                  from ../pgadmin/include/pgAdmin3.h:37,
> >                  from ./agent/pgaStep.cpp:16:
> > ../pgadmin/include/utils/sysLogger.h:62:1: error: expected initializer 
> > before 'ATTRIBUTE_PRINTF_1'

This is due to this patch which I recently applied to wxwidgets2.8:

http://patch-tracker.debian.org/patch/series/view/wxwidgets2.8/2.8.12.1-3/fix-macro-namespace-pollution.patch

The bug motivating this change is here:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521924

My take on this is that the ATTRIBUTE_PRINTF* macros weren't intended to
be used outside of the wx headers - there aren't publicly documented
anywhere, and wx upstream has renamed them in 2.9 without mentioning the
fact in docs/changes.txt (which is intended to document all wx API
changes).

So I would say it's a bug in pgadmin that it makes use of these macros -
it should define them itself if it needs them (and to avoid clashes with
everyone else who carelessly defines them without thinking through the
implications, it ought to define something like PG_ATTRIBUTE_PRINTF*
instead of ATTRIBUTE_PRINTF*).

These macros expand to GCC attributes which allow printf format
checking, which allow the compiler to perform more checks but don't
matter for correct compilation.  So a crude workaround to address this
in the short-term would be to just define them to be empty if not
already defined, for example:

#ifndef ATTRIBUTE_PRINTF_1
# define ATTRIBUTE_PRINTF_1
#endif

Cheers,
    Olly



--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to