[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-12-10 Thread ramana at gcc dot gnu dot org


--- Comment #12 from ramana at gcc dot gnu dot org  2009-12-10 15:18 ---
This is now fixed in trunk and all release branches. 


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-11-24 Thread dwitte at mozilla dot com


--- Comment #11 from dwitte at mozilla dot com  2009-11-24 21:12 ---
Anthony, any chance you could pick this fix up for libffi 3.0.9?


-- 

dwitte at mozilla dot com changed:

   What|Removed |Added

 CC||green at redhat dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-09-23 Thread ramana at gcc dot gnu dot org


--- Comment #7 from ramana at gcc dot gnu dot org  2009-09-23 12:41 ---
*** Bug 41443 has been marked as a duplicate of this bug. ***


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||doko at ubuntu dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-09-23 Thread doko at gcc dot gnu dot org


--- Comment #8 from doko at gcc dot gnu dot org  2009-09-23 14:50 ---
Subject: Bug 40242

Author: doko
Date: Wed Sep 23 14:50:35 2009
New Revision: 152075

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152075
Log:
2009-09-23  Matthias Klose  d...@ubuntu.com

PR libffi/40242, PR libffi/41443
* src/arm/sysv.S (__ARM_ARCH__): Define for processors
__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
Change the conditionals to __SOFTFP__ || __ARM_EABI__
for -mfloat-abi=softfp to work.

Modified:
trunk/libffi/ChangeLog
trunk/libffi/src/arm/sysv.S


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-09-23 Thread doko at gcc dot gnu dot org


--- Comment #9 from doko at gcc dot gnu dot org  2009-09-23 15:08 ---
Subject: Bug 40242

Author: doko
Date: Wed Sep 23 15:08:02 2009
New Revision: 152078

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152078
Log:
2009-09-23  Matthias Klose  d...@ubuntu.com

PR libffi/40242, PR libffi/41443
* src/arm/sysv.S (__ARM_ARCH__): Define for processors
__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
Change the conditionals to __SOFTFP__ || __ARM_EABI__
for -mfloat-abi=softfp to work.

Modified:
branches/gcc-4_4-branch/libffi/ChangeLog
branches/gcc-4_4-branch/libffi/src/arm/sysv.S


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-09-23 Thread doko at gcc dot gnu dot org


--- Comment #10 from doko at gcc dot gnu dot org  2009-09-23 15:11 ---
Subject: Bug 40242

Author: doko
Date: Wed Sep 23 15:11:17 2009
New Revision: 152079

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152079
Log:
2009-09-23  Matthias Klose  d...@ubuntu.com

PR libffi/40242, PR libffi/41443
* src/arm/sysv.S (__ARM_ARCH__): Define for processors
__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
Change the conditionals to __SOFTFP__ || __ARM_EABI__
for -mfloat-abi=softfp to work.

Modified:
branches/gcc-4_3-branch/libffi/ChangeLog
branches/gcc-4_3-branch/libffi/src/arm/sysv.S


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-08-03 Thread ramana at gcc dot gnu dot org


--- Comment #5 from ramana at gcc dot gnu dot org  2009-08-03 08:31 ---
Confirmed with Trunk as of 150308


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|-00-00 00:00:00 |2009-08-03 08:31:56
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-08-03 Thread ramana at gcc dot gnu dot org


--- Comment #6 from ramana at gcc dot gnu dot org  2009-08-03 08:33 ---
(In reply to comment #5)
 Confirmed with Trunk as of 150308
 

With the following options. 

 /home/ramrad01/sources/trunk/configure --with-cpu=cortex-a8
--with-float=softfp --with-fpu=neon


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|2009-08-03 08:31:56 |2009-08-03 08:33:28
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-06-22 Thread ramana at gcc dot gnu dot org


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-06-12 Thread ramana at gcc dot gnu dot org


--- Comment #4 from ramana at gcc dot gnu dot org  2009-06-12 13:13 ---

There was a merge of some work from libffi recently and IIRC I saw some commits
go into the same file. Can you check if that fixes your problem ?

Ramana


 
 This means we cannot use -mfloat-abi=soft unconditionally, which boils down
 (again) to the question: how can we distinguish between the
 float-passed-in-int-regs and float-passed-in-float-regs case. Ideally this
 should work if building libffi as part of gcc and if building libffi
 standalone.


 
 cheers, Marc
 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-05-29 Thread mkl at pengutronix dot de


--- Comment #3 from mkl at pengutronix dot de  2009-05-29 08:22 ---
Hello Andrew,

(In reply to comment #2)
 http://www.nabble.com/Re:-libFFI-arm-compilation-fails-with-assembly-td20346235.html

BTW: I'm not compiling libffi stand alone, here. I'm building the gcc with java
enabled.

IMHO using -mfloat-abi=soft when preprocessing sysv.S can be considered a
workaround not a fix.

It makes only sense if the compiler passes (by default) floats in the integer
registers (-mfloat-abi=soft and -mfloat-abi=softfp), and breaks if passing in
the float registers (-mfloat-abi=hard).

With the work done in ARM/hardvfp_4_4_branch the -mfloat-abi=hard case is more
relevant then ever.

This means we cannot use -mfloat-abi=soft unconditionally, which boils down
(again) to the question: how can we distinguish between the
float-passed-in-int-regs and float-passed-in-float-regs case. Ideally this
should work if building libffi as part of gcc and if building libffi
standalone.

cheers, Marc


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-05-28 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2009-05-29 02:53 ---
http://www.nabble.com/Re:-libFFI-arm-compilation-fails-with-assembly-td20346235.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40242



[Bug libffi/40242] unsupported asm instructions in libffi/src/arm/sysv.S

2009-05-27 Thread ramana at gcc dot gnu dot org


--- Comment #1 from ramana at gcc dot gnu dot org  2009-05-27 09:50 ---
(In reply to comment #0)
 Hello,
 
 during cross compilation of gcc, the libffi build for the target breaks with
 this error message:
 
 libtool: compile:  /home/frogger/pengutronix/toolchain/libffi/build/./gcc/xgcc
 -B/home/frogger/pengutronix/toolchain/libffi/build/./gcc/
 -B/usr/local/arm-1136jfs-linux-gnueabi/bin/
 -B/usr/local/arm-1136jfs-linux-gnueabi/lib/ -isystem
 /usr/local/arm-1136jfs-linux-gnueabi/include -isystem
 /usr/local/arm-1136jfs-linux-gnueabi/sys-include -I.
 -I../../../gcc-4.4.0/libffi/include -Iinclude -I../../../gcc-4.4.0/libffi/src
 -g -O2 -c ../../../gcc-4.4.0/libffi/src/arm/sysv.S  -fPIC -DPIC -o
 src/arm/.libs/sysv.o
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S: Assembler messages:
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S:202: Error: selected processor does
 not support `stfeqs f0,[r2]'
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S:207: Error: selected processor does
 not support `stfeqd f0,[r2]'
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S:282: Error: selected processor does
 not support `ldfs f0,[sp]'
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S:285: Error: selected processor does
 not support `ldfd f0,[sp]'
 ../../../gcc-4.4.0/libffi/src/arm/sysv.S:288: Error: selected processor does
 not support `ldfd f0,[sp]'
 
 the offending code is:
 
 #ifndef __SOFTFP__
 beq LSYM(Lepilogue)
 
 @ return FLOAT
 cmp r3, #FFI_TYPE_FLOAT
 stfeqs  f0, [r2]
 beq LSYM(Lepilogue)
 
 @ return DOUBLE or LONGDOUBLE
 cmp r3, #FFI_TYPE_DOUBLE
 stfeqd  f0, [r2]
 #endif
 
 
 gcc is configured this way:
 
 ../gcc-4.4.0/configure --enable-languages=c,c++,java
 --target=arm-1136jfs-linux-gnueabi
 --with-mpfr=/home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t-linux-gnueabi-gcc-4.4.0-glibc-2.9-binutils-2.19.1-kernel-2.6.29-sanitized/sysroot-host
 --with-gmp=/home/frogger/pengutronix/toolchain/OSELAS.Toolchain-trunk/platform-arm-v4t-linux-gnueabi-gcc-4.4.0-glibc-2.9-binutils-2.19.1-kernel-2.6.29-sanitized/sysroot-host
 --with-float=softfp --with-fpu=vfp  --with-cpu=arm1136jf-s
 --with-sysroot=/opt/OSELAS.Toolchain-1.99.3/arm-1136jfs-linux-gnueabi/gcc-4.3.2-glibc-2.8-binutils-2.19-kernel-2.6.27-sanitized/sysroot-arm-1136jfs-linux-gnueabi
 
 I.e. as an arm-eabi target, --with-fpu=vfp and --with-float=softfp. Which 
 means
 floats are passed in integer registers, but in function the compiler generates
 floating point instructions, the preprocessor doesn't define a __SOFTFP__
 symbol.
 
 If configuring the compiler with --with-float=soft it will pass floats in
 integer registers and it will generate softfloat emulation code. In this case
 the preprocessor defines __SOFTFP__.
 
 In both variants the function calling convention is the same, but in one case
 we have the __SOFTFP__ symbol in the other not.
 
 libffi changes it's behaviour depending on this symbol, which is IMHO not
 correct.
 
 I've tested some combinations, this is the summary of
 (echo | arm-v4t-linux-gnueabi-cpp -dM -mfloat-abi=XXX -mfpu=YYY| egrep -i
 'vfp|fp|soft|hard|float'):
 
 -mfloat-abi=soft   -mfpu=vfp__SOFTFP__ __VFP_FP__
 -mfloat-abi=softfp -mfpu=vfp   __VFP_FP__
 -mfloat-abi=hard   -mfpu=vfp   __VFP_FP__ (sorry, unimplemented)
 
 -mfloat-abi=soft   -mfpu=fpa__SOFTFP__
 -mfloat-abi=softfp -mfpu=fpa
 -mfloat-abi=hard   -mfpu=fpa
 
 I'm not sure which of these combinations makes sense, or are actually used, 
 the
 3rd one seems not to be implemented, though. We at pengutronix use usually 1.
 and 2. In some weird projects 4. and 6. but not with the current gcc.

Using mfpu=fpa in eabi configurations is wrong. Trunk is now patched to no
longer allow this.


 
 This table shows that it's not possible to distinguish between the hard and
 softfp case, a diff off the preprocessor's output shows no difference in the
 symbols tough. On the upside the vfp-hard case seems not to be implemented.

The difference between vfp-hard and softfp is whether we use the VFP registers
for passing parameters or not. Currently softfp is the only one implemented in
trunk and all release branches though an implementation is under way in an
architecture specific branch viz. ARM/hardvfp_4_4_branch. 

 
 So the question is which is the correct symbol for libffi?

If there is code in here that tries to return values in floating point
registers if SOFTFP is not defined then it is clearly wrong and we need another
macro to distinguish the case.

I am not sure if there exists a symbol for this and I am not sure about the
code  in this. CC'ing Andrew Haley about this one. 

 
 cheers, Marc
 


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||aph at redhat dot com