"Hiroshi Saito" <[EMAIL PROTECTED]> 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? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend