Re: compile problems
От | Florian G. Pflug |
---|---|
Тема | Re: compile problems |
Дата | |
Msg-id | 4637607E.7070201@phlo.org обсуждение исходный текст |
Ответ на | Re: compile problems (Giuseppe Sacco <giuseppe@eppesuigoccas.homedns.org>) |
Ответы |
Re: compile problems
Re: compile problems Re: compile problems |
Список | pgadmin-hackers |
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
В списке pgadmin-hackers по дате отправления: