Re: pg_preadv() and pg_pwritev()
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Sergey Shinderuk <s.shinderuk@postgrespro.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-01-13T19:52:04Z
Lists: pgsql-hackers
Attachments
- 0001-Move-our-p-read-write-v-replacements-into-their-own-.patch (text/x-patch) patch 0001
On Thu, Jan 14, 2021 at 5:13 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > I have a different complaint, using Big Sur and Xcode 12.3: > > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libpgport.a(pread.o) has no symbols > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libpgport_shlib.a(pread_shlib.o) has no symbols > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libpgport_srv.a(pread_srv.o) has no symbols > > Looks like we need to be more careful about not including pread.c > in the build unless it actually has code to contribute. I did it that way because it made it easy to test different combinations of the replacements on computers that do actually have pwrite and pwritev, just by tweaking pg_config.h. Here's an attempt to do it with AC_REPLACE_FUNCS, which avoids creating empty .o files. It means that to test the replacements on modern systems you have to tweak pg_config.h and also add the relevant .o files to LIBOBJS in src/Makefile.global, but that seems OK.
Commits
-
Improve our heuristic for selecting PG_SYSROOT on macOS.
- 3934543c2bb0 9.5.25 landed
- fc6d08b27a33 9.6.21 landed
- 5fa060c8f593 10.16 landed
- 046c8facecee 11.11 landed
- f5d044eaeff0 12.6 landed
- f44ae4db5fec 13.2 landed
- 4823621db312 14.0 landed
-
Move our p{read,write}v replacements into their own files.
- 0d56acfbaa79 14.0 landed
-
Don't use elog() in src/port/pwrite.c.
- df10ac625c16 14.0 landed
-
Use vectored I/O to fill new WAL segments.
- ce6a71fa5300 14.0 landed
-
Provide pg_preadv() and pg_pwritev().
- 13a021f3e8c9 14.0 landed