(Converting to plain text, apologies for the formatting mess
that makes)

MIPS does not yet have a MIPS64 port of debian in stable, (nor
testing for that matter) so these boards are running a MIPS64
kernel with MIPS32 debian.

MIPS64R2 debian is however coming up through 'sid' now. Fedora
ports are also in progress.

The compiler is a multilib compiler where o32 is the default
and n32 and n64 are also available. It can be unsettling to see
a mips-linux-gnu targeted compiler generate n32 or n64 code but
it is a supported configuration. The configuration for the system
compiler is:

--with-arch-32=mips2 --with-tune-32=mips32 --enable-targets=all
--with-arch-64=mips3 --with-tune-64=mips64 --target=mips-linux-gnu

So you will actually generate MIPS II and MIPS III code by
default if you do not specify an architecture. In some ways I
suggest new projects aim for MIPS32R2 as a minimum arch as it
will simplify any hand written assembly.

I suggest being explicit about what ABI you want in general even
if it happens to match the default as assuming o32 will generally
not hold true for a mips64-linux-gnu compiler. Specifying the
architecture can be useful when you have a specific need but due
to the introduction of MIPS Release 6 then software that forces
an architecture will break when moving to R6 as R2 and R6 objects
cannot be statically linked together; shared libraries between R2
and R6 can however link.

Hope that sheds some light on the situation.

Thanks,
Matthew

---

From: Gcc-cfarm-users [mailto:gcc-cfarm-users-boun...@gna.org] On Behalf Of 
Paul Hargrove
Sent: 21 April 2016 11:01
To: Carl Eugen Hoyos
Cc: Rich Felker; gcc-cfarm-users
Subject: Re: [Gcc-cfarm-users] gcc22/23/24: three new mips64r2 Cavium Octeon II 
V0.1 machines ERPro-8

Carl,

I cannot answer for why 32-bit is the default, but it is not so uncommon.

Here is Debian Wheezy on PPC64:
debian@wheezy:~$ uname -a
Linux wheezy 3.2.0-4-powerpc64 #1 SMP Debian 3.2.68-1+deb7u1 ppc64 GNU/Linux
debian@wheezy:~$ gcc hello.c
debian@wheezy:~$ file a.out
a.out: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.26, 
BuildID[sha1]=0x7aa335bac96e4f56ae4cdf5a3823a359e3d90585, with unknown 
capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, 
not stripped

Debian Wheezy on SPARC64:
phargrov@sparc64:~$ uname -a
Linux sparc64 3.2.0-4-sparc64 #1 Debian 3.2.78-1 sparc64 GNU/Linux
phargrov@sparc64:~$ gcc hello.c
phargrov@sparc64:~$ file a.out
a.out: ELF 32-bit MSB executable, SPARC32PLUS, V8+ Required, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.26, 
BuildID[sha1]=0xcc3e4759e903d238cc9afe4ea5e9c5ebe6ab1b77, not stripped

So, I am not surprised at all that the same is true for Debian on MIPS64.

Same on Solaris for x86-64, FWIW.

-Paul

On Thu, Apr 21, 2016 at 2:45 AM, Carl Eugen Hoyos <ceho...@ag.or.at> wrote:
Hi!

On Wed, 20 Apr 2016, Paul Hargrove wrote:
Rich,
The *default* ABI is "32", but (at least) "-mabi=64" and "-mabi=m32" are 
available

I also found out yesterday that -mabi=64 is needed but I wonder why 32bit is 
the default: I would be very surprised if my compiler on Linux x86-64 (that 
also supports x86-32) would not default to 64 bit.

Carl Eugen




-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
_______________________________________________
Gcc-cfarm-users mailing list
Gcc-cfarm-users@gna.org
https://mail.gna.org/listinfo/gcc-cfarm-users

Reply via email to