Introduction
Cet article présente l’installation de Sun Studio 12 update 1 pour Solaris X86. Sun Studio inclut les compilateurs C, C++, Fortran, etc. et des outils de développement très utiles (debuggers, analyseurs de mémoire et de threads, etc.). Sun Studio convient parfaitement dans la majorité des cas pour les besoins courants de compilation sur les plateformes Solaris.
Si les compilations à réaliser ne requièrent pas de composants exotiques, Sun Studio suffit grandement et permet de s’affranchir de l’installation et des compilations de GNU gcc, etc. Un néophyte pourra utiliser Sun Studio sans devoir s’arracher les cheveux avec GNU gcc et les librairies en cascade à installer derrière, sans parler des pollutions dans les répertoires systèmes /usr
, /usr/local
, etc. Un gain de temps considérable et un impact minimal sur les répertoires systèmes /usr.
Ces travaux ont été réalisés dans le cadre de la migration d’une plateforme Web de monitoring des SGBD de Sun SPARC Solaris 9 vers Sun Solaris 10 X86 AMD, plateforme qui embarque les composants Apache, OpenLDAP, PHP5, freetds, sqsh, Cairo…, composants à compiler.
Téléchargement et préparation de l’installation
Sun Studio 12 update 1 est disponible à l’adresse suivante : http://developers.sun.com/sunstudio/downloads/. Malheureusement il est nécessaire de créér un compte (ceci prend 2 minutes).
2 options d’installation sont possibles :
- Avec un package
- Avec une archive
Dans le cas du package, Sun Studio est installé avec la commande pkgadd
. Dans cet article, c’est l’option du fichier archive qui a été choisie. L’installation est réalisée avec le super-utilisateur root.
Le fichier archive de Sun Studio 12 est une archive compressée avec bzcat
et s’appelle SunStudio12u1-SunOS-x86-pkgs-ML.tar.bz2
pour Solaris 10 X86.
Ce fichier archive compressé (environ 300Mb) est téléchargé et installé dans un répertoire temporaire sur la machine X86 cible (/tmp
dans cet article). bzcat
et tar -xf
sont ensuite utilisés pour réaliser la décompression et le désarchivage.
root@SRVUNXFR% cd /tmp
root@SRVUNXFR% bzcat SunStudio12u1-SunOS-x86-pkgs-ML.tar.bz2 | /bin/tar -xf -
L’installation est ensuite lancée en mode graphique en lançant SunStudio12u1-SunOS-x86-pkgs.sh
dans le répertoire SunStudio12u1-SunOS-x86-pkgs-ML
qui a été créé lors du désarchivage. La variable d’environnement DISPLAY
(DISPLAY=<ip>:0.0
) est mise à jour pour le mode graphique.
root@SRVUNXFR% DISPLAY=10.128.148.144:0.0
root@SRVUNXFR% export DISPLAY
root@SRVUNXFR% ./SunStudio12u1-SunOS-x86-pkgs.sh
Installation
Après les écrans classiques sur la licence, les langues, etc. les options de Sun Studio sont proposées, options qu’il est possible de personnaliser. Par défaut, les produits proposés sont les compilateurs C, C++ et Fortran 95, les librairies de performances, de debug et l’IDE de Sun Studio. Tous les produits sont sélectionnés dans cette installation.
Par défaut, Sun Studio 12 est créé dans /opt/sunstudio12.1
. Il faut vérifier à cette étape que /opt
a la capacité disque nécessaire pour l’installation de Sun Studio 12 (964 Mb).
L’interface propose également à cette étape de créer les liens symboliques nécessaires vers /opt/sunstudio12.1
dans usr/bin
pour éviter d’avoir à mettre à jour les variables $PATH
et $LD_LIBRARY_PATH
afin d’utiliser Sun Studio (case à cocher "Create symbolic links to /usr/bin"). Dans ce cas concret, l’engagement a été pris de ne pas polluer les répertoires systèmes /usr
, cette option est décochée.
Opérations post installation (pré-requis kernel Solaris 10)
Des pré-requis au niveau des patchs du noyau Solaris sont nécessaires pour SunStudio 12 Update 1. Ces pré-requis sont consignés à l’adresse http://developers.sun.com/sunstudio/downloads/ss12u1/tarfile_info.jsp.
Pour vérifier le niveau de patch de Solaris 10 X86, utiliser la commande showrev
:
root@SRVUNXFR% showrev | tail -1
Kernel version: SunOS 5.10 Generic_142901-04
Le dernier nombre est le niveau de patch OS Solaris.
Pour Solaris 10 X86, le dernier niveau de patch kernel requis est le patch 137138, patch qui corrige des bugs pour le debugger dbx
. Si le niveau de patch est inférieur à cette version, contacter l’administrateur système ou installer les patches avec le compte root avec le shell install_patches.sh
mis à disposition dans le répertoire d’installation de SunStudio :
root@SRVUNXFR% <path_to_installer_sunstudio12>/install_patches.sh
Guide rapide du lancement de Sun Studio
Pour utiliser SunStudio et les compilateurs associés (C, C++, Fortran 95…) lorsque les liens symboliques ne sont pas créés dans /usr/bin
à l’installation, les variables PATH
et MANPATH
doivent être mises à jour et référencent respectivement les chemins d’installation <répertoire_d’installation_de_sunstudio>/bin
et <répertoire_d’installation_de_sunstudio>/man de SunStudio
.
root@SRVUNXFR% PATH=/opt/sunstudio12.1/bin:$PATH
root@SRVUNXFR% export PATH
root@SRVUNXFR% MANPATH=/opt/sunstudio12.1/man:$MANPATH
root@SRVUNXFR% export MANPATH
L’interface graphique Java de SunStudio peut alors être lancée avec le shell sunstudio
dans le répertoire /opt/sunstudio12.1
. Pour l’interface graphique, la variable d’environnement DISPLAY
doit être à jour. La variable DISPLAY
référence l’IP du poste client pour l’affichage graphique (DISPLAY=<ip>:0.0; export DISPLAY
) :
root@SRVUNXFR% sunstudio &
SunStudio propose en natif de la gestion des sources avec SubVersion.
Les fonctionnalités de SunStudio sont multiples et ne sont pas l’objet de cet article, Sun Studio étant installé essentiellement pour les compilations de logiciels (Apache, PHP, etc.).
Un exemple simple de compilation de FreeTds 0.82 64 bits avec Sun Studio
Avec SunStudio, les compilations sont bien plus simples. Voici l’exemple de la compilation de FreeTds 0.82 en 64 bits avec SunStudio.
Les sources du programme freetds 0.82 sont transférées dans le répertoire /Software/compilations/freetds/freetds-0.82
pour la compilation.
Préparation de l’environnement pour la compilation de freetds avec SunStudio en 64 bits.
La variable PATH
est mise à jour avant la compilation pour référencer /usr/ccs/bin
, répertoire qui contient le binaire ld
, indispensable pour la génération des liens.
root@SRVUNXFR% PATH=/usr/ccs/bin:$PATH
export PATH
Si les liens de SunStudio n’ont pas été installés dans /usr/bin
lors de l’installation, la variable PATH
doit référencer également le répertoire <répertoire de sunstudio 12.1>/bin
pour trouver les compilateurs.
root@SRVUNXFR% PATH=/opt/sunstudio12.1/bin:$PATH
export PATH
Il s’agit d’une compilation en 64 bits, la variable CFLAGS
est donc mise à jour à -m64
:
CFLAGS=-m64
export CFLAGS
Compilation de freetds 0.82
Lorsque les variables d’environnement nécessaires sont mises à jour (PATH, CFLAGS
…), la compilation peut démarrer avec SunStudio. Dans cet exemple, la configuration de freetds est réalisée en indiquant que le chemin d’installation sera /Software/tools/freetds
.
root@SRVUNXFR% ./configure --prefix=/Software/tools/freetds
Lors de la configuration de la compilation, le compilateur cc de SunStudio 12.1 sera détecté
…
checking for gcc... no
checking for cc... cc
…
La fin de la compilation est classique avec make
et make install
:
root@SRVUNXFR% make
… cc -D_REENTRANT -m64 -o tdssrv unittest.o ./.libs/libtdssrv.a -lnsl -lsocket -lpthread …
root@SRVUNXFR% make install
… mkdir /Software/tools/freetds/include …
Une pré-vérification de la compilation peut être réalisée en utilisant la commande file
sur le binaire tsql
compilé pour vérifier qu’il s’agit bien d’un binaire 64 bits.
root@SRVUNXFR% cd /Software/tools/freetds/bin root@SRVUNXFR% file tsql
tsql: ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR FPU], dynamically linked, not stripped