Эх сурвалжийг харах

As noted by Felix Radensky back on 16 Mar:

    I've tried several times to compile uClibc with soft-float
    (both gcc-3.2.2 toolchain and wrapper), but applications
    compiled with uClibc always failed with "Invalid instruction".
    So I ended up disabling floating point at all and this works well.
    I also has no problem with glibc from Monta Vista, which is
    compiled with soft-float. My processor is PowerPC 405GP.

    Maybe the problem is in FP() macro definition in
    libc/sysdeps/linux/powerpc/setjmp.S and
    libc/sysdeps/linux/powerpc/__longjmp.S

    #ifdef __UCLIBC_HAS_FLOATS__
    #define FP(x...) x
    #else
    #define FP(x...)
    #endif

    which should be defined as

    if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
    #define FP(x...) x
    #else
    #define FP(x...)
    #endif
Eric Andersen 22 жил өмнө
parent
commit
8fee4bc681

+ 1 - 1
libc/sysdeps/linux/powerpc/__longjmp.S

@@ -24,7 +24,7 @@
 #include <bits/setjmp.h>
 
 
-#ifdef __UCLIBC_HAS_FLOATS__
+#ifdef __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
 #define FP(x...) x
 #else
 #define FP(x...)

+ 1 - 1
libc/sysdeps/linux/powerpc/setjmp.S

@@ -23,7 +23,7 @@
 #define _SETJMP_H
 #include <bits/setjmp.h>
 
-#ifdef __UCLIBC_HAS_FLOATS__
+#ifdef __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
 #define FP(x...) x
 #else
 #define FP(x...)