Thread: Postgresql 15 client arm64 and Qt 5.15
Hi all,
I should use the client of Postgresql on Arm64, Host where i build is Ubuntu 20.04 64bit
I have downloaded the library from Ubuntu repository http://ftp.de.debian.org/debian/pool/main/p/postgresql-15/libpq-dev_15.5-0+deb12u1_arm64.deb
When I am building the library with libpq.a it shows following error, probably there are missings libraries. Do you know the additional library that I need to link?
/home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c -target aarch64-linux-android21 -fno-limit-debug-info -fPIC -fstack-protector-strong -DANDROID -O2 -fPIC -I. -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/qt-everywhere-src-5.15.10/qtbase/mkspecs/android-clang -o main.o main.cpp > /home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target aarch64-linux-android21 -fno-limit-debug-info -Wl,--build-id=sha1 -Wl,--no-undefined -Wl,-z,noexecstack -shared -o psql main.o -Llibpq-dev_12.2-4_arm64/data/usr/lib/aarch64-linux-gnu/lib -L/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib -lpq -llog -lz -lm -ldl -lc
d: error: undefined symbol: pg_encoding_mblen > >>> referenced by fe-exec.o:(PQescapeStringInternal) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-exec.o:(PQescapeInternal) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-exec.o:(PQescapeInternal) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 2 more times > ld: error: undefined symbol: pg_vsnprintf > >>> referenced by fe-exec.o:(pqInternalNotice) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by pqexpbuffer.o:(printfPQExpBuffer) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by pqexpbuffer.o:(appendPQExpBuffer) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: pg_sprintf > >>> referenced by fe-exec.o:(pqInternalNotice) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(PQsetClientEncoding) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: pg_char_to_encoding > >>> referenced by fe-exec.o:(pqSaveParameterStatus) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-misc.o:(PQenv2encoding) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: __isoc99_sscanf > >>> referenced by fe-exec.o:(pqSaveParameterStatus) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: pg_tolower > >>> referenced by fe-exec.o:(PQfnumber) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-exec.o:(PQfnumber) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: __ctype_b_loc > >>> referenced by fe-exec.o:(PQcmdTuples) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(parse_int_param) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(parseServiceFile) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 4 more times > ld: error: undefined symbol: pg_encoding_dsplen > >>> referenced by fe-misc.o:(PQdsplen) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-protocol3.o:(pqBuildErrorMessage3) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-protocol3.o:(pqBuildErrorMessage3) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: dcgettext > >>> referenced by fe-misc.o:(libpq_gettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-misc.o:(libpq_gettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: __errno_location > >>> referenced by fe-misc.o:(libpq_gettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-misc.o:(pqSocketCheck) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-misc.o:(pqReadData) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 44 more times > ld: error: undefined symbol: bindtextdomain > >>> referenced by fe-misc.o:(libpq_gettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-misc.o:(libpq_ngettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: pg_strerror_r > >>> referenced by fe-misc.o:(pqSocketCheck) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(connectFailureMessage) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(PQconnectPoll) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 16 more times > ld: error: undefined symbol: dcngettext > >>> referenced by fe-misc.o:(libpq_ngettext) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: stderr > >>> referenced by fe-connect.o:(defaultNoticeProcessor) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(defaultNoticeProcessor) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(connectOptions2) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 5 more times > ld: error: undefined symbol: pg_fprintf > >>> referenced by fe-connect.o:(defaultNoticeProcessor) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(connectOptions2) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-trace.o:(pqTraceOutputByte1) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 107 more times > ld: error: undefined symbol: __explicit_bzero_chk > >>> referenced by fe-connect.o:(freePGconn) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(freePGconn) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(freePGconn) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 2 more times > ld: error: undefined symbol: pg_strcasecmp > >>> referenced by fe-connect.o:(sslVerifyProtocolVersion) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(sslVerifyProtocolVersion) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(sslVerifyProtocolVersion) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced 14 more times > ld: error: undefined symbol: pg_strncasecmp > >>> referenced by fe-connect.o:(parseServiceFile) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: ldap_init > >>> referenced by fe-connect.o:(parseServiceFile) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: undefined symbol: ldap_set_option > >>> referenced by fe-connect.o:(parseServiceFile) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > >>> referenced by fe-connect.o:(parseServiceFile) in archive /home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib/libpq.a > ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) > clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Thanks
Piergiorgio Valli
Piergiorgio Valli <piervalli@gmail.com> writes: > When I am building the library with libpq.a it shows following error, > probably there are missings libraries. Do you know the additional library > that I need to link? >> ld: error: undefined symbol: pg_encoding_mblen >> ld: error: undefined symbol: pg_vsnprintf libpgcommon and libpgport regards, tom lane
On Sun, Dec 17, 2023 at 5:14 PM Piergiorgio Valli <piervalli@gmail.com> wrote:
Hi all,I should use the client of Postgresql on Arm64, Host where i build is Ubuntu 20.04 64bitI have downloaded the library from Ubuntu repository http://ftp.de.debian.org/debian/pool/main/p/postgresql-15/libpq-dev_15.5-0+deb12u1_arm64.debWhen I am building the library with libpq.a it shows following error, probably there are missings libraries. Do you know the additional library that I need to link?/home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c -target aarch64-linux-android21 -fno-limit-debug-info -fPIC -fstack-protector-strong -DANDROID -O2 -fPIC -I. -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/qt-everywhere-src-5.15.10/qtbase/mkspecs/android-clang -o main.o main.cpp > /home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target aarch64-linux-android21 -fno-limit-debug-info -Wl,--build-id=sha1 -Wl,--no-undefined -Wl,-z,noexecstack -shared -o psql main.o -Llibpq-dev_12.2-4_arm64/data/usr/lib/aarch64-linux-gnu/lib -L/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib -lpq -llog -lz -lm -ldl -lc
d: error: undefined symbol: pg_encoding_mblen > >>> referenced by fe-exec.o:(PQescapeStringInternal) in archive /home/pier/data/build/libpq-
Did you directly download that one package, or install it via apt? Because I wonder why it did not pull in the required dependencies.
Ron Johnson <ronljohnsonjr@gmail.com> writes: > On Sun, Dec 17, 2023 at 5:14 PM Piergiorgio Valli <piervalli@gmail.com> > wrote: >> When I am building the library with libpq.a it shows following error, >> probably there are missings libraries. Do you know the additional library >> that I need to link? > Did you directly download that one package, or install it via apt? > Because I wonder why it did not pull in the required dependencies. .a libraries don't carry any information about what they depend on. What I'd wonder is why the OP thinks it's a good idea to link this way rather than using shared libraries. regards, tom lane
On 12/17/23 16:17, Tom Lane wrote: > Ron Johnson <ronljohnsonjr@gmail.com> writes: >> On Sun, Dec 17, 2023 at 5:14 PM Piergiorgio Valli <piervalli@gmail.com> >> wrote: >>> When I am building the library with libpq.a it shows following error, >>> probably there are missings libraries. Do you know the additional library >>> that I need to link? > >> Did you directly download that one package, or install it via apt? >> Because I wonder why it did not pull in the required dependencies. > > .a libraries don't carry any information about what they depend on. > What I'd wonder is why the OP thinks it's a good idea to link this > way rather than using shared libraries. If I where to hazard a guess: /home/pier/Android/Sdk/ndk/ ... > > regards, tom lane > > -- Adrian Klaver adrian.klaver@aklaver.com
I have a SO 64bit (not arm 64) so I have downloaded the package manually to collect all libraries for cross compilation,it is true there are missing dependencies because there are many packages (on Windows all dll are under folder libs).
Now I am searching where libpgcommon and libpgport where are installed. I will install a SO arm64 to search library alternative I thinks should build Postgresql for Arm.
Thanks
Pier
Il giorno lun 18 dic 2023 alle ore 01:03 Ron Johnson <ronljohnsonjr@gmail.com> ha scritto:
On Sun, Dec 17, 2023 at 5:14 PM Piergiorgio Valli <piervalli@gmail.com> wrote:Hi all,I should use the client of Postgresql on Arm64, Host where i build is Ubuntu 20.04 64bitI have downloaded the library from Ubuntu repository http://ftp.de.debian.org/debian/pool/main/p/postgresql-15/libpq-dev_15.5-0+deb12u1_arm64.debWhen I am building the library with libpq.a it shows following error, probably there are missings libraries. Do you know the additional library that I need to link?/home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -c -target aarch64-linux-android21 -fno-limit-debug-info -fPIC -fstack-protector-strong -DANDROID -O2 -fPIC -I. -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/include -I/home/pier/data/build/qt-everywhere-src-5.15.10/qtbase/mkspecs/android-clang -o main.o main.cpp > /home/pier/Android/Sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -target aarch64-linux-android21 -fno-limit-debug-info -Wl,--build-id=sha1 -Wl,--no-undefined -Wl,-z,noexecstack -shared -o psql main.o -Llibpq-dev_12.2-4_arm64/data/usr/lib/aarch64-linux-gnu/lib -L/home/pier/data/build/libpq-dev_15.5-0+deb12u1_arm64/data/usr/lib -lpq -llog -lz -lm -ldl -lc
d: error: undefined symbol: pg_encoding_mblen > >>> referenced by fe-exec.o:(PQescapeStringInternal) in archive /home/pier/data/build/libpq-Did you directly download that one package, or install it via apt? Because I wonder why it did not pull in the required dependencies.