Re: Loaded footgun open_datasync on Windows
Laurenz Albe <laurenz.albe@cybertec.at>
From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Amit Kapila <amit.kapila16@gmail.com>, Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-06-08T02:18:44Z
Lists: pgsql-hackers
Attachments
- 0001-Build-pg_test_fsync-as-backend-code.patch (text/x-patch) patch 0001
Amit Kapila wrote: > On Wed, Jun 6, 2018 at 3:06 PM, Kuntal Ghosh <kuntalghosh.2007@gmail.com> wrote: > > It seems the "#ifndef FRONTEND" restriction was added around > > pgwin32_open() for building libpq with Visual C++ or Borland C++. The > > restriction was added in commit 422d4819 to build libpq with VC++[1]. > > Later, in commit fd7c3f67e0bc4, the support for Borland C++ was also > > added. > > > > So, I'm not sure whether removing that restriction will work for all > > front-end modules. > > > > Thanks for doing investigation. I agree with you that it appears from the old > discussion that we have added this restriction to build libpq/psql (basically frontend) > modules. However, I tried to build those modules on windows by removing that > restriction and it doesn't give me any problem (except one extra argument error, > which can be easily resolved). It might be that it gives problem with certain > version of MSVC. I think if we want to pursue this direction, one needs to verify > on various supportted versions (of Windows) to see if things are okay. That's what the buildfarm is for, right? > Speaking about the issue at-hand, one way to make pg_test_fsync work in to just > include c.h and remove inclusion of postgres_fe.h, but not sure if that is the best way. > I am not sure if we have any other options to proceed in this case. > > Thoughts? I thought of a better way. pg_test_fsync is properly listed as a server application in the documentation, so I think it should be built as such, as per the attached patch. Yours, Laurenz Albe
Commits
-
Allow concurrent-safe open() and fopen() in frontend code for Windows
- f02259fe93e7 11.0 landed
- 0ba06e0bfb8c 12.0 landed
-
Fix inclusions of c.h from .h files.
- a72f0365db41 10.0 cited
-
Allow borland compiles.
- fd7c3f67e0bc 8.0.0 cited
-
Corrects issues recently posted by Dann Corbit, allowing libpq/psql to
- 422d4819ee7c 8.0.0 cited