Re: dynloader.h missing in prebuilt package for Windows?

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: "Olson, Ken" <Ken(dot)Olson(at)pega(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, "chap(at)anastigmatix(dot)net" <chap(at)anastigmatix(dot)net>
Subject: Re: dynloader.h missing in prebuilt package for Windows?
Date: 2015-12-29 19:08:19
Message-ID: 20151229190819.GA23552@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Dec 6, 2015 at 07:16:24PM +0000, Olson, Ken wrote:
> I have downloaded a fresh copy of the Win x64 installer (postgresql-9.4.5-2-windows-x64.exe) from http://www.enterprisedb.com/products-services-training/pgdownload. The output of pg_config and assodicated directory listing of include/server:
...
> Directory of C:\PROGRA~1\POSTGR~1\9.4\include\server
>
> 11/19/2015 12:19 AM 30,882 c.h
> 11/19/2015 12:19 AM 30,626 fmgr.h
> 11/19/2015 12:19 AM 10,711 funcapi.h
> 11/19/2015 12:19 AM 3,986 getaddrinfo.h
> 11/19/2015 12:19 AM 660 getopt_long.h
> 11/19/2015 12:19 AM 15,482 miscadmin.h
> 11/19/2015 12:45 AM 21,702 pg_config.h
> 11/19/2015 12:45 AM 253 pg_config_ext.h
> 11/19/2015 12:19 AM 10,875 pg_config_manual.h
> 11/19/2015 12:45 AM 13,392 pg_config_os.h
> 11/19/2015 12:19 AM 1,084 pg_getopt.h
> 11/19/2015 12:19 AM 316 pg_trace.h
> 11/19/2015 12:19 AM 27,166 pgstat.h
> 11/19/2015 12:19 AM 606 pgtar.h
> 11/19/2015 12:19 AM 2,309 pgtime.h
> 11/19/2015 12:19 AM 27,489 plpgsql.h
> 11/19/2015 12:19 AM 14,096 port.h
> 11/19/2015 12:19 AM 21,398 postgres.h
> 11/19/2015 12:19 AM 2,109 postgres_ext.h
> 11/19/2015 12:19 AM 763 postgres_fe.h
> 11/19/2015 12:19 AM 843 rusagestub.h
> 11/19/2015 12:19 AM 2,379 windowapi.h

Sorry, I am just getting to this. This list helps. Looking at the
'configure' run on Debian, I see at the bottom:

config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/backend/port/unix_latch.c to src/backend/port/pg_latch.c
1 config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
2 config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

Line #2 copies pg_config_os.h to src/include, and later all
src/include/*.h files are copied to the install directory by
src/include/Makefile. The same happens for dynloader.h on line #1.

In the Windows MSVC build, we handle pg_config_os.h in the Perl scripts,
but not dynloader.h. The attached patch copies the process used for
pg_config_os.h to handle dynloader.h. I believe this is the only *.h
file that has this problem.

This should fix the PL/Java Windows build problem. I don't think I will
get this patch into 9.5.0 but will put it in after 9.5.0 is released and
it will appear in all the next minor version releases, including 9.5.1,
which should happen in the next 60 days.

Thanks.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ As you are, so once was I. As I am, so you will be. +
+ Roman grave inscription +

Attachment Content-Type Size
dynloader.h.diff text/x-diff 2.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chapman Flack 2015-12-29 20:01:55 Re: dynloader.h missing in prebuilt package for Windows?
Previous Message Pavel Stehule 2015-12-29 19:05:27 Re: proposal: PL/Pythonu - function ereport