Hey Dave, Dave Richards writes:
> It appears that the VFP unit on the Raspberry Pi does not generate FPU > exceptions. Therefore, no SIGFPE is generated and cannot be handled by ECL. > This causes numerous 'make check' test failures. I am working on a patch. > I am not very familiar with the ECL C environment so I am sure the patch > will need some help. The approach is as follows: > > 1. There is no value in registering a SIGFPE handler. For the ARM I will > just not register the handler at all. If you are interested in how handler works please take a look at file src/c/unixint.d (most notably install_fpe_handler). That said the option you look for is ECL_OPT_TRAP_SIGFPE (src/c/main.d). That said there is no harm with leaving it at its default value, if sigfpe is not signaled then the handler will simply not be called. > 2. I will created an arch/fpe_arm.c file. I will re-define the macro to > read the FPSCR register and check for exception bits being set. If any are > I will call a C function that will disambiguate which exception to map to a > condition and signal the condition. please see files: - c/arch/fpe_*.c for software ecl_detect_fpe() definitions - c/number.d for a definition of DO_DETECT_FPE() calls to floating point operations are always detected in the float number constructors (if software fpe handling is used). They are signalled with ecl_deliver_fpe. > 3. I was planning on creating a static inline function for this purpose > right inside fpe_arm.c but if it should go somewhere else I'd be happy to > put it there. The inline thing is just an excuse for sticking in the > fpe_arm.c file. In reality it's probably better to make a C function call > to do the heavy lifting rather than making each FPE check pay for it. If you need a file then fpe_/arch/.c is the right place to put it. Preferably this file is self-contained (static function definition). > > Dave Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi