Re: pg_preadv() and pg_pwritev()

From: Sergey Shinderuk <s(dot)shinderuk(at)postgrespro(dot)ru>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_preadv() and pg_pwritev()
Date: 2021-01-15 01:12:01
Message-ID: 7e2b4313-0ebb-7959-82f6-48acf88dad11@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
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.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2021-01-15 01:32:53 Re: [PATCH] postgres_fdw connection caching - cause remote sessions linger till the local session exit
Previous Message Peter Geoghegan 2021-01-15 01:09:00 Re: vacuum_cost_page_miss default value and modern hardware