[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Preliminary 'wip-armhf' branch pushed
From: |
John Darrington |
Subject: |
Re: Preliminary 'wip-armhf' branch pushed |
Date: |
Thu, 1 Jan 2015 20:04:49 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Jan 01, 2015 at 01:22:53PM -0500, Mark H Weaver wrote:
John Darrington <address@hidden> writes:
> On Thu, Jan 01, 2015 at 02:11:19AM -0500, Mark H Weaver wrote:
> John Darrington <address@hidden> writes:
>
> > * You patched gcc/config/arm/linux-eabi.h unnecessarily.
> >
> > Without that patch, GCC actually builds soft-float code, even
though
> > you may have passed the --with-float=hard flag. What bits of that
> > patch do you think are not necessary?
>
> All of it seems to be unnecessary, by experiment. I've used the
> resulting GCC to compile the following test program:
>
> 'foo' accepts the double arguments via registers and passes a
double to
> sinh via registers. I also checked a variant that simply returned
a*b,
> and it was clearly returning the result via register as well.
>
> I think it's quite clear that this is using the hard-float ABI, no?
>
> My results showed that simple binaries like that compiled (and ran)
> ok. The problems arose when linking with bigger projects. I don't
> recall the details. Have you tried building libc?
Yes, of course. I looked further into this, and discovered that the
reason it all works is that the main 'gcc' driver arranges to pass
"-mfloat-abi=hard" (and several others) to 'cc1' and 'as'.
Ok. Right now, I don't remember exactly at what point I discovered the
linux-eabi.h
changes were necessary, but they were indeed necessary - I didn't do it for fun!
I expect you will find out in due course.
J'
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
signature.asc
Description: Digital signature