Thread (4 messages) flat view 4 messages, 2 authors, 2007-01-24

Re: [PATCH 03/18] Set -msoft-float and assembler target options in the bootwrapper.

From: Segher Boessenkool <hidden>
Date: 2007-01-24 22:46:11

quoted
quoted
Without -msoft-float, floating point state saving code can be  
executed
(at least with certain buggy versions of GCC, which don't clear  
bit  6 of
CR before calling a varargs function with no varargs parameters).
I have a hard time understanding what this means.  Can you
elaborate please?
The PowerPC ABI uses bit 6 of CR to indicate to a varargs function  
whether one (or more) of the varargs parameters is floating point.   
This is used (among other things) by the varargs function to  
determine whether to save a floating point context.  Normally, GCC  
will clear the bit when calling a vararg function with integer-only  
parameters, but at least some versions (I saw it on 3.4.3) will not  
touch the bit at all when the varargs list is empty.
Gotcha.  Now, should a varargs function that doesn't get passed
any actual varargs use that bit at all?  If not, the Linux printf()
(or some support function) is broken; if so, is this fixed in later
GCC versions?  If not, please report it (http://gcc.gnu.org/bugzilla).
quoted
quoted
 AFLAGS += $(cpu-as-y)
 CFLAGS += $(cpu-as-y)
+export cpu-as-y
Maybe it would be better to export CFLAGS instead (on the
other hand, you might have to cut out some options from it
for 32-bit compiles, dunno).
That'd also bring in the normal Linux headers, which the  
bootwrapper appears to be trying to avoid.
Right.  cpu-as-y is an ugly name to export though, let's use a
better name (that explains what it's for -- PLATFORM-AFLAGS or
something like that).


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help