FreeBSD 11 compiling from source cannot find readline headers
The current version of FreeBSD 11 cannot compile the PostgreSQL from source
without adding the --with-includes flag to the configure option
configure: error: readline header not found
If you have libedit already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable libedit support.
Doing the following command, after ensuring that the readline package/port
is installed, allows the configure to work
./configure --with-includes=/usr/local/include
I noticed this issue mostly because I remembered on FreeBSD 10, I did not
even need to have the readline package explicitly installed and the
configure would still work perfectly fine, even confirming it could find
the readline headers. This was because previously, FreeBSD10 seemed to
include the readline header by default:
freebsd10% sudo find / -type f -name readline.h
/usr/include/readline/readline.h
/usr/include/edit/readline/readline.h
Whereas, the package installs the header to /usr/local, which is the proper
location for it if it's not included as part of the system libraries
anymore. Seems this inconsistency was fixed in FreeBSD11?:
freebsd11% sudo find / -type f -name readline.h
/usr/include/edit/readline/readline.h
/usr/local/include/readline/readline.h
So, I'm not sure if this is an issue with FreeBSD not having the userspace
includes in some sort of default PATH, or if the PostgreSQL "configure"
script now needs to look in the proper userspace location for the readline
includes.
--
Keith Fiske
Senior Database Engineer
Crunchy Data - http://crunchydata.com
Keith Fiske <keith.fiske@crunchydata.com> writes:
The current version of FreeBSD 11 cannot compile the PostgreSQL from source
without adding the --with-includes flag to the configure option
Yeah, and I believe you need a --with-libs switch too. This is just a
FreeBSD idiosyncrasy --- everybody else thinks their compilers should
automatically search the platform's standard place for optional packages.
I noticed this issue mostly because I remembered on FreeBSD 10, I did not
even need to have the readline package explicitly installed and the
configure would still work perfectly fine, even confirming it could find
the readline headers.
Really? AFAIK FreeBSD has always been like this. I did find a wiki
page suggesting they're thinking about changing it:
https://wiki.freebsd.org/WarnerLosh/UsrLocal
regards, tom lane
On Fri, Oct 19, 2018 at 8:23 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Keith Fiske <keith.fiske@crunchydata.com> writes:
The current version of FreeBSD 11 cannot compile the PostgreSQL from
source
without adding the --with-includes flag to the configure option
Yeah, and I believe you need a --with-libs switch too. This is just a
FreeBSD idiosyncrasy --- everybody else thinks their compilers should
automatically search the platform's standard place for optional packages.
--with-libs is not needed when compiling with just a default "make
install-world" on FreeBSD10 nor 11
I noticed this issue mostly because I remembered on FreeBSD 10, I did not
even need to have the readline package explicitly installed and the
configure would still work perfectly fine, even confirming it could find
the readline headers.Really? AFAIK FreeBSD has always been like this. I did find a wiki
page suggesting they're thinking about changing it:https://wiki.freebsd.org/WarnerLosh/UsrLocal
regards, tom lane
Positive. I set up a brand new 10.4 VM as I was writing up this email to
test this just to make sure I wasn't remembering things wrong. I believe
it's the same back in 9 as well, but that's harder to set up a quick test
now. Only thing required in 10.4 is to install gmake and everything "just
works".
And now for 11+, it seems readline is the only additional include/library
that is required to compile postgresql on a clean FreeBSD install that the
--with-includes is needed just for that. Main reason being seems to be that
they no longer have a readline header included by default in core.
--
Keith Fiske
Senior Database Engineer
Crunchy Data - http://crunchydata.com