C extension compilation failed while using PG 17.2 on mac m1

Started by Lakshmi Narayana Velayudam8 months ago2 messages
#1Lakshmi Narayana Velayudam
dev.narayana.v@gmail.com

Hello, while compiling my c extension with PG 17,2 I am getting

postgresql-17.2/pgsql/include/server/port/pg_iovec.h:93:10: error: call to
undeclared function 'pwritev'; ISO C99 and later do not support implicit
function declarations [-Wimplicit-function-declaration]

93 | return pwritev(fd, iov, iovcnt, offset);

I am not using pg_iovec.h or pwrite/pread related functions. My extension
compiles fine without any issues on PG 14.3

*PG compilation commands:*
./configure --prefix=$PWD/pgsql --enable-cassert --enable-debug
CFLAGS="-ggdb -fno-omit-frame-pointer -O0" --without-icu
make clean
make -j
make install -j

*Mac OS:* 15.1.1

Please let me know if you need any other information.

Thanks & Regards,
Narayana

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Lakshmi Narayana Velayudam (#1)
Re: C extension compilation failed while using PG 17.2 on mac m1

Lakshmi Narayana Velayudam <dev.narayana.v@gmail.com> writes:

Hello, while compiling my c extension with PG 17,2 I am getting
postgresql-17.2/pgsql/include/server/port/pg_iovec.h:93:10: error: call to
undeclared function 'pwritev'; ISO C99 and later do not support implicit
function declarations [-Wimplicit-function-declaration]

I failed to reproduce this. I wonder if you have some kind of version
skew problem --- SDK not matching underlying system, for instance.
preadv and pwritev do have some weirdness on Apple platforms,
but we should handle that on any PG >= v15 (cf. commit f014b1b9b).

regards, tom lane