@itemize

@item
Note that Sun C++ compiler versions before 5.6 may need some special
setup to link properly against shared versions of the C++ standard libraries.
See @url{http://lists.gnu.org/archive/html/libtool/2005-08/msg00088.html} for
more information.

@item
On AIX there are two different styles of shared linking, one in which symbols
are bound at link-time and one in which symbols are bound at runtime only,
similar to ELF@.  In case of doubt use @code{LDFLAGS=-Wl,-brtl} for the latter style.

@item
On AIX, native tools are to be preferred over binutils; especially for C++ code,
if using the AIX Toolbox GCC 4.0 and binutils, configure with
@code{AR=/usr/bin/ar LD=/usr/bin/ld NM='/usr/bin/nm -B'}.

@item
On AIX, the @command{/bin/sh} is very slow due to its inefficient handling
of here-documents.  A modern shell is preferable:
@example
CONFIG_SHELL=/bin/bash; export $CONFIG_SHELL
$CONFIG_SHELL ./configure [...]
@end example

@c @item
@c FreeBSD @command{make} does not conform to @sc{posix} in its handling
@c of file modification times, which causes it to loop while building libtool.
@c Consider using a different @command{such} as GNU make instead.

@item
Note in some cases you might need to put ABI-changing compiler flags
into the compiler name.  For example, use of
@example
  configure CC='gcc -m32'
@end example
rather than
@example
  configure CC=gcc CFLAGS=-m32 LDFLAGS=-m32
@end example
might help with this Libtool release.

@item
The default shell on UNICOS 9, a ksh 88e variant, is too buggy to
correctly execute the libtool script.  Users are advised to install a
modern shell such as GNU bash.

@item
Some HP-UX @command{sed} programs are horribly broken, and cannot handle
libtool's requirements, so users may report unusual problems.  There
is no workaround except to install a working @command{sed} (such as GNU sed)
on these systems.

@item
The vendor-distributed NCR MP-RAS @command{cc} programs emits copyright
on standard error that confuse tests on size of @file{conftest.err}.  The
workaround is to specify @env{CC} when run configure with
@code{CC='cc -Hnocopyr'}.

@item
Any earlier DG/UX system with ELF executables, such as R3.10 or
R4.10, is also likely to work, but hasn't been explicitly tested.

@item
On Reliant Unix libtool has only been tested with the Siemens C-compiler
and an old version of @command{gcc} provided by Marco Walther.

@item
@file{libtool.m4}, @file{ltdl.m4} and the @file{configure.ac} files are marked
to use autoconf-mode, which is distributed with GNU Emacs 21, Autoconf itself,
and all recent releases of XEmacs.

@item
When building on some linux systems for multilib targets
@command{libtool} sometimes guesses the wrong paths that the linker
and dynamic linker search by default. If this occurs, you may override
libtool's guesses at @command{configure} time by setting the
@command{autoconf} cache variables
@code{lt_cv_sys_lib_search_path_spec} and
@code{lt_cv_sys_lib_dlsearch_path_spec} respectively to the correct search
paths.

@end itemize
