10.41. Libtool-2.4.2 32 Bit Libraries

The Libtool package contains the GNU generic library support script. It wraps the complexity of using shared libraries in a consistent, portable interface.

10.41.1. Installation of Libtool

The following config.cache entry overrides the default search path, which does not take multilib into account:

echo "lt_cv_sys_dlsearch_path='/lib /usr/lib /usr/local/lib /opt/lib'" > config.cache

Prepare Libtool for compilation:

CC="gcc ${BUILD32}" ./configure --prefix=/usr \
    --cache-file=config.cache

Compile the package:

make

To test the results, issue: make LDEMULATION=elf_i386 check.

The meaning of the override on make check:

LDEMULATION=elf_i386

Libtool tends to do the wrong thing when building for multilib, at least on the non-default size(s) of architecture. The causes of these errors are not well understood and they can appear, or disappear, as a result of apparently innocuous other changes in the build. In this version of the book, one of the tests (pdemo-make) fails to link because it tries to link the 32-bit objects against 64-bit system libraries. This option enables the test to succeed without impacting the other tests (compare the common alternative fixes of LD="gcc ${BUILD32}" which causes far fewer tests to be executed, and configuring with LDFLAGS='-L/lib -L/usr/lib' which in this case causes other tests to fail.)

Install the package:

make install

Prepare libtool to be wrapped by the multiarch wrapper. Libtool by itself is not multilib aware:

mv -v /usr/bin/libtool{,-32}

Details on this package are located in Section 10.42.2, “Contents of Libtool.”