Thread

Commits

  1. MSVC builds must use a separate stamp file for copying generated headers.

  2. Switch client-side code to include catalog/pg_foo_d.h not pg_foo.h.

  1. master fails to build on Windows

    Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> — 2018-05-18T09:29:38Z

    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 9c0a0de4c91b2dc911220d769cf2c5f754cfcb90
    Author: Tom Lane <tgl@sss.pgh.pa.us>
    Date:   Sun Apr 8 13:59:52 2018 -0400
    
    -- 
    Sandeep Thakkar
    
  2. Re: master fails to build on Windows

    John Naylor <jcnaylor@gmail.com> — 2018-05-18T11:49:15Z

    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
    
  3. Re: master fails to build on Windows

    Tom Lane <tgl@sss.pgh.pa.us> — 2018-05-18T15:29:55Z

    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
    
    
    
  4. Re: master fails to build on Windows

    Sandeep Thakkar <sandeep.thakkar@enterprisedb.com> — 2018-05-18T16:41:18Z

    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
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise PostgreSQL Company