This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Triplet for ARM Linux HardFP ABI


> Both Linaro and Debian are considering supporting the ARM hard-float
> variant of the EABI, at least as an unofficial port. This ABI is not
> compatible with the gnueabi currently in use for most ARM Linux distros,
> but has a number of performance advantages.
> 
> This means that we need to choose a name for it.

I don't think we do.  IMO there's no reason (other than dpkg lameness) why 
soft-float and hard-float toolchains should have a different  target triplet.  
You can (and people do) already build a hard-float toolchain by specifying
--with-float=hard.

Anything that rely on the that relies on the target triplet to determine hard 
v.s. soft-float ABI is fundamentally broken.  In a restricted environment 
(e.g. Debian package builds) you may have a fixed mapping, and even that's 
liable to fall apart in a multiarch environment. Given you're already making 
vendor specific assumptions, it seems reasomablt to determing the ABI by 
vendor-specific means.

Of course the real solution if to make the check independent of the triplet.  
GCC doesn't currently define a preprocessor symbol for the ABI, but that's a 
separate bug.

> Obviously, it's better
> if it's an "official" name, so I want to discuss it here. I'm aware that
> there is some bikeshedding to do here, but it's better it gets done
> before anybody gets stuck with something else. There are, of course,
> some real practical reasons why one name might be better than another.

> So here are my suggestions:
> 
>    arm-linux-gnueabihf
>     or maybe
>    arm-linux-gnueabi-hf
> 
>      These will match any package that uses arm*-*-linux-gnueabi*.
>      Choosing which variant is mainly a matter of taste.
> 
>    arm-linux-gnuhfeabi
>
>      These will match any package that uses arm*-*-linux-*eabi (as I
>      see gcc itself does).
>
> I'm not sure which is better. I suspect that, either way, a lot of
> things will need to be fixed up.

I think "hf" is wrong. This is specifically the vfp EABI supplement.  In 
principle we should allow for other ABI variants (e.g. FPA, Maverick).

> An alternative would be to use the vendor field. That would be less
> difficult, but it feels like something of a hack to me.

This would be my preferred solution. When all said an done this *is* a hack 
round a deficiency in your build system. I'm reluctant to propagate that into 
gcc.

It's worth noting that a while ago we made the deliberate decision to start 
ignoring the cpu field. Previously configuring for xscale-elf would do magical 
things.  Also notice that blindly configuring for armeb-linux-eabi still gives 
you a little-endian toolchain.

Paul


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]