]> git.ipfire.org Git - thirdparty/gettext.git/commit
build: Fix "make install" failure on Android.
authorBruno Haible <bruno@clisp.org>
Sun, 17 Sep 2023 19:11:09 +0000 (21:11 +0200)
committerBruno Haible <bruno@clisp.org>
Tue, 19 Sep 2023 02:11:24 +0000 (04:11 +0200)
commitbc22ef2a32d628d1713e8c2f8f9856f6d24d5afc
treeec46333cc44474a7b78b200a437c29a3f3bc1a27
parent510f464b4cf33492edfd6c1e4bd55824d9e2741e
build: Fix "make install" failure on Android.

This patch fixes two problems with "make install" on Android:

1) On this platform, libtool is configured to relink libraries during
"make install".
This leads to a problem during the installation of libgettextsrc: The relink
command that libtool emits has the form

  $CC -shared -fPIC -DPIC .libs/*.o -L$(libdir) ... -lgettextlib ... \
      -o .libs/libgettextsrc-@VERSION@.soT

The option -lgettextlib resolves to $(libdir)/libgettextlib.a, not to
$(libdir)/libgettextlib-@VERSION@.so.
Thus the linker attempts to include many object files from libgettextlib.a
into libgettextsrc-@VERSION@.soT, but some of these reference global variables
in a non-PIC way, and the linker thus complains

  ld.lld: error: relocation R_ARM_REL32 cannot be used against symbol 'program_name'; recompile with -fPIC

2) The installed executables don't have a RUNPATH property that points to the
directory that contains the shared libraries. Thus these executables don't run.

Reported at <https://savannah.gnu.org/patch/index.php?10393>.

* m4/libtool.m4: On Android, fix library_names_spec and
hardcode_libdir_flag_spec.
m4/libtool.m4