On Thu, 2009-02-26 at 17:02 -0800, David Daney wrote: > Laurent GUERBY wrote: > > On Thu, 2009-02-26 at 21:04 +0000, Richard Sandiford wrote: > >> Laurent GUERBY <laur...@guerby.net> writes: > >>> I was wondering why mips64*-*-linux does not have the same > >>> handling of multiarch as powerpc/sparc/x86 in gcc/config.gcc: > >>> 32 bits compiler binaries with 32/64 target choice via "-m", --with-cpu > >>> and --enable-targets support for configure. Is there any specific reason > >>> for this? > >>> > >>> If reason is "just not done", what model should we follow - copy/paste > >>> from? Patch or patch sketch welcomed, we have mips64 machines to play > >>> with in the GCC Compile farm :). > >> I don't think there's much reason to use a 32-bit compiler binary. > >> -mabi=n32 is designed to be an ILP32 ABI that is _mostly_ type-compatible > >> with -mabi=32, but with the ability to use 64-bit registers. And using > >> 64-bit registers is fairly important for gcc, because we require 64-bit > >> HOST_WIDE_INTs. > >> > >> When I did some performance measurements a few years back -- probably > >> on a VR413x -- n32 did give a noticeable improvement over o32. > > > > Thanks for your detailed response. > > > >>From what I understand on those box debian and mandriva both > > compiled all userspace with -mabi=32 but the kernel is 64. Debian > > provides libs for abi=32 (default), n32 and 64 and the -mabi=32 compiled > > GCC (4.3.x) supports generating code for the three ABI through various > > debian patches. May be Matthias can tell us more about this choice > > (I guess this is about compatibility for purely 32 bits mips) and future > > debian plans. > > > > I think standard Debian only supplies o32 (abi=32) libraries. I had to > cross-compile glibc et. al before I could do a native multilib mips64 > build of stock GCC. But maybe I was doing something wrong...
I'm talking about debian lenny (4.0) here (kernel is from gnewsense): gcc51:~# uname -a Linux gcc51 2.6.27.1-libre-medan #1 PREEMPT Thu Feb 12 08:21:37 CST 2009 mips64 GNU/Linux gcc51:~# cat /etc/debian_version 5.0 gcc51:~# dpkg -l|grep libc6 ii libc6 2.7-18 GNU C Library: Shared libraries ii libc6-dbg 2.7-18 GNU C Library: Libraries with debugging symb ii libc6-dev 2.7-18 GNU C Library: Development Libraries and Hea ii libc6-dev-mips64 2.7-18 GNU C Library: 64bit Development Libraries f ii libc6-dev-mipsn32 2.7-18 GNU C Library: n32 Development Libraries for ii libc6-mips64 2.7-18 GNU C Library: 64bit Shared libraries for MI ii libc6-mipsn32 2.7-18 GNU C Library: n32 Shared libraries for MIPS On the GCC side: ii gcc-4.3 4.3.2-1.1 The GNU C compiler ii gcc-4.3-base 4.3.2-1.1 The GNU Compiler Collection (base package) ii gcc-4.3-multilib 4.3.2-1.1 The GNU C compiler (multilib files) ii gcc-multilib 4:4.3.2-2 The GNU C compiler (multilib files) ii lib64gcc1 1:4.3.2-1.1 GCC support library (64bit) ii lib64gcc1-dbg 1:4.3.2-1.1 GCC support library (debug symbols) ii libgcc1 1:4.3.2-1.1 GCC support library ii libn32gcc1 1:4.3.2-1.1 GCC support library (n32) Laurent