Hi
While compiling PostgreSQL C++ Interface version 14.9 . Found that libpq.so is getting created with libssl.a and libcrypto.a instead of shared library libssl.so and libcrypto.so.
It is created like below:
user@seli[postgres/14.9/lib]$ ldd libpq.so
linux-vdso.so.1 (0x00007ffe67fed000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007efcf11b3000)
libc.so.6 => /lib64/libc.so.6 (0x00007efcf0df8000)
/lib64/ld-linux-x86-64.so.2 (0x00007efcf1b26000)
linux-vdso.so.1 (0x00007ffe67fed000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007efcf11b3000)
libc.so.6 => /lib64/libc.so.6 (0x00007efcf0df8000)
/lib64/ld-linux-x86-64.so.2 (0x00007efcf1b26000)
However it should use ssl and crypto as shared library like following:
Same when we compiled for 14.8, Its ldd out shows following:
user@seli[postgres/14.8/lib]$ ldd libpq.so
linux-vdso.so.1 (0x00007ffcf715d000)
libssl.so.3 => /scm/FE/SW_3pp_cm/em21_9/sles/15/openssl/3.1.2/lib64/libssl.so.3 (0x00007f23066f8000)
libcrypto.so.3 => /scm/FE/SW_3pp_cm/em21_9/sles/15/openssl/3.1.2/lib64/libcrypto.so.3 (0x00007f2305fb3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2305d94000)
libc.so.6 => /lib64/libc.so.6 (0x00007f23059d9000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f23057d5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2306bee000)
user@seli[postgres/14.8/lib]$ ldd libpq.so
linux-vdso.so.1 (0x00007ffcf715d000)
libssl.so.3 => /scm/FE/SW_3pp_cm/em21_9/sles/15/openssl/3.1.2/lib64/libssl.so.3 (0x00007f23066f8000)
libcrypto.so.3 => /scm/FE/SW_3pp_cm/em21_9/sles/15/openssl/3.1.2/lib64/libcrypto.so.3 (0x00007f2305fb3000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2305d94000)
libc.so.6 => /lib64/libc.so.6 (0x00007f23059d9000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f23057d5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2306bee000)
Any suggestion and feedback , why it is taking static library instead of shared object ?
Also there is the size difference of libpq.so. in 14.8 it is around 320 kb and in 14.9 it is around 6 mb.
Thanks
Tarkeshwar