2010-03-04 4 views
2

J'ai une machine Solaris sparc et quand je construis mes programmes, il génère du code 32 bits qui devrait être 64bit. Comment vérifier la cause?gcc génère du code 32 bits sur sparc

$ uname -a
SunOS sol 5.10 Generic_118833-33 sun4u sparc SUNW, Sun-Fire-V240
$/usr/sfw/bin/gcc --version
gcc (GCC) 3.4.3 (csl -sol210-3_4 branche + sol_rpath)
Copyright (C) 2004 Free Software Foundation, Inc. Ce
est un logiciel libre; voir la source pour les conditions de copie. Il n'y a pas
garantie; pas même pour la QUALITÉ MARCHANDE ou l'ADAPTATION À UN USAGE PARTICULIER.

$/usr/sfw/bin/gcc test.c
fichier $ a.out
a.out: ELF 32-bit MSB exécutable Version 1 SPARC, lié dynamiquement, non dépouillé, aucune information de débogage disponible

$

Répondre

1

OSNews - SPARC Optimizations With GCC

La création d'un code 64 bits requiert l'utilisation du drapeau -m64 (-m32 pour le code de 32 bits est implicite par défaut).

(Oui, ce qui est différent de GCC pour x86_64, qui par défaut -m64, sauf contrordre avec -m32.)

1

Vous devriez être en mesure de forcer une accumulation de 64 bits en utilisant l'option -m64.

Si cela échoue, vous pouvez télécharger et installer un paquet GCC préconstruits avec 64 bits support pour SPARC Solaris 10 à partir SunFreeware.com (téléchargement, gunzip, installez avec pkgadd -d gcc-...-sparc-local) qui se déroulera du /usr/local/bin/gcc.

+0

Oui, il se révéler 32bit. Mais pourquoi? Est-il sélectionné pendant l'installation du paquet? – Adil

+1

@Adil Contrairement à x86_64, le code SPARC 64 bits nécessite plus de mémoire pour aucun gain de performance sur 32 bits, il est donc préférable utilisé que lorsque l'espace d'adressage 32 bits est insuffisante. L'espace utilisateur SPARC est donc par défaut de 32 bits, même lorsque le matériel et le noyau sont en 64 bits. – ephemient

Questions connexes