| 
 
  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.
             |