Changeset 14444


Ignore:
Timestamp:
Nov 22, 2010, 7:43:22 PM (9 years ago)
Author:
rme
Message:

Add C implementations of functions ieee754_exp and ieee754_expf
for FreeBSD on x8632, borrowed from http://www.netlib.org/fdlibm/ and from
FreeBSD's src/lib/msun/e_expf.c.

The version of exp() in FreeBSD's math library sets the x87 FPU to
extended precision, messing up lisp's ability to signal overflow. The
version of expf() also seems to do something with exceptions that cause
them to be swallowed.

Location:
trunk/source/lisp-kernel/freebsdx8632
Files:
3 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/freebsdx8632/Makefile

    r14391 r14444  
    2424CDEFINES = -DFREEBSD -D_REENTRANT -DX86 -DX8632 -D_GNU_SOURCE -DHAVE_TLS -DSVN_REVISION=$(SVN_REVISION)
    2525CDEBUG = -g
    26 COPT = -O2
     26COPT = #-O2
    2727# Once in a while, -Wformat says something useful.  The odds are against that,
    2828# however.
     
    4040DEBUGOBJ = lispdcmd.o plprint.o plsym.o xlbt.o x86_print.o
    4141KERNELOBJ= $(COBJ) x86-asmutils32.o  imports.o
     42
     43PLATFORM_OBJ = e_exp.o e_expf.o
     44PLATFORM_HEADERS = fdlibm.h
    4245
    4346SPINC = lisp.s m4macros.m4 x86-constants.s x86-macros.s errors.s x86-uuo.s \
     
    6669LINKSCRIPT =  # -T $(LINKSCRIPTFILE)
    6770
    68 ../../fx86cl:   $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(LINKSCRIPTFILE)
    69         $(CC) -m32 $(CDEBUG)  -Wl,--export-dynamic  $(LINKSCRIPT)  -o $@  $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(OSLIBS)
     71../../fx86cl:   $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(PLATFORM_OBJ) $(LINKSCRIPTFILE)
     72        $(CC) -m32 $(CDEBUG)  -Wl,--export-dynamic  $(LINKSCRIPT)  -o $@  $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(PLATFORM_OBJ) $(OSLIBS)
    7073
    7174
     
    7477$(COBJ): $(CHEADERS)
    7578$(DEBUGOBJ): $(CHEADERS) lispdcmd.h
     79$(PLATFORM_OBJ): $(PLATFORM_HEADERS)
    7680
    7781
    7882cclean:
    79         $(RM) -f $(KERNELOBJ) $(DEBUGOBJ) ../../fx86cl
     83        $(RM) -f $(KERNELOBJ) $(DEBUGOBJ) $(PLATFORM_OBJ) ../../fx86cl
    8084
    8185clean:  cclean
Note: See TracChangeset for help on using the changeset viewer.