Source Mage GNU/Linux
Benoît PAPILLAULT, 21/09/2004
Dernière mise à jour le 16/02/2005
Documentation des modifications apportées à sorcery
Ces modifications sont nécessaires pour supporter les plateformes
bi-arch, comme par exemple l'AMD64 (x86-64).
Conversion du spell pour être conforme à BUILD_API=2
Tout d'abord, seuls les spells conformes à
BUILD_API=2 sont supportés. Les spells conformes à
BUILD_API=1 devront d'abord être convertis en suivant une
procédure simple que nous décrirons ici:
- Suppression de la partie suivant
prepare_install
du fichier BUILD pour la mettre dans le fichier
INSTALL . Le fichier BUILD devrait
contenir l'équivalent de :
./configure --build="${BUILD}" --host="${HOST}" \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=var \
--libdir="\${prefix}/${LIB}" \
--mandir="\${prefix}/share/man" \
--infodir="\${prefix}/share/info"
$OPTS
make
Note: l'utilisation de la variable LIB est nécessaire
pour les spells bi-arch.
De même, le fichier INSTALL devrait contenir
l'équivalent de :
make install DESTDIR="${INSTALL_ROOT}"
Note: lors de l'exécution de ce fichier, le répertoire courant peut
être différent du répertoire courant lors de la fin de l'exécution
du fichier BUILD . Ceci ne se produit que sur les
plateformes bi-arch et dans le cas d'un spell bi-arch.
- Bien que cela ne soit pas nécessaire, sorcery exige que les
fichiers
BUILD et INSTALL soient
exécutables. S'ils ne le sont pas, les fichiers sont simplement
ignorés!
- Ajout de
BUILD_API=2 et mise à jour du champ
UPDATED= dans le fichier DETAILS
Modifications pour les spells bi-arch
D'autres modifications sont nécessaires pour les spells bi-arch, c'est
à dire pour les spells devant être compilés pour les deux
architectures. Ceci est indiqué par la définition de
BI_ARCH_SPELL=yes dans le fichier
DETAILS . Dans ce cas, les fichiers BUILD et
INSTALL SEULEMENT seront exécutés pour chaque
architecture.
Modifications de la définition d'une architecture
Chaque architecture est définie par un fichier figurant dans le
répertoire /var/lib/sorcery/archspecs . Pour sorcery,
chaque architecture est définie par un fichier de même nom. Par
exemple x86_64 est définie dans
/var/lib/sorcery/archspecs/amd64/x86_64 . Pour les
plateformes bi-arch, 4 paramètres ont été ajoutés à ce fichier:
BI_ARCH="yes" indique qu'il s'agit d'une plateforme
bi-arch.
LIB="lib64" est le répertoire où les bibliothèques
natives seront installées. Comme dans les autres distributions
bi-arch, il s'agit du répertoire lib64 . La valeur ne
doit pas comporter de /, ni avant, ni aprés, car elle sera utilisée
dans des expressions comme /${LIB} ou /usr/${LIB}.
SUBARCH="x86_32" est le nom de la sous architecture. De
même que le nom de l'architecture, il s'agit du nom d'un
fichier. Ici, x86_32 .
SUBLIB="lib" est le répertoire où les bibliothèques
de la sous architecture seront installées. Comme dans les autres
distributions, il s'agit du répertoire lib . La valeur
ne doit pas comporter de /, ni avant, ni aprés, car elle sera
utilisée dans des expressions comme /${LIB} ou /usr/${LIB}. Cela
doit être un répertoire différent de LIB= bien
sur.
Voici donc les fichiers que nous utilisés:
/var/lib/sorcery/archspecs/amd64/x86_64
CPUNAME="AMD Athlon 64, Athlon 64 FX and Opteron"
# -m64 is not needed since it is the default. However, since gcc spell
# adds a -m32, this was causing problems.
CFLAGS="-march=athlon-xp -mmmx -mfpmath=sse -msse -msse2 -m3dnow"
HOST="x86_64-unknown-linux-gnu"
FAST="-O2"
SMALL="-Os"
BI_ARCH="yes"
LIB="lib64"
SUBARCH="x86_32"
SUBLIB="lib"
/var/lib/sorcery/archspecs/amd64/x86_32
CPUNAME="AMD Athlon 64, Athlon 64 FX and Opteron"
CFLAGS="-march=athlon-xp -mmmx -mfpmath=sse -msse -msse2 -m3dnow -m32"
HOST="i686-pc-linux-gnu"
FAST="-O3"
SMALL="-Os"
Patchs utilisés
Ces patchs s'appliquent sur la version
stable 1.11.4 de sorcery.
|