Thread: Postgresql 15 client arm64 and Qt 5.15

Postgresql 15 client arm64 and Qt 5.15

From
Piergiorgio Valli
Date:
Hi all,

I should use the client of Postgresql on Arm64, Host where i build is Ubuntu 20.04 64bit


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


Re: Postgresql 15 client arm64 and Qt 5.15

From
Tom Lane
Date:
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



Re: Postgresql 15 client arm64 and Qt 5.15

From
Ron Johnson
Date:
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 64bit


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-
Did you directly download that one package, or install it via apt?  Because I wonder why it did not pull in the required dependencies. 

Re: Postgresql 15 client arm64 and Qt 5.15

From
Tom Lane
Date:
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



Re: Postgresql 15 client arm64 and Qt 5.15

From
Adrian Klaver
Date:
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




Re: Postgresql 15 client arm64 and Qt 5.15

From
Piergiorgio Valli
Date:

Hi, 
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 64bit


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-
Did you directly download that one package, or install it via apt?  Because I wonder why it did not pull in the required dependencies.