gcc генерирует 32-битный код на sparc - PullRequest
2 голосов
/ 04 марта 2010

У меня есть машина Solaris sparc, и когда я собираю свои программы, она генерирует 32-битный код, который должен быть 64-битным. Как проверить причину?

$ 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-branch + sol_rpath)
Copyright (C) 2004 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. источник для условий копирования. НЕТ
гарантия; даже не для ИЗДЕЛИИ или ФИТНЕСА ДЛЯ ОСОБЕННОЙ ЦЕЛИ.

$ / usr / sfw / bin / gcc test.c
$ file a.out
a.out: исполняемый ELF 32-разрядный MSB SPARC версии 1, динамически связанный, не очищенный, информация об отладке недоступна $

Ответы [ 2 ]

1 голос
/ 04 марта 2010

OSNews - Оптимизация SPARC с GCC

Для создания 64-битного кода необходимо использовать флаг -m64 (по умолчанию подразумевается -m32 для 32-битного кода).

(Да, это отличается от GCC для x86_64, который по умолчанию равен -m64, если не переопределен с -m32.)

1 голос
/ 04 марта 2010

Вы должны иметь возможность форсировать 64-битную сборку, используя опцию -m64.

Если это не удастся, вы можете загрузить и установить готовый пакет GCC с поддержкой 64-битной SPARC для Solaris 10 с SunFreeware.com (скачать, gunzip, установить с pkgadd -d gcc-...-sparc-local), что запустить с /usr/local/bin/gcc.

...