Thread: Compiling pgAdmin on SuSE 10.1
Hi! I tried to compile pgAdmin on a Suse 10.1 system, using a fresh SVN checkout (rev 5210). Attached is a patch with changes I had to apply in order to be able to compile pgAdmin. I also got the following warnings while compiling pgAdmin - got them before and after adding the headers, only line numbers differ: ./frm/frmReport.cpp: In member function ‘virtual void reportObjectDataDictionaryFactory::GenerateReport(frmReport*, pgObject*)’: ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1341: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1389: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1389: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime ./frm/frmReport.cpp:1389: warning: cannot pass objects of non-POD type ‘class wxString’ through ‘...’; call will abort at runtime Suse 10.1 comes with gcc v 4.1.0 if this info is of any help and with some headaches in order to compile pgAdmin, at least for someone like me :) Regards, Miha -- "... the small primitive tribes joined up and became huge, powerful primitive tribes with more sophisticated weapons." -- Terry Pratchett, Small Gods Index: src/include/ctl/ctlSQLResult.h =================================================================== --- src/include/ctl/ctlSQLResult.h (revision 5210) +++ src/include/ctl/ctlSQLResult.h (working copy) @@ -65,7 +65,7 @@ int RunStatus(); wxString GetMessagesAndClear(); wxString GetErrorMessage(); - pgError ctlSQLResult::GetResultError(); + pgError GetResultError(); void DisplayData(bool single=false); Index: src/include/ctl/ctlSQLGrid.h =================================================================== --- src/include/ctl/ctlSQLGrid.h (revision 5210) +++ src/include/ctl/ctlSQLGrid.h (working copy) @@ -28,8 +28,8 @@ int Copy(); virtual bool CheckRowPresent(int row) { return true; } - wxSize ctlSQLGrid::GetBestSize(int row, int col); - void ctlSQLGrid::OnLabelDoubleClick(wxGridEvent& event); + wxSize GetBestSize(int row, int col); + void OnLabelDoubleClick(wxGridEvent& event); }; #endif Index: src/frm/frmReport.cpp =================================================================== --- src/frm/frmReport.cpp (revision 5210) +++ src/frm/frmReport.cpp (working copy) @@ -29,6 +29,9 @@ #include "pgColumn.h" #include "pgConstraints.h" #include "pgaJob.h" +#include "pgForeignKey.h" +#include "pgIndexConstraint.h" +#include "pgCheck.h" // XML2/XSLT headers #include <libxml/xmlmemory.h>
> -----Original Message----- > From: pgadmin-hackers-owner@postgresql.org > [mailto:pgadmin-hackers-owner@postgresql.org] On Behalf Of Miha Radej > Sent: 27 May 2006 16:03 > To: pgadmin-hackers > Subject: [pgadmin-hackers] Compiling pgAdmin on SuSE 10.1 > > Hi! > > I tried to compile pgAdmin on a Suse 10.1 system, using a fresh SVN > checkout (rev 5210). > > Attached is a patch with changes I had to apply in order to be able to > compile pgAdmin. Thanks - applied. We really need a buildfarm.... > I also got the following warnings while compiling pgAdmin - got them > before and after adding the headers, only line numbers differ: > > ./frm/frmReport.cpp: In member function 'virtual void > reportObjectDataDictionaryFactory::GenerateReport(frmReport*, > pgObject*)': > ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type > 'class wxString' through '...'; call will abort at runtime Yeah, these ones only fail on GCC - it's complaining about passing a wxString as a parameter to a variadic function. The fix is to use the c_str() member, eg. printf("%s: %s", sqlState.c_str(), errMsg.c_str()); It's easy to forget :-( Thanks, Dave.
Hi! Dave Page pravi: >> ./frm/frmReport.cpp: In member function 'virtual void >> reportObjectDataDictionaryFactory::GenerateReport(frmReport*, >> pgObject*)': >> ./frm/frmReport.cpp:1335: warning: cannot pass objects of non-POD type >> 'class wxString' through '...'; call will abort at runtime > > Yeah, these ones only fail on GCC - it's complaining about passing a > wxString as a parameter to a variadic function. The fix is to use the > c_str() member, eg. The above warnings are now gone, but I noticed these now: ./frm/frmEditGrid.cpp: In member function ‘void sqlTable::Paste()’: ./frm/frmEditGrid.cpp:1840: warning: comparison between signed and unsigned integer expressions ./frm/frmEditGrid.cpp:1841: warning: comparison between signed and unsigned integer expressions ./frm/frmEditGrid.cpp:1856: warning: comparison between signed and unsigned integer expressions ./frm/frmEditGrid.cpp:1857: warning: comparison between signed and unsigned integer expressions The attached patch is yet another "works for me" kind of patch, I don't know what good/standard C++ practice is in such situations, considering I don't know C++ at all :) Regards, Miha -- "... the small primitive tribes joined up and became huge, powerful primitive tribes with more sophisticated weapons." -- Terry Pratchett, Small Gods Index: src/frm/frmEditGrid.cpp =================================================================== --- src/frm/frmEditGrid.cpp (revision 5211) +++ src/frm/frmEditGrid.cpp (working copy) @@ -1837,8 +1837,8 @@ skipSerial = false; for (col = 0; col < nCols; col++) { - if ((unsigned int)columns[col].type == PGOID_TYPE_SERIAL || - (unsigned int)columns[col].type == PGOID_TYPE_SERIAL8) + if ((unsigned int)columns[col].type == (unsigned int)PGOID_TYPE_SERIAL || + (unsigned int)columns[col].type == (unsigned int)PGOID_TYPE_SERIAL8) { wxMessageDialog msg(GetView()->GetParent(), _("This table contains serial columns. Do you want to use the values in the clipboard for these columns?"), @@ -1853,8 +1853,8 @@ for (col = (hasOids ? 1 : 0); col < nCols && col < (int)data.GetCount(); col++) { - if (!(skipSerial && ((unsigned int)columns[col].type == PGOID_TYPE_SERIAL || - (unsigned int)columns[col].type == PGOID_TYPE_SERIAL8))) + if (!(skipSerial && ((unsigned int)columns[col].type == (unsigned int)PGOID_TYPE_SERIAL || + (unsigned int)columns[col].type == (unsigned int)PGOID_TYPE_SERIAL8))) { SetValue(row, col, data.Item(col)); }
> -----Original Message----- > From: Miha Radej [mailto:miha.radej@siix.com] > Sent: 29 May 2006 21:27 > To: Dave Page > Cc: pgadmin-hackers > Subject: Re: [pgadmin-hackers] Compiling pgAdmin on SuSE 10.1 > > Hi! > > Dave Page pravi: > >> ./frm/frmReport.cpp: In member function 'virtual void > >> reportObjectDataDictionaryFactory::GenerateReport(frmReport*, > >> pgObject*)': > >> ./frm/frmReport.cpp:1335: warning: cannot pass objects of > non-POD type > >> 'class wxString' through '...'; call will abort at runtime > > > > Yeah, these ones only fail on GCC - it's complaining about passing a > > wxString as a parameter to a variadic function. The fix is > to use the > > c_str() member, eg. > > The above warnings are now gone, but I noticed these now: > > ./frm/frmEditGrid.cpp: In member function 'void sqlTable::Paste()': > ./frm/frmEditGrid.cpp:1840: warning: comparison between signed and > unsigned integer expressions > ./frm/frmEditGrid.cpp:1841: warning: comparison between signed and > unsigned integer expressions > ./frm/frmEditGrid.cpp:1856: warning: comparison between signed and > unsigned integer expressions > ./frm/frmEditGrid.cpp:1857: warning: comparison between signed and > unsigned integer expressions > > The attached patch is yet another "works for me" kind of > patch, I don't > know what good/standard C++ practice is in such situations, > considering > I don't know C++ at all :) :-) Modified patch applied. I blind-fixed that one earlier and put the casts on the wrong operands :-( Thanks, Dave.