From owner-svn-src-head@FreeBSD.ORG Wed Jun 2 20:01:52 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CC16106566C; Wed, 2 Jun 2010 20:01:52 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 03D7E8FC0A; Wed, 2 Jun 2010 20:01:51 +0000 (UTC) Received: by vws12 with SMTP id 12so90504vws.13 for ; Wed, 02 Jun 2010 13:01:51 -0700 (PDT) Received: by 10.220.157.134 with SMTP id b6mr5967003vcx.203.1275508911157; Wed, 02 Jun 2010 13:01:51 -0700 (PDT) MIME-Version: 1.0 Sender: juli@clockworksquid.com Received: by 10.220.199.70 with HTTP; Wed, 2 Jun 2010 13:01:31 -0700 (PDT) In-Reply-To: <201006020842.49509.jhb@freebsd.org> References: <201006021106.o52B63PZ035362@svn.freebsd.org> <201006020842.49509.jhb@freebsd.org> From: Juli Mallett Date: Wed, 2 Jun 2010 13:01:31 -0700 X-Google-Sender-Auth: UFI9Qaqz3S08Qbnry8m2RFSjQ1I Message-ID: To: John Baldwin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208737 - in head: contrib/binutils/bfd contrib/binutils/gas/config contrib/binutils/include/elf contrib/binutils/include/opcode contrib/binutils/opcodes contrib/gcc/config contrib/gcc/... X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jun 2010 20:01:52 -0000 On Wed, Jun 2, 2010 at 05:42, John Baldwin wrote: > On Wednesday 02 June 2010 7:06:03 am Juli Mallett wrote: >> =A0 o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mip= s64__, the >> =A0 =A0 =A0former being what libgcc, etc., check and the latter seemingl= y being a >> =A0 =A0 =A0misspelling of a hand merge from a Linux spec. > > I wonder if it would be useful to define both? =A0The macros we check for > architecture-specific code for other architectures all have both leading = and > trailing underscores (e.g. __i386__, __amd64__, etc.). =A0Being able to u= se > __mips64__ instead of __mips64 for that in kernel sources, etc. would be > more consistent. __mips64 is a mistake and adding __mips64__ and using it would be a bigger one, I think, since it's kind of confusing and not actually useful enough to use consistently. MIPS64 is the name of a particular ISA, but not all 64-bit ISAs (indeed, the earliest 64-bit ISA is MIPS-III) are derived from it. __mips64 implies a 64-bit ABI, but there isn't a clean split between non-__mips64 ABIs and __mips64 ABIs such that those are the only two things you'd ever need to check for. We intend to support the n32 ABI in userland, which has 64-bit registers. Conditionals related to that kind of thing would become (__mips64__ || __mips_n32). I think it makes more sense to be consistent and use macros related to specific ABIs, macros related to specific ISAs and sometimes the macros related to the length of long and the size of a pointer, since there are some ABIs that we might support (o64) which can support strange combinations of those. Thanks, Juli.