Thread: compile problems
Hi all, I am recompiling pgAdmin from SVN since I would like to check my updated translation, but I get these errors: if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/postgresql -DSSL -I/usr/local/wxWidgets-2.8.2/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/local/wxWidgets-2.8.2/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -O2 -I/usr/include/libxml2 -I/usr/include/libxml2 -DDATA_DIR= \"/usr/loca/pgadmin3-1.8.2/share/pgadmin3/\" -Wall -I../pgadmin/include -MT keywords.o -MD -MP -MF ".deps/keywords.Tpo" -c -o keywords.o `test -f './db/keywords.c' || echo './'`./db/keywords.c; \ then mv -f ".deps/keywords.Tpo" ".deps/keywords.Po"; else rm -f ".deps/keywords.Tpo"; exit 1; fi In file included from ./db/keywords.c:22: gram.y:122: error: expected specifier-qualifier-list before ‘JoinType’ make[2]: *** [keywords.o] Error 1 anyone knows what's wrong? Thanks, Giuseppe
Hi Giuseppe, Giuseppe Sacco a écrit : > I am recompiling pgAdmin from SVN since I would like to check my updated > translation, but I get these errors: > > if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/postgresql -DSSL > -I/usr/local/wxWidgets-2.8.2/lib/wx/include/gtk2-unicode-release-2.8 > -I/usr/local/wxWidgets-2.8.2/include/wx-2.8 -D_FILE_OFFSET_BITS=64 > -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -O2 > -I/usr/include/libxml2 -I/usr/include/libxml2 -DDATA_DIR= > \"/usr/loca/pgadmin3-1.8.2/share/pgadmin3/\" -Wall -I../pgadmin/include > -MT keywords.o -MD -MP -MF ".deps/keywords.Tpo" -c -o keywords.o `test > -f './db/keywords.c' || echo './'`./db/keywords.c; \ > then mv -f ".deps/keywords.Tpo" ".deps/keywords.Po"; else rm -f > ".deps/keywords.Tpo"; exit 1; fi > In file included from ./db/keywords.c:22: > gram.y:122: error: expected specifier-qualifier-list before ‘JoinType’ > make[2]: *** [keywords.o] Error 1 > > anyone knows what's wrong? > It compiles on my box with current SVN. Sometimes, I need to "make clean" to have a correct build. Perhaps you can try this. Regards. -- Guillaume. http://www.postgresqlfr.org http://docs.postgresqlfr.org
Il giorno dom, 22/04/2007 alle 15.45 +0200, Guillaume Lelarge ha scritto: [...] > It compiles on my box with current SVN. Sometimes, I need to "make > clean" to have a correct build. Perhaps you can try this. I tried both "make clean" and "make distclean". What version of wxWidgets are you using? Bye, Giuseppe
Giuseppe Sacco a écrit : > Il giorno dom, 22/04/2007 alle 15.45 +0200, Guillaume Lelarge ha > scritto: > [...] >> It compiles on my box with current SVN. Sometimes, I need to "make >> clean" to have a correct build. Perhaps you can try this. > > I tried both "make clean" and "make distclean". What version of > wxWidgets are you using? > 2.8.0, the one bundled with Ubuntu Feisty. You can also try to rm your dir if you didn't make any changes (save your .po file) and svn update the whole. -- Guillaume. http://www.postgresqlfr.org http://docs.postgresqlfr.org
Il giorno dom, 22/04/2007 alle 17.13 +0200, Guillaume Lelarge ha scritto: [...] > You can also try to rm your dir if you didn't make any changes (save > your .po file) and svn update the whole. I still cannot compile from current SVN. I deleted all the source tree, checked out from svn, bootstrap, configure, make. I always get the error: if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/postgresql -DSSL -I/usr/local/wxWidgets-2.8.2/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/local/wxWidgets-2.8.2/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -O2 -I/usr/include/libxml2 -I/usr/include/libxml2 -DDATA_DIR= \"/usr/local/pgadmin3-1.8.2/share/pgadmin3/\" -Wall -I../pgadmin/include -MT keywords.o -MD -MP -MF ".deps/keywords.Tpo" -c -o keywords.o `test -f './db/keywords.c' || echo './'`./db/keywords.c; \ then mv -f ".deps/keywords.Tpo" ".deps/keywords.Po"; else rm -f ".deps/keywords.Tpo"; exit 1; fi In file included from ./db/keywords.c:22: gram.y:122: error: expected specifier-qualifier-list before ‘JoinType’ make[2]: *** [keywords.o] Error 1 I checked the source and I believe there is something missing: JoinType is never defined. Could you please tell me in what source it is defined? Thanks, Giuseppe
Giuseppe Sacco wrote: > if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/postgresql -DSSL > -I/usr/local/wxWidgets-2.8.2/lib/wx/include/gtk2-unicode-release-2.8 > -I/usr/local/wxWidgets-2.8.2/include/wx-2.8 -D_FILE_OFFSET_BITS=64 > -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 -D__WXGTK__ -O2 > -I/usr/include/libxml2 -I/usr/include/libxml2 -DDATA_DIR= > \"/usr/local/pgadmin3-1.8.2/share/pgadmin3/\" -Wall -I../pgadmin/include > -MT keywords.o -MD -MP -MF ".deps/keywords.Tpo" -c -o keywords.o `test > -f './db/keywords.c' || echo './'`./db/keywords.c; \ > then mv -f ".deps/keywords.Tpo" ".deps/keywords.Po"; else rm -f > ".deps/keywords.Tpo"; exit 1; fi > In file included from ./db/keywords.c:22: > gram.y:122: error: expected specifier-qualifier-list before ‘JoinType’ > make[2]: *** [keywords.o] Error 1 > > I checked the source and I believe there is something missing: JoinType > is never defined. Could you please tell me in what source it is defined? Hm, the files pgadmin/include/keywords.h, pgadmin/include/parse.h, pgadmin/db/keywords.c are periodically copied from the postgresql sources, where parse.h is actually generated by bison from gram.y JoinType is some postgresql-internal datastructure, that is neither needed nor used inside pgAdmin3 - it just happens to be mentioned in parse.h, because this file originates from postgresql. I think that the only parts of parse.h that pgAdmin3 is interested in are the defines at the top, and maybe the enum yytokentype. misc.cpp does the following before including parse.h to suppress the typedef: #define YYSTYPE_IS_DECLARED #define DECIMAL DECIMAL_P typedef int YYSTYPE; while postgres.h (which is included in keywords.c before parse.h) does the following: #define YYTOKENTYPE #define YYSTYPE int I think that for some reason, the former does what it's supposed to on your system, but that latter doesn't. Could you try replacing #define YYTOKENTYPE #define YYSTYPE int in postgres.h with #define YYSTYPE_IS_DECLARED typedef int YYSTYPE; and see if that helps? If no, please also try adding the #define YYTOKENTYPE back to postgres.h (but keep the other changes) @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed anymore - or at least "find ./ -name "*.h" | xargs grep DECIMAL" and "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... greetings, Florian Pflug
Florian G. Pflug wrote: > @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed anymore - > or at least "find ./ -name "*.h" | xargs grep DECIMAL" and > "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... Yeah, seems to be surplus. Removed, thanks. /D
Dave Page a écrit : > Florian G. Pflug wrote: >> @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed >> anymore - >> or at least "find ./ -name "*.h" | xargs grep DECIMAL" and >> "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... > > Yeah, seems to be surplus. Removed, thanks. > I don't think so. Or you need this patch :) Regards. -- Guillaume. http://www.postgresqlfr.org http://docs.postgresqlfr.org Index: pgadmin/utils/misc.cpp =================================================================== --- pgadmin/utils/misc.cpp (révision 6253) +++ pgadmin/utils/misc.cpp (copie de travail) @@ -356,7 +356,7 @@ case BOOLEAN_P: case CHAR_P: case CHARACTER: - case DECIMAL: + case DECIMAL_P: case DOUBLE_P: case FLOAT_P: case INT_P:
Guillaume Lelarge wrote: > Dave Page a écrit : >> Florian G. Pflug wrote: >>> @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed >>> anymore - >>> or at least "find ./ -name "*.h" | xargs grep DECIMAL" and >>> "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... >> >> Yeah, seems to be surplus. Removed, thanks. >> > > I don't think so. Or you need this patch :) *Puts brown paper bag over his head* You're right of course. I don't know what I was thinking when I grepped only through the .c and .h files, and omitted the .cpp files, but it obviously wasn't something very bright.. ;-) greetings, Florian Pflug
Guillaume Lelarge wrote: > Dave Page a écrit : >> Florian G. Pflug wrote: >>> @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed >>> anymore - >>> or at least "find ./ -name "*.h" | xargs grep DECIMAL" and >>> "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... >> >> Yeah, seems to be surplus. Removed, thanks. >> > > I don't think so. Or you need this patch :) Hmm, Windows must define it elsewhere then. Reverted, thanks. Regards, Dave.
Florian G. Pflug wrote: > Guillaume Lelarge wrote: >> Dave Page a écrit : >>> Florian G. Pflug wrote: >>>> @dave: I think that the "#define DECIMAL DECIMAP_P" isn't needed >>>> anymore - >>>> or at least "find ./ -name "*.h" | xargs grep DECIMAL" and >>>> "find ./ -name "*.c" | xargs grep DECIMAL" seem to indicate that... >>> >>> Yeah, seems to be surplus. Removed, thanks. >>> >> >> I don't think so. Or you need this patch :) > > *Puts brown paper bag over his head* You're right of course. > I don't know what I was thinking when I grepped only through > the .c and .h files, and omitted the .cpp files, but it obviously > wasn't something very bright.. ;-) If it makes you feel any better, I didn't spot that either, and it *did* build on Windows. :-) Regards Dave
On May 1, 6:45 pm, f...@phlo.org ("Florian G. Pflug") wrote: > I think that for some reason, the former does what it's supposed to on your > system, but that latter doesn't. Could you try replacing > #define YYTOKENTYPE > #define YYSTYPE int > in postgres.h with > #define YYSTYPE_IS_DECLARED > typedef int YYSTYPE; > and see if that helps? If no, please also try adding the > #define YYTOKENTYPE back to postgres.h (but keep the other changes) It doesn't help. Still can't compile with the same error. ivan
On May 1, 6:45 pm, f...@phlo.org ("Florian G. Pflug") wrote: > I think that for some reason, the former does what it's supposed to on your > system, but that latter doesn't. Could you try replacing > #define YYTOKENTYPE > #define YYSTYPE int > in postgres.h with > #define YYSTYPE_IS_DECLARED > typedef int YYSTYPE; > and see if that helps? If no, please also try adding the > #define YYTOKENTYPE back to postgres.h (but keep the other changes) It doesn't help. Still can't compile with the same error. ivan