Hi.
From: "Tom Lane" <tgl@sss.pgh.pa.us>
> "Hiroshi Saito" <z-saito@guitar.ocn.ne.jp> writes:
>>> Why do you need to #undef EXEC_BACKEND, and is there a specific reason for
>>> removing the include of win32.h?
>
>> I put in in order to avoid -D of the Makefile.
>
> If that matters, the problem is that somebody put the wrong stuff in the
> wrong include file. Backend-only things ought to go in postgres.h not
> c.h. In particular this is wrongly placed:
>
> /* EXEC_BACKEND defines */
> #ifdef EXEC_BACKEND
> #define NON_EXEC_STATIC
> #else
> #define NON_EXEC_STATIC static
> #endif
>
> but AFAICS it doesn't affect anything that pgbench would care about.
> So I'm wondering *exactly* what goes wrong if you don't #undef
> EXEC_BACKEND in pgbench.
>
> As for the FRONTEND #define, that seems essential on Windows (and on no
> other platform) because port/win32.h uses it. But putting the #define
> into pgbench.c (and by implication into anything else we build on
> Windows) sure seems like a broken approach. Where else could we put it?
> It looks like right now that's left to the build system, which might or
> might not be a good idea, but if it is a good idea then pgbench must be
> getting missed. Perhaps instead postgres_fe.h should #define FRONTEND?
Yes, I feared that the physique of a main part broke. Then, Magnus said the
same suggestion as you. It seems that it needs to be brushup.
I am going to improve by the reason referred to as that FRONTEND influences
nmake (libpq) again. Probably, Mugnus is operating main part.?
Thanks.
Regards,
Hiroshi Saito