AIX/PASE integration improvements (#14652)
commit18e0ebfe89be0a175d2f904b9bb1ec6816daa318
authorCalvin Buckley <calvin@cmpct.info>
Fri, 7 Jun 2019 18:02:44 +0000 (7 11:02 -0700)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Fri, 7 Jun 2019 18:02:43 +0000 (7 20:02 +0200)
tree3ff8f215664e249422eb6a4375c4066beb9d37ad
parent96125c693c5164347da9fba14a3c936d16fef86e
AIX/PASE integration improvements (#14652)

* Allow using SysV-style sonames on AIX/PASE

This uses a far saner naming convention with libtool, and is
consistent with the official PASE RPM repository. However, some
loader changes are required to make it "just work" and workaround
some real dumb behaviour on AIX's part.

Note that while Mono works when built without the different soname
tweak, it won't when installed, because the convention is strange
and the libtool .la archives won't be installed. It's recommended
as such that installation of Mono keeps the libtool files or just
uses SVR4 sonames like the rest of the world, even if they're made
strange like AIX.

* Specify a specific version of unixODBC, make an include

A workaround against PASE RPMs of unixODBC not including the just
"libodbc.so" except in the development version. If a platform needs
a specific version (the macOS reference not changed in the DllMap)
then it can be specified in the configure script.

AIX doesn't need a special name because both AIX Toolbox and Perzl
include non-archive libraries in /opt/freeware/lib - unexpected.

* Don't try to use shm_open on PASE due to it not being implemented

All this will do is cause a coredump if running the script on PASE,
and write an entry to the SLIC diagnostic logs. This test could be
re-enabled if i 7.4 supports it properly.

* fix ODBC include

* Check for what library to use for libintl when dlopenning on AIX

These checks are for the benefit of the DllMap. The construct used
is kinda hacky, IMHO, but it resolves the concerns of hardcoding.
In the event that this doesn't work (it does for me), it falls back
to what the IBM RPMs seem to use for linking gettext et al.

Not sure of the utility for other platforms, since they usually
use sane soname conventions and the one-liner here depends heavily
on an AIX developer tool and its output format.

The use of cut/awk should work with the stock AIX utils, no GNU
necessarily needed.
configure.ac
data/config.in
mono/utils/mono-dl-posix.c
mono/utils/mono-dl.c