Re: Build versionless .so for Android

Поиск
Список
Период
Сортировка
От Matthias Kuhn
Тема Re: Build versionless .so for Android
Дата
Msg-id CAC7zN97BMZBaD4cPzrtG9hoBtcoLm1EyzV_pCS=1ZC9iqvkRtw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Build versionless .so for Android  (Peter Eisentraut <peter@eisentraut.org>)
Ответы Re: Build versionless .so for Android  (Peter Eisentraut <peter@eisentraut.org>)
Список pgsql-hackers
Hi

On Thu, Jan 18, 2024 at 9:27 AM Peter Eisentraut <peter@eisentraut.org> wrote:
On 14.01.24 12:37, Matthias Kuhn wrote:
> What I try to do is packaging an app with androiddeployqt which fails
> with an error:
>
> The bundled library lib/libpq.so.5 doesn't end with .so. Android only
> supports versionless libraries ending with the .so suffix.
>
> This error was introduced in response to this issue which contains hints
> about the underlying problem:
>
> https://bugreports.qt.io/plugins/servlet/mobile#issue/QTBUG-101346
> <https://bugreports.qt.io/plugins/servlet/mobile#issue/QTBUG-101346>

I think the scenario there is using dlopen(), possibly via Qt, possibly
via Java, so it's a very specific scenario, not necessarily indicative
of a general requirement on Android, and apparently not using build-time
linking.  It's quite conceivable that this issue would also exist with
Qt on other platforms.


I haven't experienced this issue with Qt on any other platform (and I build and run the same stack on windows, linux, macos and ios).
Also the links posted earlier in this thread hint to the same limitation of Android, unrelated to Qt.
 
As I mentioned before, Meson has Android support.  Some people there
clearly thought about it.  So I suggest you try building PostgreSQL for
your Android environment using Meson and see what it produces.(*)  If
the output files are the same as the autoconf/make build, then I would
think your scenario is nonstandard.  If the output files are different,
then we should check that and consider changes to get them to match.

It's of course possible that Meson is wrong, too, but then we need to
have a broader analysis, because the implicit goal is to keep the two
build systems for PostgreSQL consistent.

When trying to build with meson, including the patch which was provided by Andres Freud (thanks),
I am currently stuck with the following error:

Configuring pg_config_ext.h using configuration

../src/tgresql-16-685bc9fc97.clean/src/include/meson.build:12:0: ERROR: File port/android.h does not exist.

Kind regards
Matthias
 

(*) - This means specifically that the installation trees produced by
"make install-world-bin" and "meson install" should produce exactly the
same set of files (same names in the same directories, not necessarily
the same contents).

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Oom on temp (un-analyzed table caused by JIT) V16.1 [Fixed Already]
Следующее
От: shveta malik
Дата:
Сообщение: Re: Synchronizing slots from primary to standby