[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Preliminary 'wip-armhf' branch pushed
From: |
Mark H Weaver |
Subject: |
Re: Preliminary 'wip-armhf' branch pushed |
Date: |
Thu, 01 Jan 2015 13:22:53 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
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'.
Mark