pgsql-general
❮
configure && --with
- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 7, 2026, 9:15 AM UTCHello,
We're compiling PostgreSQL on SuSE Linux Enterprise since "ages" (since
11.x) from sources and I have the following small problem:
We have also our own compiled OpenSSL version on the server (and servers
of our customers) as:
$ which openssl
/usr/local/sisis-pap/bin/openssl
The OpenSSL binary is found via PATH, but also needs our compiled libs,
of course:
$ openssl -v
openssl: /usr/local/lib64/libssl.so.3: version `OPENSSL_3.4.0' not found (required by openssl)
...
$ LDLIBRARYPATH=/usr/local/sisis-pap/lib/ /usr/local/sisis-pap/bin/openssl -v
OpenSSL 3.5.5 27 Jan 2026 (Library: OpenSSL 3.5.5 27 Jan 2026)
So far so good and clear. But for the ./configure step I cant set the
directory where our OpenSSL 3.5.5 expects its libs in front because this
makes the compiler/linker blaming. They need /usr/lib64 in front of
/usr/local/sisis-pap/lib:
export LDLIBRARYPATH="/usr/lib64:/usr/local/sisis-pap/lib:$LDLIBRARYPATH"
and some more settings for LDFLAGS, CFLAGS and CPPFLAGS) as:
export LDFLAGS="-L/usr/local/sisis-pap/lib -L/usr/lib64"
export CFLAGS="-m64 -I/usr/local/sisis-pap/include"
export CPPFLAGS="-m64 -I/usr/local/sisis-pap/include"
When I now run
./configure --prefix=/usr/local/sisis-pap/pgsql-18.3 \
it seems(!) to work fine, but spills out:--libdir=/usr/local/sisis-pap/pgsql-18.3/lib \ --with-ssl=/usr/local/sisis-pap/lib \ --enable-nls \ --with-perl \ --with-ldap \ --with-pam \ --without-icu \ --with-openssl
$ grep openssl config.log
...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
...
i.e. ./configure detected correctly from where openssl to start (from
/usr/local/sisis-pap/bin/openssl) but can't use it due to the above
explained problem from where to load the shared libs.
My question is:
Why the setting of '--with-ssl=/usr/local/sisis-pap/lib' as adviced by
the help of ./configure:$ ./configure --help | grep 'with-ssl=LIB'
is not used for the run check of the openssl binary as LDLIBRARYPATH?--with-ssl=LIB use LIB for SSL/TLS support (openssl)
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)
I, Matthias, I am not at war with Russia.
Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.- Jump to comment-1Tom Lane<tgl@sss.pgh.pa.us>Apr 7, 2026, 2:21 PM UTCMatthias Apitz <guru@unixarea.de> writes:
Why the setting of '--with-ssl=/usr/local/sisis-pap/lib' as adviced by
the help of ./configure:$ ./configure --help | grep 'with-ssl=LIB'
--with-ssl=LIB use LIB for SSL/TLS support (openssl)is not used for the run check of the openssl binary as LDLIBRARYPATH?
If you had checked the manual, you would have read
So the argument is just pro-forma at the moment, although someday--with-ssl=LIBRARY Build with support for SSL (encrypted) connections. The only LIBRARY supported is openssl, which is used for both OpenSSL and LibreSSL.
maybe it will do something.
The options you need to use to point it at a non-default openssl
installation are --with-includes and --with-libraries [1].
[1] https://www.postgresql.org/docs/current/install-make.html#CONFIGURE-OPTIONS-BUILD-PROCESSregards, tom lane- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 8, 2026, 6:57 AM UTCEl día martes, abril 07, 2026 a las 10:21:48a. m. -0400, Tom Lane escribió:
The options you need to use to point it at a non-default openssl
...
installation are --with-includes and --with-libraries [1].[1] https://www.postgresql.org/docs/current/install-make.html#CONFIGURE-OPTIONS-BUILD-PROCESS
Thanks for your hints. I do use now:
$ ./configure --prefix=/usr/local/sisis-pap/pgsql-18.3 \
but it still says in config.log--libdir=/usr/local/sisis-pap/pgsql-18.3/lib \ --with-includes=/usr/local/sisis-pap/include \ --with-libraries=/usr/local/sisis-pap/lib \ --enable-nls \ --with-perl \ --with-ldap \ --with-pam \ --without-icu \ --with-openssl
...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
configure:14245: checking openssl/ssl.h usability
configure:14245: gcc -c -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute -Wimplicit-fallthrough=3
-Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -Wno-format-truncation -m64
-I/usr/local/sisis-pap/include -m64 -I/usr/local/sisis-pap/include
-DGNUSOURCE -I/usr/local/sisis-pap/include conftest.c >&5
configure:14245: $? = 0
configure:14245: result: yes
...
The libs are in the correct place:
$ ls /usr/local/sisis-pap/lib/libs*
/usr/local/sisis-pap/lib/libssl.a /usr/local/sisis-pap/lib/libssl.so.3
/usr/local/sisis-pap/lib/libssl.so
$ ls /usr/local/sisis-pap/lib/libcr*
/usr/local/sisis-pap/lib/libcrypto.a /usr/local/sisis-pap/lib/libcrypto.so.3
/usr/local/sisis-pap/lib/libcrypto.so
Any idea?
Thanks
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
In Cuba bei der Ankunft eines Schiffes mit Rohöl: "Endlich, die Russen sind da!
En Cuba al llegar un barco con crudo: "Por fin, los rusos llegan!"
Wann kommen sie endlich zu uns? ¿Cúando llegan por fin para acá?- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 8, 2026, 9:02 AM UTCEl día miércoles, abril 08, 2026 a las 08:57:24 +0200, Matthias Apitz escribió:
Thanks for your hints. I do use now:
$ ./configure --prefix=/usr/local/sisis-pap/pgsql-18.3 \
--libdir=/usr/local/sisis-pap/pgsql-18.3/lib \
--with-includes=/usr/local/sisis-pap/include \
--with-libraries=/usr/local/sisis-pap/lib \
--enable-nls \
--with-perl \
--with-ldap \
--with-pam \
--without-icu \
--with-openssl
but it still says in config.log
...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
configure:14245: checking openssl/ssl.h usability
configure:14245: gcc -c -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Werror=vla -Wendif-labels
-Wmissing-format-attribute -Wimplicit-fallthrough=3
-Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -Wno-format-truncation -m64
-I/usr/local/sisis-pap/include -m64 -I/usr/local/sisis-pap/include-DGNUSOURCE -I/usr/local/sisis-pap/include conftest.c >&5
configure:14245: $? = 0
I run the full ./configure below strace(1) and it turns out what I was
configure:14245: result: yes
...
The libs are in the correct place:
$ ls /usr/local/sisis-pap/lib/libs*
/usr/local/sisis-pap/lib/libssl.a /usr/local/sisis-pap/lib/libssl.so.3
/usr/local/sisis-pap/lib/libssl.so
$ ls /usr/local/sisis-pap/lib/libcr*
/usr/local/sisis-pap/lib/libcrypto.a /usr/local/sisis-pap/lib/libcrypto.so.3
/usr/local/sisis-pap/lib/libcrypto.so
especting:
518130:1081 execve("/usr/local/sisis-pap/bin/openssl", ["/usr/local/sisis-pap/bin/openssl", "version"], 0x560886d493e0 / 78 vars /) = 0$ grep -n execve tr | grep bin/openssl
now looking for the PID 1081 only and the fetched libs:
i.e. /usr/local/sisis-pap/bin/openssl does not pick-up its libs where itgrep ^1081 tr | grep openat | egrep '/libssl|/libcry' 1081 openat(AT_FDCWD, "/usr/lib64/glibc-hwcaps/x86-64-v3/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) 1081 openat(AT_FDCWD, "/usr/lib64/glibc-hwcaps/x86-64-v2/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) 1081 openat(AT_FDCWD, "/usr/lib64/libssl.so.3", O_RDONLY|O_CLOEXEC) = 3 1081 openat(AT_FDCWD, "/usr/lib64/libcrypto.so.3", O_RDONLY|O_CLOEXEC) = 3
should, while with a correct LDLIBRARYPATH is does it fine:
--$ LD_LIBRARY_PATH=/usr/local/sisis-pap/lib strace /usr/local/sisis-pap/bin/openssl -v 2>&1 | grep libssl openat(AT_FDCWD, "/usr/local/sisis-pap/lib/glibc-hwcaps/x86-64-v3/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/local/sisis-pap/lib/glibc-hwcaps/x86-64-v2/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/local/sisis-pap/lib/libssl.so.3", O_RDONLY|O_CLOEXEC) = 3 sisis@srap51dxr1:~/mpi-V73-sp2> LD_LIBRARY_PATH=/usr/local/sisis-pap/lib strace /usr/local/sisis-pap/bin/openssl -v 2>&1 | egrep 'libssl|libcry' openat(AT_FDCWD, "/usr/local/sisis-pap/lib/glibc-hwcaps/x86-64-v3/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/local/sisis-pap/lib/glibc-hwcaps/x86-64-v2/libssl.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/local/sisis-pap/lib/libssl.so.3", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/local/sisis-pap/lib/libcrypto.so.3", O_RDONLY|O_CLOEXEC) = 3
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)
I, Matthias, I am not at war with Russia.
Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 8, 2026, 11:20 AM UTCEl día miércoles, abril 08, 2026 a las 11:02:07 +0200, Matthias Apitz escribió:
El día miércoles, abril 08, 2026 a las 08:57:24 +0200, Matthias Apitz escribió:
Thanks for your hints. I do use now:
I did y quick fix in ./configure and with this I get in config.log:
$ ./configure --prefix=/usr/local/sisis-pap/pgsql-18.3 \
--libdir=/usr/local/sisis-pap/pgsql-18.3/lib \
--with-includes=/usr/local/sisis-pap/include \
--with-libraries=/usr/local/sisis-pap/lib \
--enable-nls \
--with-perl \
--with-ldap \
--with-pam \
--without-icu \
--with-openssl
...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14246: using openssl: OpenSSL 3.5.6 7 Apr 2026 (Library: OpenSSL 3.5.6 7 Apr 2026)
configure:14249: checking openssl/ssl.h usability
...
The change is:
diff -c configure.orig configure
*** configure.orig Mon Feb 23 22:56:43 2026
--- configure Wed Apr 8 13:06:57 2026
***************
* 14238,14244 **
--- 14238,14248 ----
+ # see line 3109 for LIBRARY_DIRS$as_echo "$OPENSSL" >&6; } fi
+ LDLIBRARYPATHSAVED=$LDLIBRARY_PATH
+ LDLIBRARYPATH=$LIBRARYDIRS:$LDLIBRARY_PATH
+ LDLIBRARYPATH=$LDLIBRARYPATH_SAVEDpgac_openssl_version="$($OPENSSL version 2> /dev/null || echo openssl not found)"
The bug/issue with "--with-libraries=LIB" is that the specified lib dir(s){ $as_echo "$as_me:${as_lineno-$LINENO}: using openssl: $pgac_openssl_version" >&5 $as_echo "$as_me: using openssl: $pgac_openssl_version" >&6;} if test "$with_ssl" = openssl ; then
are used for linker statement, but never for run time statements:
8096 #
8097 # Library directories
8098 #
8099 acsaveIFS=$IFS
8100 IFS="${IFS}${PATH_SEPARATOR}"
8101 # LIBRARYDIRS comes from command line, SRCHLIB from template file.
8102 for dir in $LIBRARYDIRS $SRCHLIB; do
8103 if test -d "$dir"; then
8104 LIBDIRS="$LIBDIRS -L$dir"
8105 else
...
My fix is dirty and should not stay like this. It only points to the
problem.
HIH
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)
I, Matthias, I am not at war with Russia.
Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland. - Jump to comment-1Laurenz Albe<laurenz.albe@cybertec.at>Apr 8, 2026, 11:24 AM UTCOn Wed, 2026-04-08 at 11:02 +0200, Matthias Apitz wrote:
El día miércoles, abril 08, 2026 a las 08:57:24 +0200, Matthias Apitz escribió:
Thanks for your hints. I do use now:
$ ./configure --prefix=/usr/local/sisis-pap/pgsql-18.3 \
--libdir=/usr/local/sisis-pap/pgsql-18.3/lib \
--with-includes=/usr/local/sisis-pap/include \
--with-libraries=/usr/local/sisis-pap/lib \
--enable-nls \
--with-perl \
--with-ldap \
--with-pam \
--without-icu \
--with-openssl
but it still says in config.log
...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
The libs are in the correct place:
$ ls /usr/local/sisis-pap/lib/libs*
/usr/local/sisis-pap/lib/libssl.a /usr/local/sisis-pap/lib/libssl.so.3
/usr/local/sisis-pap/lib/libssl.so
$ ls /usr/local/sisis-pap/lib/libcr*
/usr/local/sisis-pap/lib/libcrypto.a /usr/local/sisis-pap/lib/libcrypto.so.3
/usr/local/sisis-pap/lib/libcrypto.so
Then why don't you set LDLIBRARYPATH in the environment where you call ./configure?
I run the full ./configure below strace(1) and it turns out what I was
especting:
$ grep -n execve tr | grep bin/openssl
518130:1081 execve("/usr/local/sisis-pap/bin/openssl", ["/usr/local/sisis-pap/bin/openssl", "version"], 0x560886d493e0 / 78 vars /) = 0
now looking for the PID 1081 only and the fetched libs:
grep ^1081 tr | grep openat | egrep '/libssl|/libcry'
1081 openat(ATFDCWD, "/usr/lib64/glibc-hwcaps/x86-64-v3/libssl.so.3", ORDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
1081 openat(ATFDCWD, "/usr/lib64/glibc-hwcaps/x86-64-v2/libssl.so.3", ORDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
1081 openat(ATFDCWD, "/usr/lib64/libssl.so.3", ORDONLY|O_CLOEXEC) = 3
1081 openat(ATFDCWD, "/usr/lib64/libcrypto.so.3", ORDONLY|O_CLOEXEC) = 3
i.e. /usr/local/sisis-pap/bin/openssl does not pick-up its libs where it
should, while with a correct LDLIBRARYPATH is does it fine:
Alternatively, perhaps it is possible to build OpenSSL with an RPATH that
points to its shared libraries.
Yours,
Laurenz Albe- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 8, 2026, 11:38 AM UTCEl día miércoles, abril 08, 2026 a las 01:24:47 +0200, Laurenz Albe escribió:
i.e. /usr/local/sisis-pap/bin/openssl does not pick-up its libs where it
should, while with a correct LDLIBRARYPATH is does it fine:
I explained this at the beginning of this threat: because then
Then why don't you set LDLIBRARYPATH in the environment where you call ./configure?
'ld' and 'as' will not work anymore.
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
Annalena Baerbock: "We are fighting a war against Russia ..." (25.1.2023)
I, Matthias, I am not at war with Russia.
Я не воюю с Россией.
Ich bin nicht im Krieg mit Russland.
- Jump to comment-1Tom Lane<tgl@sss.pgh.pa.us>Apr 8, 2026, 2:59 PM UTCMatthias Apitz <guru@unixarea.de> writes:
but it still says in config.log
...
You don't actually need to worry about that. It's only trying to
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
report the result of "openssl version" for documentation's sake.
We don't use that executable for anything beyond that.regards, tom lane- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 8, 2026, 7:10 PM UTCEl día miércoles, abril 08, 2026 a las 10:59:29a. m. -0400, Tom Lane escribió:
Matthias Apitz <guru@unixarea.de> writes:
but it still says in config.log...
configure:14192: checking for openssl
configure:14210: found /usr/local/sisis-pap/bin/openssl
configure:14222: result: /usr/local/sisis-pap/bin/openssl
configure:14242: using openssl: openssl not found
Ok, fine with me. But the implementation of '--with-libraries' is wrong
You don't actually need to worry about that. It's only trying to
report the result of "openssl version" for documentation's sake.
We don't use that executable for anything beyond that.
or at least the documentation needs clarification if this implementation
is intentionally.
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
In Cuba bei der Ankunft eines Schiffes mit Rohöl: "Endlich, die Russen sind da!
En Cuba al llegar un barco con crudo: "Por fin, los rusos llegan!"
Wann kommen sie endlich zu uns? ¿Cúando llegan por fin para acá?- Jump to comment-1Tom Lane<tgl@sss.pgh.pa.us>Apr 8, 2026, 7:23 PM UTCMatthias Apitz <guru@unixarea.de> writes:
El día miércoles, abril 08, 2026 a las 10:59:29a. m. -0400, Tom Lane escribió:
You don't actually need to worry about that. It's only trying to
report the result of "openssl version" for documentation's sake.
We don't use that executable for anything beyond that.Ok, fine with me. But the implementation of '--with-libraries' is wrong
[ shrug... ] I do not think it's incumbent on us to work with
or at least the documentation needs clarification if this implementation
is intentionally.
broken openssl installations. If your openssl doesn't cope
with being run without any special LDLIBRARYPATH setting,
you need to rethink how you're building it.regards, tom lane- Jump to comment-1Matthias Apitz<guru@unixarea.de>Apr 9, 2026, 6:08 AM UTCEl día miércoles, abril 08, 2026 a las 03:23:45p. m. -0400, Tom Lane escribió:
Matthias Apitz <guru@unixarea.de> writes:
El día miércoles, abril 08, 2026 a las 10:59:29a. m. -0400, Tom Lane escribió:You don't actually need to worry about that. It's only trying to
report the result of "openssl version" for documentation's sake.
We don't use that executable for anything beyond that.Ok, fine with me. But the implementation of '--with-libraries' is wrong
or at least the documentation needs clarification if this implementation
is intentionally.
Wrong! It's not build unusual, just with a dedicated
[ shrug... ] I do not think it's incumbent on us to work with
broken openssl installations. If your openssl doesn't cope
with being run without any special LDLIBRARYPATH setting,
you need to rethink how you're building it.
--prefix=/usr/local/sisis-pap,
just the same way as PostgreSQL can be build with the same --prefix.
The idea of this is to keep in customer servers all OpenSource own
compiled and delivered software below the same top level dir and not
pollute servers in other areas.
The implementation of --with-libraries in PostgreSQL's 'configure is
what I'd call: a bug. You should rethink about this
--matthias
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
In Cuba bei der Ankunft eines Schiffes mit Rohöl: "Endlich, die Russen sind da!
En Cuba al llegar un barco con crudo: "Por fin, los rusos llegan!"
Wann kommen sie endlich zu uns? ¿Cúando llegan por fin para acá?