Re: pg_preadv() and pg_pwritev()
Sergey Shinderuk <s.shinderuk@postgrespro.ru>
From: Sergey Shinderuk <s.shinderuk@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-01-15T01:12:01Z
Lists: pgsql-hackers
On 14.01.2021 21:05, Tom Lane wrote: > After considerable playing around, I'm guessing that the reason > -no_weak_imports doesn't help is that it rejects calls that are > marked as weak references on the *calling* side. Since AC_CHECK_FUNCS > doesn't bother to #include the relevant header file, the compiler > doesn't know that preadv() ought to be marked as a weak reference. > Then, when the test program gets linked against the stub libc that's > provided by the SDK, there is a version of preadv() there so no link > failure occurs. (There are way more moving parts in this weak-reference > thing than I'd realized.) > Oh, that's interesting. I've just played with it a bit and it looks exactly as you say. > Another thing I've been realizing while poking at this is that we > might not need to set -isysroot explicitly at all, which would then > lead to the compiler using its default sysroot automatically. > In some experimentation, it seems like what we need PG_SYSROOT for > is just for configure to be able to find tclConfig.sh and the Perl > header files. So at this point I'm tempted to try ripping that > out altogether. If you remove the lines in src/template/darwin > that inject PG_SYSROOT into CPPFLAGS and LDFLAGS, do things > work for you? Yes, it works fine.
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