<feed xmlns='http://www.w3.org/2005/Atom'>
<title>postgresql.git/src/makefiles/Makefile.win32, branch master</title>
<subtitle>This is the main PostgreSQL git repository.</subtitle>
<id>http://git.postgresql.org/cgit/postgresql.git/atom?h=master</id>
<link rel='self' href='http://git.postgresql.org/cgit/postgresql.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/'/>
<updated>2026-04-06T19:55:08Z</updated>
<entry>
<title>Add CONCURRENTLY option to REPACK</title>
<updated>2026-04-06T19:55:08Z</updated>
<author>
<name>Álvaro Herrera</name>
</author>
<published>2026-04-06T19:55:08Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=28d534e2ae0ac888b5460f977a10cd9bb017ef98'/>
<id>urn:sha1:28d534e2ae0ac888b5460f977a10cd9bb017ef98</id>
<content type='text'>
When this flag is specified, REPACK no longer acquires access-exclusive
lock while the new copy of the table is being created; instead, it
creates the initial copy under share-update-exclusive lock only (same as
vacuum, etc), and it follows an MVCC snapshot; it sets up a replication
slot starting at that snapshot, and uses a concurrent background worker
to do logical decoding starting at the snapshot to populate a stash of
concurrent data changes.  Those changes can then be re-applied to the
new copy of the table just before swapping the relfilenodes.
Applications can continue to access the original copy of the table
normally until just before the swap, which is the only point at which
the access-exclusive lock is needed.

There are some loose ends in this commit:
1. concurrent repack needs its own replication slot in order to apply
   logical decoding, which are a scarce resource and easy to run out of.
2. due to the way the historic snapshot is initially set up, only one
   REPACK process can be running at any one time on the whole system.
3. there's a danger of deadlocking (and thus abort) due to the lock
   upgrade required at the final phase.

These issues will be addressed in upcoming commits.

The design and most of the code are by Antonin Houska, heavily based on
his own pg_squeeze third-party implementation.

Author: Antonin Houska &lt;ah@cybertec.at&gt;
Co-authored-by: Mihail Nikalayeu &lt;mihailnikalayeu@gmail.com&gt;
Co-authored-by: Álvaro Herrera &lt;alvherre@kurilemu.de&gt;
Reviewed-by: Matthias van de Meent &lt;boekewurm+postgres@gmail.com&gt;
Reviewed-by: Srinath Reddy Sadipiralla &lt;srinath2133@gmail.com&gt;
Reviewed-by: Amit Kapila &lt;amit.kapila16@gmail.com&gt;
Reviewed-by: Jim Jones &lt;jim.jones@uni-muenster.de&gt;
Reviewed-by: Robert Treat &lt;rob@xzilla.net&gt;
Reviewed-by: Noriyoshi Shinoda &lt;noriyoshi.shinoda@hpe.com&gt;
Reviewed-by: vignesh C &lt;vignesh21@gmail.com&gt;
Discussion: https://postgr.es/m/5186.1706694913@antos
Discussion: https://postgr.es/m/202507262156.sb455angijk6@alvherre.pgsql
</content>
</entry>
<entry>
<title>autoconf: Rely on ar supporting index creation</title>
<updated>2022-10-07T18:53:39Z</updated>
<author>
<name>Andres Freund</name>
</author>
<published>2022-10-07T18:53:39Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=2473cb9ff374dff99437138c144fab6d9f7dfd26'/>
<id>urn:sha1:2473cb9ff374dff99437138c144fab6d9f7dfd26</id>
<content type='text'>
This way we don't need RANLIB anymore, making it a bit simpler for the meson
build to generate Makefile.global for PGXS compatibility.

FreeBSD, NetBSD, OpenBSD, the only platforms where we didn't use AROPT=crs,
all have supported the 's' option for a long time.

On macOS we ran ranlib after installing a static library. This was added a
long time ago, in 58ad65ec2def. I cannot reproduce an issue in more recent
macOS versions. This is removed now.

Based on discussion with Tom, I left the 'touch' at the end of static
libraries generation, added in 826eff57c4c, in place. While it looks like
current versions of Apple's ar/ranlib don't need it, it was needed not too
long ago.

Reviewed-by: Tom Lane &lt;tgl@sss.pgh.pa.us&gt;
Discussion: https://postgr.es/m/20221005200710.luvw5evhwf6clig6@awork3.anarazel.de
</content>
</entry>
<entry>
<title>windows: remove date from version number in win32ver.rc</title>
<updated>2022-09-26T18:38:02Z</updated>
<author>
<name>Andres Freund</name>
</author>
<published>2022-09-26T18:38:02Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=31d2c4716e6b429353bb81cebaa0f2b1267823d6'/>
<id>urn:sha1:31d2c4716e6b429353bb81cebaa0f2b1267823d6</id>
<content type='text'>
This may have served a purpose at some point, but these days it just
contributes to a non-reproducible build.

Reviewed-by: Peter Eisentraut &lt;peter.eisentraut@enterprisedb.com&gt;
Discussion: https://postgr.es/m/c5736f70-bb6d-8d25-e35c-e3d886e4e905@enterprisedb.com
Discussion: https://postgr.es/m/1cef5b48-32bd-5cbf-fb62-fb648860f5ef@enterprisedb.com
</content>
</entry>
<entry>
<title>Refactor DLSUFFIX handling</title>
<updated>2022-03-25T07:56:02Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2022-03-25T07:44:31Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=23119d51a14c046dae35ae5e6ad9e35982d044fd'/>
<id>urn:sha1:23119d51a14c046dae35ae5e6ad9e35982d044fd</id>
<content type='text'>
Move DLSUFFIX from makefiles into header files for all platforms.
Move the DLSUFFIX assignment from src/makefiles/ to src/templates/,
have configure read it, and then substitute it into Makefile.global
and pg_config.h.  This avoids the need for all makefile rules that
need it to locally set CPPFLAGS.  It also resolves an inconsistent
setup between the two Windows build systems.

Reviewed-by: Andres Freund &lt;andres@anarazel.de&gt;
Discussion: https://www.postgresql.org/message-id/2f9861fb-8969-9005-7518-b8e60f2bead9@enterprisedb.com
</content>
</entry>
<entry>
<title>Remove libpq.rc, use win32ver.rc for libpq</title>
<updated>2020-01-15T14:06:12Z</updated>
<author>
<name>Peter Eisentraut</name>
</author>
<published>2020-01-15T09:15:06Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=16a4a3d59cd5574fdc697ea16ef5692ce34c54d5'/>
<id>urn:sha1:16a4a3d59cd5574fdc697ea16ef5692ce34c54d5</id>
<content type='text'>
For historical reasons, libpq used a separate libpq.rc file for the
Windows builds while all other components use a common file
win32ver.rc.  With a bit of tweaking, the libpq build can also use the
win32ver.rc file.  This removes a bit of duplicative code.

Reviewed-by: Kyotaro Horiguchi &lt;horikyota.ntt@gmail.com&gt;
Reviewed-by: Michael Paquier &lt;michael@paquier.xyz&gt;
Discussion: https://www.postgresql.org/message-id/flat/ad505e61-a923-e114-9f38-9867d161073f@2ndquadrant.com
</content>
</entry>
<entry>
<title>Select CFLAGS_SL at configure time, not in platform-specific Makefiles.</title>
<updated>2019-10-21T16:32:35Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2019-10-21T16:32:35Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=44273ce4f664a1bb34ef8ea9359237344cd6aaec'/>
<id>urn:sha1:44273ce4f664a1bb34ef8ea9359237344cd6aaec</id>
<content type='text'>
Move the platform-dependent logic that sets CFLAGS_SL from
src/makefiles/Makefile.foo to src/template/foo, so that the value
is determined at configure time and thus is available while running
configure's tests.

On a couple of platforms this might save a few microseconds of build
time by eliminating a test that make otherwise has to do over and over.
Otherwise it's pretty much a wash for build purposes; in particular,
this makes no difference to anyone who might be overriding CFLAGS_SL
via a make option.

This patch in itself does nothing with the value and thus should not
change any behavior, though you'll probably have to re-run configure
to get a correctly updated Makefile.global.  We'll use the new
configure variable in a follow-on patch.

Per gripe from Kyotaro Horiguchi.  Back-patch to all supported branches,
because the follow-on patch is a portability bug fix.

Discussion: https://postgr.es/m/20191010.144533.263180400.horikyota.ntt@gmail.com
</content>
</entry>
<entry>
<title>Define WIN32_STACK_RLIMIT throughout win32 and cygwin builds.</title>
<updated>2019-04-09T15:25:39Z</updated>
<author>
<name>Noah Misch</name>
</author>
<published>2019-04-09T15:25:39Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=ba3fb5d4fb9227719759740b6d7771e719c3318b'/>
<id>urn:sha1:ba3fb5d4fb9227719759740b6d7771e719c3318b</id>
<content type='text'>
The MSVC build system already did this, and commit
617dc6d299c957e2784320382b3277ede01d9c63 used it in a second file.
Back-patch to 9.4, like that commit.

Discussion: https://postgr.es/m/CAA8=A7_1SWc3+3Z=-utQrQFOtrj_DeohRVt7diA2tZozxsyUOQ@mail.gmail.com
</content>
</entry>
<entry>
<title>Remove Windows module-list-dumping code.</title>
<updated>2018-04-30T17:20:13Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2018-04-30T17:20:13Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=f7df8043f08a9d00811fb4aa054ed3221f5f9b5e'/>
<id>urn:sha1:f7df8043f08a9d00811fb4aa054ed3221f5f9b5e</id>
<content type='text'>
This code is evidently allocating memory and thus confusing matters
even more.  Let's see whether we can learn anything with
just VirtualQuery.

Discussion: https://postgr.es/m/25495.1524517820@sss.pgh.pa.us
</content>
</entry>
<entry>
<title>Dump full memory maps around failing Windows reattach code.</title>
<updated>2018-04-30T15:16:21Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2018-04-30T15:16:21Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=6ba0cc4bd3a6d738eddf7e8aa2ef7b46cdd9ce8f'/>
<id>urn:sha1:6ba0cc4bd3a6d738eddf7e8aa2ef7b46cdd9ce8f</id>
<content type='text'>
This morning's results from buildfarm member dory make it pretty
clear that something is getting mapped into the just-freed space,
but not what that something is.  Replace my minimalistic probes
with a full dump of the process address space and module space,
based on Noah's work at
&lt;20170403065106.GA2624300%40tornado.leadboat.com&gt;

This is all (probably) to get reverted once we have fixed the
problem, but for now we need information.

Discussion: https://postgr.es/m/25495.1524517820@sss.pgh.pa.us
</content>
</entry>
<entry>
<title>Try to fix non-MSVC Windows builds in the wake of logical replication.</title>
<updated>2017-01-20T17:51:31Z</updated>
<author>
<name>Tom Lane</name>
</author>
<published>2017-01-20T17:51:31Z</published>
<link rel='alternate' type='text/html' href='http://git.postgresql.org/cgit/postgresql.git/commit/?id=0502e854640bd024f349c0df46b7dd6812b8c05c'/>
<id>urn:sha1:0502e854640bd024f349c0df46b7dd6812b8c05c</id>
<content type='text'>
pgoutput evidently needs to be built without -DBUILDING_DLL.  (It seems
like a pretty bad idea that these makefiles need to know exactly where
all the shlibs are in the tree, or maybe what's bad is putting them under
src/backend/.  But right now is not the time to redesign that.)

Also, remove "override CPPFLAGS" in pgoutput's Makefile.  I don't think
that that actually has any bad consequences, but it's certainly useless
in a directory that has no .h files, and it might be contributing to the
failure somehow.

Per buildfarm.
</content>
</entry>
</feed>
