Обсуждение: master fails to build on Windows
Hi
--
I was building the sources I got from https://www.postgresql.org/ ftp/snapshot/dev/ on Windows x64 and got the whole bunch of errors like "Cannot open include file: 'catalog/pg_type_d.h" , "Cannot open include file: 'catalog/pg_tablespace_d.h'" . I've attached the log.
The renaming was done as part of following commit, but the location where *_d.h are present is not included in INCLUDE. Example: pg_type.h is present at src/include/catalog/ and pg_type_d.h is present at src/backend/catalog/. I added the required path in MSBuildProject.pm and the build is passed. Here is the diff:
298c298
< < AdditionalIncludeDirectories>$ self->{prefixincludes}src/ include;src/include/port/ win32;src/include/port/win32_ msvc;$includes\%( AdditionalIncludeDirectories)< /AdditionalIncludeDirectories>
---
> < AdditionalIncludeDirectories>$ self->{prefixincludes}src/ include;src/backend;src/ include/port/win32;src/ include/port/win32_msvc;$ includes\%( AdditionalIncludeDirectories)< /AdditionalIncludeDirectories>
commit 9c0a0de4c91b2dc911220d769cf2c5 f754cfcb90
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun Apr 8 13:59:52 2018 -0400
Sandeep Thakkar
Вложения
On 5/18/18, Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> wrote: > Hi > > I was building the sources I got from https://www.postgresql.org/ > ftp/snapshot/dev/ on Windows x64 and got the whole bunch of errors > like "*Cannot > open include file: 'catalog/pg_type_d.h"* , *"Cannot open include file: > 'catalog/pg_tablespace_d.h'" . *I've attached the log. I'm thinking the include/catalog/pg_*_d.h headers got dist-cleaned when creating the snapshot, and the build script doesn't know to copy them over. If you're able to test, does the attached patch fix the issue? (This may not be the right permanent fix, but hopefully it will confirm my suspicion) -John Naylor
Вложения
John Naylor <jcnaylor@gmail.com> writes: > On 5/18/18, Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> wrote: >> I was building the sources I got from https://www.postgresql.org/ >> ftp/snapshot/dev/ on Windows x64 and got the whole bunch of errors >> like "*Cannot >> open include file: 'catalog/pg_type_d.h"* , *"Cannot open include file: >> 'catalog/pg_tablespace_d.h'" . *I've attached the log. > I'm thinking the include/catalog/pg_*_d.h headers got dist-cleaned > when creating the snapshot, and the build script doesn't know to copy > them over. If you're able to test, does the attached patch fix the > issue? (This may not be the right permanent fix, but hopefully it will > confirm my suspicion) Mmm, yeah, this is clearly an oversight. I think we (or at least I) figured it was okay to skip the separate stamp file and test for the install-the-headers step because the Windows scripts didn't have a way to blow away the include/ headers without deleting the underlying backend/ headers --- but looking closer at clean.bat, that's quite wrong. clean.bat will do it by default :-(. So I think the snapshot was probably fine, but Sandeep ran clean.bat and then things weren't fine. It seems like clean.bat's default behavior doesn't correspond very well to any of the three cleaning levels that the Makefiles understand, while its "dist" behavior seems to be "make maintainer-clean", not "make distclean" as one might expect. Maybe that's something to improve someday, but right now is probably not the time. In the meantime, I think your patch is a good idea whether or not this is the right explanation for Sandeep's problem. The closer the Windows and Unix build rules are, the better. regards, tom lane
On Fri, May 18, 2018 at 5:19 PM, John Naylor <jcnaylor@gmail.com> wrote:
On 5/18/18, Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> wrote:
> Hi
>
> I was building the sources I got from https://www.postgresql.org/
> ftp/snapshot/dev/ on Windows x64 and got the whole bunch of errors
> like "*Cannot
> open include file: 'catalog/pg_type_d.h"* , *"Cannot open include file:
> 'catalog/pg_tablespace_d.h'" . *I've attached the log.
I'm thinking the include/catalog/pg_*_d.h headers got dist-cleaned
when creating the snapshot, and the build script doesn't know to copy
them over. If you're able to test, does the attached patch fix the
issue? (This may not be the right permanent fix, but hopefully it will
confirm my suspicion)
yes, the patch fixes the issue. Thanks.
-John Naylor
Sandeep Thakkar