Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 13 Jul 2012 18:10:12 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Subject: Re: mips port working! & remaining issues

* Rich Felker <dalias@...ifal.cx> [2012-07-13 10:25:21 -0400]:
> On Fri, Jul 13, 2012 at 03:36:03PM +0200, Luca Barbato wrote:
> > On 07/13/2012 03:08 PM, Rich Felker wrote:
> > 
> > > My understanding is that the EABI provides conventions that ensure
> > > that code can be linked together whether it's written to use hard or
> > > soft float. But unless all floating point registers are temp (not
> > > callee-saved), I can't find a way to make that work with setjmp...
> > 
> > Currently hardfloat just pass the registers instead of doing some copy
> > over in a way or another and it is what people will use.
> 
> That's the hardfloat ABI variant of EABI, but there's also base EABI
> that can use hard float behind the scenes (in the soft float
> functions) just by calling the __aeabi functions and having them
> implemented with hard-float. Although I suppose this usage does not
> require the registers to be preserved.
> 
> Now I just need to work out a nice way to conditionally compile
> different ASM for each variant. Or I could have setjmp and longjmp
> just read a global var with the hardfloat flag in it, and jump over
> the float register code if it's false. Opinions on what's best?
> 
> Rich

glibc seems to do runtime check for vfp and iwmmxt fpu on arm

http://sourceware.org/git/?p=glibc.git;a=blob;f=ports/sysdeps/arm/setjmp.S

and do compile time check on mips

http://sourceware.org/git/?p=glibc.git;a=blob;f=ports/sysdeps/mips/setjmp_aux.c

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.