public inbox for gentoo-mips@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-mips@lists.gentoo.org
Subject: Re: [gentoo-mips] On MIPS using the same CHOST for all multilib ABIs
Date: Wed, 22 Jan 2014 09:24:55 -0500	[thread overview]
Message-ID: <52DFD4B7.8060306@gentoo.org> (raw)
In-Reply-To: <52D98807.2060201@gentoo.org>

On 01/17/2014 02:44 PM, Markos Chandras wrote:
> On 01/17/2014 06:51 PM, Michał Górny wrote:
>> Dnia 2014-01-17, o godz. 18:20:30
>> Markos Chandras <hwoarang@gentoo.org> napisał(a):
>>
>>> On 01/17/2014 04:47 AM, Michał Górny wrote:
>>>> Dnia 2014-01-16, o godz. 17:29:43 "Anthony G. Basile"
>>>> <blueness@gentoo.org> napisał(a):
>>>>
>>>>> On 01/16/2014 04:24 PM, Michał Górny wrote:
>>>>>> Because AC_PATH_TOOL uses CHOST and some random Gentoo
>>>>>> invention.
>>>>> I got that AC_PATH_TOOL and AC_CHECK_TOOL prefix whatever utility
>>>>> they search for with the canonicalized chost (usually from
>>>>> config.guess), but I still don't see why we need this to avoid
>>>>> hackery?  Can you give me a practial example because right now I
>>>>> just don't see a serious problem.
>>>> libgpg-error installs ${CHOST}-gpg-error-config.
>>>>
>>>> Now libgcrypt (and possibly other tools) are using AC_PATH_TOOL to
>>>> find it. If we have proper CHOSTs, they find the right
>>>> gpg-error-config and we don't have to put any more effort into
>>>> that. Then libgcrypt installs ${CHOST}-libgcrypt-config.
>>>>
>>>> Now other tools are using AC_PATH_TOOL to find proper
>>>> libgcrypt-config. If we have proper CHOSTs, it just works and we
>>>> don't have to put any more effort into that.
>>>>
>>>> Same goes for LLVM & Mesa.
>>>>
>>>> If we play by the rules nicely, all pieces fit together nicely and
>>>> we don't have to worry. If we don't, we ask the developers to spit
>>>> Gentoo- specific hackery all over the place.
>>>>
>>> You need to consider that besides changing CHOST to new stages (which
>>> is a lengthy and tiring process), you somehow need to migrate existing
>>> users to the new CHOST (no?) otherwise the multilib eclass (or any
>>> other eclass/package) that depends on CHOST will be broken as soon as
>>> they update their tree and try to install package updates.
>>> This is definitely not a pleasant user experience.
>> Well, I'd like someone who knows better than I do to explain how much
>> does changing non-native CHOST affect. I will try to test it a bit by
>> changing CHOST_x86=i686-pc-linux-gnu to i386-* locally but an expert
>> opinion would be preferred.
>>
> My comment was not on what side-effects changing the CHOST may have, but
> it requires time and effort for every MIPS user out there. You also need
> to consider that many people have relatively slow MIPS hardware (routers
> and stuff) that will take a good couple of days (if not more) to switch
> to a new CHOST. But still, not everyone is going to do it and forcing
> them is definitely unpleasant.
>
My concern has been departing from GNU tuple standard which makes only 
restricted assumptions (see below) about abi.  For this, I've always 
referred to the GNU config project which is supposed to guess the tuple 
for any system you're on.  So, try this ...

1) git clone git://git.sv.gnu.org/config.git

2) cd config

3) ./config.guess

Here are my results (I hope this table survives email munging!)



On my multilib amd64 box I get:
config.guess:   x86_64-unknown-linux-gnu
I use:               x86_64-pc-linux-gnu

On my multilib o32/n32/n64 lemote yeeloong:
config.guess:       mips64el-unknown-linux-gnu
I use:                   mips64el-unknown-linux-gnu

On my unilib amd64 uclibc I get:
config.guess:      x86_64-unknown-linux-uclibc
I use:                  x86_64-gentoo-linux-uclibc

On my unilib o32 mips32r2 I get:
  config.guess:     mips-unknown-linux-uclibc
  I use:                 mips-gentoo-linux-uclibc

On my chromebook glibc/eabi/hf:
config.guess:   armv7l-unknown-linux-gnueabihf
I use:               armv7a-hardfloat-linux-gnueabi

On my chromebook uclibc/eabi/hf
config.guess:   armv7l-unknown-linux-uclibceabihf
I use:               armv7a-hardfloat-linux-uclibceabi


Note: 1) the second field, the so-called vendor field, is arbitrary.  I 
like putting -gentoo- in there.  2) Only arm mixes in abi and 
hard/softfloat stuff.

4) The debian debate about departing from GNU tuples (aka triplets) is here:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=664257
https://wiki.debian.org/Multiarch/Tuples
https://wiki.debian.org/Multiarch/TuplesAbandoned

Their reasons are different than ours.  The concern was over 
i386/486/585/686 inconsistencies and arm hard/soft float.  Regarding the 
later issue, gcc upstream suggested using the vendor field which is what 
we do for hard/soft arm.

5) My recommendation is that the safest thing is to use the vendor field 
since it is recognized as "arbitrary".  I've been through abusing fields 
before, albeit in a different situation: with glibc and elf headers when 
we did pax marking in the elf header's e_ident[] field, bytes 14 and 
15.  Upstream grsec/pax developers originally used that for pax marking 
until Drepper decide to use those bytes for something else.  On 
upgrading glibc, using chpax to do EI_PAX marking broke whatever it touched.

-- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : blueness@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA



  parent reply	other threads:[~2014-01-22 14:24 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-28 22:58 [gentoo-mips] On MIPS using the same CHOST for all multilib ABIs Michał Górny
2013-12-28 23:55 ` Markos Chandras
2013-12-29  2:12 ` Mike Frysinger
     [not found]   ` <20131229163354.35b65df5@gentoo.org>
2013-12-29 18:21     ` Mike Frysinger
2013-12-30  9:44       ` Michał Górny
2013-12-29 21:40 ` [gentoo-mips] " Joshua Kinard
2013-12-29 21:48   ` Markos Chandras
2013-12-29 21:48   ` Michał Górny
2013-12-29 21:48     ` Markos Chandras
2013-12-29 21:52       ` Anthony G. Basile
2013-12-29 22:04         ` Michał Górny
2013-12-29 23:56           ` Mike Frysinger
2013-12-30  7:51             ` Mike Frysinger
2013-12-30  8:17               ` sébastien bertoletto
2013-12-29 22:13         ` Markos Chandras
2013-12-29 22:19           ` Anthony G. Basile
2013-12-29 22:33             ` Markos Chandras
2013-12-29 23:47               ` Anthony G. Basile
2014-01-16 20:01 ` [gentoo-mips] " Michał Górny
2014-01-16 21:05   ` Anthony G. Basile
2014-01-16 21:24     ` Michał Górny
2014-01-16 22:29       ` Anthony G. Basile
2014-01-17  4:47         ` Michał Górny
2014-01-17 18:20           ` Markos Chandras
2014-01-17 18:36             ` Matt Turner
2014-01-17 19:38               ` Markos Chandras
2014-01-17 21:57                 ` Matt Turner
2014-01-17 18:51             ` Michał Górny
2014-01-17 19:44               ` Markos Chandras
2014-01-21 20:52                 ` Markos Chandras
2014-01-22 14:24                 ` Anthony G. Basile [this message]
2014-01-22 14:38                   ` Michał Górny
2014-01-22 20:39                     ` Markos Chandras
2014-01-22 21:07                       ` Anthony G. Basile

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52DFD4B7.8060306@gentoo.org \
    --to=blueness@gentoo.org \
    --cc=gentoo-mips@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox