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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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 Content-Type Size
pgadmin_29.jpg image/jpeg 104.2 KB
build_29.patch text/x-patch 3.6 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2011-02-02 18:51:23 Re: phase 2 of wxWidgets 2.9 build
Previous Message Peter Geoghegan 2011-02-02 15:48:10 Re: phase 2 of wxWidgets 2.9 build