Date: Wed, 02 Jun 2010 15:19:15 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: jmallett@FreeBSD.org Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, jhb@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/... Message-ID: <20100602.151915.496568814199104007.imp@bsdimp.com> In-Reply-To: <AANLkTilVZ07G6giuvVZOoV_-JLSThYg0fPVGsEumlfC9@mail.gmail.com> References: <201006021106.o52B63PZ035362@svn.freebsd.org> <201006020842.49509.jhb@freebsd.org> <AANLkTilVZ07G6giuvVZOoV_-JLSThYg0fPVGsEumlfC9@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <AANLkTilVZ07G6giuvVZOoV_-JLSThYg0fPVGsEumlfC9@mail.gmail.c= om> Juli Mallett <jmallett@FreeBSD.org> writes: : On Wed, Jun 2, 2010 at 05:42, John Baldwin <jhb@freebsd.org> 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= __mips64__, the : >> =A0 =A0 =A0former being what libgcc, etc., check and the latter se= emingly 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 che= ck for : > architecture-specific code for other architectures all have both le= ading and : > trailing underscores (e.g. __i386__, __amd64__, etc.). =A0Being abl= e to use : > __mips64__ instead of __mips64 for that in kernel sources, etc. wou= ld 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 particula= r : 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. What Juli said and __mips64 is neither an architecture nor a machine. All the other examples you gave are architectures. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100602.151915.496568814199104007.imp>