Des détails sur ce paquet se trouvent sur Section 10.64.2, « Contenu de Libtool. »
Le paquet Libtool contient le script de support générique des bibliothèques GNU. Il enveloppe la complexité d'utiliser des bibliothèques partagées dans une interface cohérente et portable.
Le fichier config.cache
suivant
permet de forcer le chemin de recherche par défaut pour prendre en
compte l'environnement multilib :
echo "lt_cv_sys_dlsearch_path='/lib /usr/lib /usr/local/lib /opt/lib'" > config.cache
Préparez la compilation de Libtool :
CC="gcc ${BUILD32}" ./configure \ --prefix=/usr \ --cache-file=config.cache
Compilez le paquet :
make
Pour tester les résultats, vous devez d'abord savoir si votre machine a une architecture big-endian ou little-endian. Les machines SGI sont généralement de type big-endian et les Cobalt sont de type little-endian. Si vous avez un doute, echo ${MACHTYPE} | grep 'el-' trouvera une occurrence sur une machine de type little-endian.
Pour tester les résultats sur une machine little-endian,
lancez : make
LDEMULATION=elf32ltsmip check
.
Pour tester les résultats sur une machine big-endian, lancez :
make LDEMULATION=elf32btsmip
check
.
Voici la signification du paramètre de make check :
LDEMULATION=[emulation]
Libtool a tendance à se comporter de façon inattendue en
environnement multilib, du moins sur des architectures autres
que celle par défaut. On ne saisit pas tout à fait les causes
de ces erreurs car elles peuvent apparaître ou disparaître
bon gré mal gré, même lors de changements normalement
inoffensifs au bon déroulement de la compilation. Dans cette
version du livre, l'un des tests, pdemo-make, ne se lie pas
correctement car il cherche à lier les objets 32 bits aux
bibliothèques 64 bits du système. Cette option permet à ce
test de réussir sans impacter les autres tests (par rapport
aux méthodes de correction plus traditionnelles comme
spécifier LD="gcc ${BUILD32}"
,
ce qui empêche l'exécution de nombreux test ou bien
configurer avec LDFLAGS='-L/lib
-L/usr/lib'
, ce qui dans ce cas fait échouer d'autres
tests).
Installez le paquet :
make install
Préparez libtool
à être pris en
charge par le programme enveloppe multi-architectures
(« multiarch-wrapper »). Libtool seul ne supporte pas
l'environnement multilib :
mv -v /usr/bin/libtool{,-32}
Des détails sur ce paquet se trouvent sur Section 10.64.2, « Contenu de Libtool. »