Source Mage GNU/Linux

Programmes Projet Speedtouch Projet Snoopy Projet eciadsl La recette du pain Source Mage BeOS Mon CV Mon blog Notes On nous prend pour des cons! Don
Programmes
Projet Speedtouch
Projet Snoopy
Projet eciadsl
La recette du pain
Source Mage
BeOS
Mon CV
Mon blog
Notes
On nous prend pour des cons!
Don
en fr

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.
Valid XHTML 1.0! CSS Valide !
Benoît Papillault