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  (Dave Page <dpage@postgresql.org>)
Re: compile problems  (ivan.pavlov@gmail.com)
Re: compile problems  (ivan.pavlov@gmail.com)
Список 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 по дате отправления:

Предыдущее
От: svn@pgadmin.org
Дата:
Сообщение: SVN Commit by dpage: r6252 - trunk/www/development
Следующее
От: svn@pgadmin.org
Дата:
Сообщение: SVN Commit by dpage: r6253 - trunk/pgadmin3/pgadmin/utils