Installation de Sun Studio 12 sur Sun Solaris 10 X86 pour les compilations

Logo

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.

options produits sun studio

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

chemin installation sun studio

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 &

chemin installation sun studio

SunStudio propose en natif de la gestion des sources avec SubVersion.

chemin installation sun studio

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