[erlang-questions] Testing reliable floating points exeption fails on x86?

David Hopwood david.hopwood@REDACTED
Thu Sep 20 21:58:01 CEST 2007


Mikael Pettersson wrote:
> On Wed, 19 Sep 2007 15:29:28 +0400, Sergei Golovan wrote:
>> Could someone explain me what 'reliable floating points exceptions'
>> are and how their reliability is checked?
> 
> The ability to program the FPU so that e.g. overflows are reported
> as signals instead of as +inf.
> 
>> I'm packaging erlang/OTP for Debian GNU/Linux using two erlang
>> flavours: with and without HiPE (HiPE enabled architectures are i386
>> (x86), amd64 (x86_64), powerpc and sparc). If I understand correctly,
>> HiPE refuses to build if floating points exceptions are unreliable.
> 
> Correct for x86-32, x86-64, ppc32, and sparc32.
> HiPE doesn't require FP exceptions on ARMv5b.
> 
>> I built erlang on x86 architecture many times and test for reliable fp
>> exceptions never failed. But recently I've got a bugreport
>> (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=442965) where the
>> test fails.
>>
>> 1) Could it be that the test fails due to false negative (probably
>> because it was run on x86_64 hardware, though I never managed to get
>> it failed using both 32-bit and 64-bit kernel with 32-bit userland)?
> 
> There's no information in that Debian bug report apart from "it failed".

There is if you look at the referenced build log, at
<http://people.debian.org/~lucas/logs/2007/09/17/erlang_1:11.b.5dfsg-5_sid32.buildlog>.

The command that fails is this link:

gcc -o /build/user/erlang-11.b.5dfsg/bin/i686-pc-linux-gnu/beam.hybrid \
	  -Wl,-export-dynamic obj/i686-pc-linux-gnu/opt/hybrid/erl_main.o	
[... long list of object files snipped ...]
obj/i686-pc-linux-gnu/opt/hybrid/ttsl_drv.o -lutil -ldl -lm   -lpthread
-lncurses -L../lib/internal/i686-pc-linux-gnu
/build/user/erlang-11.b.5dfsg/erts/obj/i686-pc-linux-gnu/libz.a -lethread
-lpthread -lerts_internal_r -lrt

obj/i686-pc-linux-gnu/opt/hybrid/hipe_x86_bifs.o: In function
`nbif_handle_fp_exception':
/build/user/erlang-11.b.5dfsg/erts/emulator/i686-pc-linux-gnu/opt/hybrid/hipe_x86_bifs.S:278:
undefined reference to `erts_restore_fpu'

-- 
David Hopwood <david.hopwood@REDACTED>




More information about the erlang-questions mailing list