Pkgsrc sur OpenSolaris, c’est bien, mais des packages compilés en 64 bits avec Sun Studio, c’est quand même la grosse classe. Et parmi eux pkgin, evidemment :)
Malheureusement, ce n’est pas une opération spécialement bien documentée, et surtout, elle nécessite une modification (en tout cas à ce jour) de mk/compilers/sunpro.mk.
J’utiliserai /opt comme base pour l’installation du framework car cela semble être l’usage pour tous les utilisateurs chevronnés du binôme Solaris/pkgsrc.
Je suppose dans le reste de ce post que la machine cible est 64 bits-capable et que le package sunstudio12u1 est installé via pkg.
Tout d’abord, on checkout pkgsrc de manière tout à fait classique :
imil@geonosis:/opt$ pfexec cvs -d anoncvs@anoncvs.fr.netbsd.org:/cvsroot co pkgsrc
On modifie ensuite le fichier mk/compilers/sunpro.mk, à partir de la ligne 88 :
# SunPro compiler must be passed certain flags to compile/link 64-bit code.
#.if !empty(CC_VERSION:M5.9)
_COMPILER_ABI_FLAG.64= -m64
#.elif ${MACHINE_ARCH} == "sparc"
#_COMPILER_ABI_FLAG.64= -xtarget=ultra -xarch=v9
#.else
#_COMPILER_ABI_FLAG.64= -xarch=amd64
#.endif
Puis on bootstrap pkgsrc de cette façon :
imil@geonosis:/opt/pkgsrc/bootstrap$ CC=/opt/sunstudio12.1/bin/cc pfexec ./bootstrap --prefix=/opt/pkg --abi=64
Le fichier /opt/pkg/etc/mk.conf sera renseigné avec les valeurs qui ont servi à bootstraper pkgsrc.
On vérifie l’exactitude de l’opération simplement :
imil@geonosis:/opt/pkgsrc/bootstrap$ file /opt/pkg/bin/bmake /opt/pkg/bin/bmake: ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, stripped
poh poh poh, ça claque ou bien.
Recent Comments