Re: Build versionless .so for Android

From: Matthias Kuhn <matthias(at)opengis(dot)ch>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Build versionless .so for Android
Date: 2024-01-19 10:08:59
Message-ID: CAC7zN97BMZBaD4cPzrtG9hoBtcoLm1EyzV_pCS=1ZC9iqvkRtw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

On Thu, Jan 18, 2024 at 9:27 AM Peter Eisentraut <peter(at)eisentraut(dot)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).
>
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2024-01-19 10:25:24 Re: Synchronizing slots from primary to standby
Previous Message Daniel Gustafsson 2024-01-19 10:06:42 Re: Oom on temp (un-analyzed table caused by JIT) V16.1 [Fixed Already]