On Sat, Dec 22, 2018 at 5:56 AM David Fetter <da...@fetter.org> wrote: > > Folks, > > I'm trying to compile master (c952eae52a33069e2e92d34f217b43d0eca3d7de) > on Termux, using the supplied settings, as follows. > > pg_config --configure | xargs ./configure > configure.out 2>configure.err > make -j 4 > make.out 2> make.err > > There appears to be some confusion somewhere about sync_file_range, > namely that it's found by ./configure and then not found in make. > > What should I be poking at to make this work?
Apparently your libc (or something else) defines the function so the configure test passes, but your <fcntl.h> doesn't declare it so we can't use it. I guess Termux supplies the headers but your Android supplies the libraries, so there may be sync issues. I'd try hunting around for declarations with something like find /usr/include -name '*.h' | xargs grep sync_file_range. Here's an interesting similar case: https://github.com/termux/termux-packages/issues/899 That talks about using -D__ANDROID_API__=23 (or presumably higher) to make sure that sigtimedwait is exposed by signal.h. Something similar may be afoot here. -- Thomas Munro http://www.enterprisedb.com