Re: Build issue with postgresql 17 undefined reference to `pg_encoding_to_char' and `pg_char_to_encoding'

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Mikael Sand <msand(at)seaber(dot)io>
Cc: Aleksander Alekseev <aleksander(at)timescale(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Build issue with postgresql 17 undefined reference to `pg_encoding_to_char' and `pg_char_to_encoding'
Date: 2024-10-10 17:49:02
Message-ID: 2656597.1728582542@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Mikael Sand <msand(at)seaber(dot)io> writes:
> RUN clang++ -fno-common -static -o main main.cpp \
> -L/usr/local/lib -lpq -lpgcommon -lpgport \
> -lldap -lsasl2 -lssl -lcrypto -llber \
> -lgssapi_krb5 \
> -lkrb5 -lk5crypto -lcom_err -lkrb5support \
> -lgdbm

The short answer here is that your link recipe is wrong, and has been
wrong right along, though you accidentally got away with it before.
The modules within libpq expect to be linked with libpgcommon_shlib
and libpgport_shlib, not libpgcommon/libpgport.

Having external code that needs to know explicitly about every one
of a library's dependencies is one of many reasons why we discourage
static linking.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2024-10-10 17:53:57 Re: Build issue with postgresql 17 undefined reference to `pg_encoding_to_char' and `pg_char_to_encoding'
Previous Message Peter Geoghegan 2024-10-10 17:41:13 Re: Avoiding superfluous buffer locking during nbtree backwards scans