| @itemize |
| |
| @item |
| You currently need GNU make to build the Libtool package itself. |
| |
| @item |
| On AIX there are two different styles of shared linking, one where symbols |
| are bound at link-time and one where 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 |
| |
| @item |
| For C++ code with templates, it may be necessary to specify the way the compiler |
| will generate the instantiations. For Portland pgCC version5, use |
| @code{CXX='pgCC --one_instantiation_per_object'} and avoid parallel @command{make}. |
| |
| @item |
| For C++ code, it may be necessary to specify a library if it is a dependency |
| of a link/compile flag. For example in GNU G++, if you want to use |
| @code{-fsanitize=address} you need to specify the @code{-lasan} library, |
| like so: @code{g++ -o libx.la -fsanitize=address -lasan -rpath [...]}. |
| |
| @item |
| On Darwin, for C++ code with templates you need two level shared libraries. |
| Libtool builds these by default if @env{MACOSX_DEPLOYMENT_TARGET} is set to |
| 10.3 or later at @command{configure} time. See @url{rdar://problem/4135857} |
| for more information on this issue. |
| |
| @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 |
| 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 GNU/Linux systems for multilib targets @command{libtool} |
| sometimes guesses the wrong paths that the linker and dynamic linker search by |
| default. If this occurs for the dynamic library path, you may use the |
| @code{LT_SYS_LIBRARY_PATH} environment variable to adjust. Otherwise, at |
| @command{configure} time you may override libtool's guesses 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. |
| |
| @item |
| For many GNU/Linux systems, the shared library cache is not updated after a |
| @command{make install}. Instead, the user will need to manually execute |
| @command{ldconfig 'LIBDIR'} to locate newly installed libraries. Users |
| should consult a system administrator as this should be done with great |
| care. Here are some considerations: |
| |
| @itemize |
| @item |
| Libtool is designed to be portable to many different operating systems, and |
| these OSs behave in various ways. Some OSs will find a new library |
| automatically if it is installed in the existing configured library paths. |
| |
| @item |
| The library installed might not ever be intended to be used by the currently |
| executing OS because it is part of new distribution builds. |
| |
| @item |
| Sometimes libraries are installed privately, using hard-coded run-paths in |
| their dependent binaries. This is very common when a different version of |
| the software is to be run than the OS is designed to support. |
| |
| @end itemize |
| |
| @item |
| When using the MSVC toolchain, users should set Fortran environment variables |
| to the following F77="no" and FC="no". This should avoid possible issues for |
| symbols not being found when linking libltdl. |
| |
| @end itemize |