Respect CONFIG_SHELL in make dist.

When CONFIG_SHELL is set, 'make dist' may fail when ignoring.
* Makefile.am: Always set CONFIG_SHELL for configure.
No cross-library undefined symbols on AIX.

While AIX does support undefined symbols in general, undefined symbols
in one shared library do not trigger another shared library to be marked
as needed by the linker.
* tests/template.at: Skip test with undefined symbols across libraries.
Support loading shared library archive members.

AIX supports shared objects as members of archive libraries, loadable
with dlopen using the RTLD_MEMBER flag.
* libltdl/ltdl.c: Define LT_SHARED_LIB_MEMBER.
(lt_dlopenadvise) When LT_SHARED_LIB_MEMBER is defined, allow for
specifying an archive member as the to-be-loaded shared object.
Prefer to load with LT_SHARED_LIB_MEMBER specified when applicable.
* libltdl/loaders/dlopen.c: Use RTLD_MEMBER flag for dlopen when the
filename does specify an archive member between "()".
Prepare -dlopen option for shared archive members.

build-aux/ltmain.m4sh (func_mode_execute): When testing if the file to
be dlopen'ed exists for -dlopen options, strip the optional AIX archive
member from dlname first.
Do not remove AIX archive member in mode clean.

build-aix/ltmain.m4sh (func_mode_uninstall): Do not try to remove the
AIX archive member, but the archive file only.
Fix soname_spec for old shared archive on AIX.

Without runtime linking, we create the shared object as member of the
library archive. This requires specifying the member name for dlopen.
m4/libtool.m4: (soname_spec) Specify the archive member on AIX.
AIX runtime linking allows undef syms by default.

* m4/libtool.m4: When runtime linking is active on AIX, undefined
symbols are allowd by default: define the 'no_undefined_flag' instead of
'allow_undefined_flag', to actually let the -no-undefined libtool switch
have any effect in this case.
Drop useless symlinks with AIX runtime linking.

* m4/libtool.m4: On AIX, the standalone shared objects we create when
runtime linking is active do not support versioning at all, so the
versioning symlinks are plain useless.
(library_names_spec) No versioning with AIX runtime linking.
Declare the 'aix-soname' feature.

Declare filename based shared library versioning on AIX.
m4/ltoptions.m4: (_LT_SET_OPTIONS) Add LT_INIT options aix-soname,
aix-soname=compat, aix-soname=no, default no.
(_LT_ENABLE_AIX_SONAME) New. Declare 'aix_soname_member_spec' libtool
variable.
Implement aix-soname=yes, aix-soname=compat.

* m4/libtool.m4: Allow filename based shared library versioning on AIX.
(--enable-aix-soname=yes): Do filename based shared library versioning
with .so filename extension, for use with runtime linking only.
Enable runtime linking for executables in LDFLAGS.
(--enable-aix-soname=compat): Same, but do not change runtime linking in
LDFLAGS. Also, create traditional shared library archive with the .a
filename extension without runtime linking. This also implies disabling
the creation of static libraries.
(--disable-aix-soname): Keep previous behaviour, creating traditional
shared archive when runtime linking is not enabled in LDFLAGS, or
standalone shared object without any shared library versioning along
static archive when runtime linking is enabled in LDFLAGS.
Run versioning checks on aix with 'aix-soname'.

* tests/versioning.at: On AIX, when aix_soname_member_spec is defined,
run the versioning check.
Detect XFAIL based on hardcode configuration.

* tests/deplibs-ident.at: To define whether this test should XFAIL, use
hardcode_action, hardcode_direct, hardcode_direct_absolute configuration
settings instead of platforms aix, hppa-hpux, interix or openbsd.
evaluate libtool-config within AT_XFAIL_IF