Skip site navigation (1) Skip section navigation (2)

Re: phase 2 of wxWidgets 2.9 build

From: Peter Geoghegan <peter(dot)geoghegan86(at)gmail(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers(at)postgresql(dot)org
Subject: Re: phase 2 of wxWidgets 2.9 build
Date: 2011-02-02 18:23:06
Message-ID: AANLkTi=HzohCcdayDU98VjrcBvvdUOsnD=+553ViXFFN@mail.gmail.com (view raw or flat)
Thread:
Lists: pgadmin-hackers
Well, none of that has worked. However, considering this:

[peter(at)localhost local]$ nm -D
/usr/local/lib/libwx_gtk2u_adv-2.9.so.1.0.0 | grep wxBitmapComboBox |
grep Insert | c++filt
000000000016b8b0 T wxBitmapComboBox::SetInsertionPoint(long)
000000000016ce10 T
wxBitmapComboBox::GTKInsertComboBoxTextItem(unsigned int, wxString
const&)
000000000016ca70 T wxBitmapComboBox::Insert(wxString const&, wxBitmap
const&, unsigned int)
000000000016cc10 T wxBitmapComboBox::Insert(wxString const&, wxBitmap
const&, unsigned int, wxClientData*)
*snip*

I find it hard to argue with my linker on this one - the last function
should have a void* as its last parameter. I suspect a bug in 2.9.1 .

Changing this:
cbConnection->Insert(newconn->GetName(),
CreateBitmap(GetServerColour(newconn)), sel, newconn);
to this:
cbConnection->Insert(newconn->GetName(),
CreateBitmap(GetServerColour(newconn)), sel, (wxClientData*)newconn);

so that the wxClientData* overload rather than the void* overload is
called seems to have fixed the problem.

We have a complete 2.9 build!

[peter(at)localhost pgadmin]$ ldd pgadmin3
	linux-vdso.so.1 =>  (0x00007fffc7bff000)
	libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003195c00000)
	libwx_gtk2u_stc-2.9.so.1 => /usr/local/lib/libwx_gtk2u_stc-2.9.so.1
(0x00007fbb05ecf000)
	libwxcode_gtk2u_ogl-2.9.so.0 =>
/usr/local/lib/libwxcode_gtk2u_ogl-2.9.so.0 (0x00007fbb05c44000)
	libwx_gtk2u_aui-2.9.so.1 => /usr/local/lib/libwx_gtk2u_aui-2.9.so.1
(0x00007fbb05989000)
	libwx_gtk2u_xrc-2.9.so.1 => /usr/local/lib/libwx_gtk2u_xrc-2.9.so.1
(0x00007fbb05605000)
	libwx_gtk2u_html-2.9.so.1 => /usr/local/lib/libwx_gtk2u_html-2.9.so.1
(0x00007fbb052bc000)
	libwx_gtk2u_qa-2.9.so.1 => /usr/local/lib/libwx_gtk2u_qa-2.9.so.1
(0x00007fbb05061000)
	libwx_gtk2u_adv-2.9.so.1 => /usr/local/lib/libwx_gtk2u_adv-2.9.so.1
(0x00007fbb04c62000)
	libwx_gtk2u_core-2.9.so.1 => /usr/local/lib/libwx_gtk2u_core-2.9.so.1
(0x00007fbb04355000)
	libwx_baseu_xml-2.9.so.1 => /usr/local/lib/libwx_baseu_xml-2.9.so.1
(0x00007fbb04119000)
	libwx_baseu_net-2.9.so.1 => /usr/local/lib/libwx_baseu_net-2.9.so.1
(0x00007fbb03eb7000)
	libwx_baseu-2.9.so.1 => /usr/local/lib/libwx_baseu-2.9.so.1
(0x00007fbb0397c000)
	libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003195400000)
	libz.so.1 => /lib64/libz.so.1 (0x000000318a600000)
	libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00000031a0400000)
	libm.so.6 => /lib64/libm.so.6 (0x000000318a200000)
	libcrypto.so.10 => /lib64/libcrypto.so.10 (0x0000003196000000)
	libpq.so.5 => /usr/local/pgsql/lib/libpq.so.5 (0x00007fbb03756000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x000000318fa00000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000318aa00000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003189600000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003189200000)
	libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003195000000)
	libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003193800000)
	libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000003196c00000)
	libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003195800000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x000000318ce00000)
	libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x0000003639c00000)
	libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x0000003639400000)
	libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x0000003194800000)
	libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003191200000)
	libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x0000003192800000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0
(0x0000003193400000)
	libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000318de00000)
	libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x0000003192000000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000318d200000)
	libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x000000318da00000)
	libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x000000318b600000)
	libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000003190200000)
	libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x000000318b200000)
	librt.so.1 => /lib64/librt.so.1 (0x0000003189e00000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x000000318ae00000)
	libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x0000003198800000)
	libSM.so.6 => /usr/lib64/libSM.so.6 (0x00000034ca200000)
	libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x000000319c000000)
	libdl.so.2 => /lib64/libdl.so.2 (0x0000003189a00000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003188e00000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x000000318ba00000)
	libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0
(0x0000003639000000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000318c600000)
	libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x000000318e600000)
	libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x0000003639800000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000318d600000)
	libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000318ee00000)
	libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x000000318ea00000)
	libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000318e200000)
	libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x000000318f200000)
	libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x000000318f600000)
	libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x0000003194c00000)
	libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x0000003191800000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x000000318ca00000)
	libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003190600000)
	libuuid.so.1 => /lib64/libuuid.so.1 (0x00000034c9e00000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000318be00000)
	libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x0000003193000000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000318c200000)

Now to investigate this assertion failure, that I see plenty of:

/usr/local/include/wx-2.9/wx/strvararg.h(449): assert "(argtype &
(wxFormatStringSpecifier<T>::value)) == argtype" failed in
wxArgNormalizer(): format specifier doesn't match argument type

ASSERT INFO:
/usr/local/include/wx-2.9/wx/strvararg.h(449): assert "(argtype &
(wxFormatStringSpecifier<T>::value)) == argtype" failed in
wxArgNormalizer(): format specifier doesn't match argument type

BACKTRACE:
[1] wxOnAssert(char const*, int, char const*, char const*, char const*)
[2] wxArgNormalizer() /usr/local/include/wx-2.9/wx/strvararg.h:449
[3] wxArgNormalizerUtf8() /usr/local/include/wx-2.9/wx/strvararg.h:481
[4] int wxString::Printf<unsigned long>(wxFormatString const&,
unsigned long) /usr/local/include/wx-2.9/wx/string.h:2305
[5] pgCollection::UpdateChildCount(ctlTree*, int)
/home/peter/pgadmin3/pgadmin/./schema/pgCollection.cpp:93
*SNIP*

We seem to just get an assertion failure when refreshing an expanded
node where we would have crashed before. Progress.

I've attached:

A patch for anyone that wants to reproduce this. It doesn't break the 2.8 build.

A screenshot, which seems to show some minor problems with this build
of pgAdmin, that are probably related to AUI in some way.

-- 
Regards,
Peter Geoghegan

Attachment: build_29.patch
Description: text/x-patch (3.6 KB)
Attachment: pgadmin_29.jpg
Description: image/jpeg (104.2 KB)

In response to

Responses

pgadmin-hackers by date

Next:From: Dave PageDate: 2011-02-02 18:51:23
Subject: Re: phase 2 of wxWidgets 2.9 build
Previous:From: Peter GeogheganDate: 2011-02-02 15:48:10
Subject: Re: phase 2 of wxWidgets 2.9 build

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group