dynloader.h missing in prebuilt package for Windows?

Поиск
Список
Период
Сортировка
От Chapman Flack
Тема dynloader.h missing in prebuilt package for Windows?
Дата
Msg-id 5647BDDB.7010705@anastigmatix.net
обсуждение исходный текст
Ответы Re: dynloader.h missing in prebuilt package for Windows?
Список pgsql-hackers
Hi,

This is my first -hackers message; I've recently been putting some effort
into PL/Java since this summer (my employer published a restated IP policy
that seems much friendlier toward FOSS contributions on my own time, so
my PL/Java contributions will be seen to have ticked up since then).

Ken Olson has helped me greatly by testing on Windows, and he noticed
something odd: #include <server/dynloader.h> fails on Windows when building
an extension out-of-tree, simply because that file isn't there. He tells me
that a lot of sites using PG on Windows will have obtained it from an EDB
binary distribution, so I am not sure whether that file is missing because
of PG's Windows build tooling, or because of something in the way EDB makes
their packages.

As far as either of us can tell, the <dynloader.h> file distributed for
any given platform is one of the templates in backend/port/dynloader,
and (on platforms that use configure), the proper one is chosen by
configure, and ends up supplied as dynloader.h in postgresql-devel
sorts of packages, so it can be seen when building extensions out-of-tree.

There is a win32.h in backend/port/dynloader, and Ken got compilation to
succeed by duplicating the contents of that file in place of the #include,
so it seems that is the file that *should* become <dynloader.h> in a
Windows package. I do notice there is a tools/msvc/Mkvcbuild.pm with code
in it to make use of the backend/port/dynloader/win32.c file, but it
makes no mention of the .h file.

Am I right in thinking some version of <server/dynloader.h> is intended
to be present on every platform, and its absence on Windows is simply
an oversight in building/packaging? The compiler seems happy with

#ifndef _MSC_VER
#include <server/dynloader.h>
#else
... pasted copy of win32.h from the source tree ...
#endif

but I assume it's preferable to have the same code work on Windows as on
other platforms when possible.

Regards,
Chapman Flack



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: RLS and LEAKPROOF functions
Следующее
От: Tom Lane
Дата:
Сообщение: Re: dynloader.h missing in prebuilt package for Windows?