Gentoo Archives: gentoo-mips

From: Markos Chandras <hwoarang@g.o>
To: gentoo-mips@l.g.o
Subject: Re: [gentoo-mips] Re: On MIPS using the same CHOST for all multilib ABIs
Date: Sun, 29 Dec 2013 21:48:33
Message-Id: 52C09892.2080607@gentoo.org
In Reply to: [gentoo-mips] Re: On MIPS using the same CHOST for all multilib ABIs by Joshua Kinard
1 On 12/29/2013 09:40 PM, Joshua Kinard wrote:
2 > On 12/28/2013 5:58 PM, Michał Górny wrote:
3 >> Hello, folks.
4 >>
5 >> I've noticed today that mips uses the same CHOST value for all three
6 >> ABIs it supports:
7 >>
8 >> arch/mips/mips64/multilib/make.defaults:CHOST_o32="${CHOST}"
9 >> arch/mips/mips64/multilib/make.defaults:CHOST_n32=${CHOST}
10 >> arch/mips/mips64/multilib/make.defaults:CHOST_n64=${CHOST}
11 >> arch/mips/mipsel/mips64el/multilib/make.defaults:CHOST_o32="${CHOST}"
12 >> arch/mips/mipsel/mips64el/multilib/make.defaults:CHOST_n32="${CHOST}"
13 >> arch/mips/mipsel/mips64el/multilib/make.defaults:CHOST_n64="${CHOST}"
14 >>
15 >> Long story short, this sucks and will cause trouble.
16 >>
17 >> In the multilib stuff, we're using CHOST for two purposes:
18 >>
19 >> 1. wrapped headers are put in /usr/include/$CHOST,
20 >>
21 >> 2. multilib executables are prefixed with $CHOST-.
22 >>
23 >> (1) here is not really a killer feature but I'd rather avoid changing
24 >> this at this point. (2) is actually a killer feature, since the eclass
25 >> sets CHOST properly and thanks to that AC_CHECK_TOOL and friends can
26 >> find multilib *-config progs and stuff without any special hackery.
27 >>
28 >> And those are just the examples I can think of. I suspect that more stuff
29 >> may actually expect CHOST to uniquely identify build, especially some
30 >> tricky hidden features in autotools :).
31 >>
32 >> I'd suggest that you changed the CHOST values to uniquely identify ABI
33 >> in use, at least in multilib profiles and preferably in all of them.
34 >
35 > Matt can probably vouch for this better, but the only two ABIs affected by
36 > this are n32 and n64. mips[el]-unknown-linux-gnu implies a 32-bit
37 > big/little endian CHOST, which means the o32 ABI.
38
39 Why? mips64 can do o32 as well.
40
41 >
42 > According to this Debian wiki entry:
43 > https://wiki.debian.org/Multiarch/Tuples
44
45 Probably because they don't do mips64/o32. But we do, so we would also
46 need *-linux-gnuabi32
47
48 --
49 Regards,
50 Markos Chandras