view src/s/openbsd.h @ 5911:48386fd60fd0

GMP functions that take doubles choke on non-finite values, avoid that. src/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * floatfns.c (double_to_integer): Rename this from float_to_int to fit our newer, bignum-compatible terminology. GMP can signal SIGFPE when asked to turn NaN or infinity into a bignum, and we're not prepared to handle that signal if the OS float library routines don't do that, so check for those values explicitly. * floatfns.c (ceiling_two_float): * floatfns.c (ceiling_one_float): * floatfns.c (floor_two_float): * floatfns.c (floor_one_float): * floatfns.c (round_two_float): * floatfns.c (round_one_float): * floatfns.c (truncate_two_float): * floatfns.c (truncate_one_float): Call double_to_integer() with its new name. * number.c: Don't use the {bignum,ratio,bigfloat}_set_double functions directly here, with GMP they can choke when handed non-finite C doubles, call Ftruncate() and the new float_to_bigfloat() from floatfns.c. Maybe we should extend number-gmp.c with GMP-specific implementations that check for non-finite values. tests/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Backslash a few parentheses in the first column for the sake of fontification. * automated/lisp-tests.el: Check that the rounding functions signal Lisp errors correctly when handed positive and negative infinity and NaN.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 10 May 2015 19:07:09 +0100
parents 861f2601a38b
children
line wrap: on
line source

/* s/ file for openbsd systems.  */

/* Synced up with: FSF 23.1.92. */
/* Synced by: Ben Wing, 2-18-10. */

/* Mostly the same as NetBSD.  */
#include "netbsd.h"

#if 0 /* Following mrb, this stuff is probably unneeded for XEmacs */
/*  This very-badly named symbol is conditionally defined in netbsd.h.
    Better would be either to not need it in the first place, or to choose
    a more descriptive name.  */
#ifndef LD_SWITCH_SYSTEM_tmp
#define LD_SWITCH_SYSTEM_tmp /* empty */
#endif
#endif /* 0 */

/* TERMINFO, LIBS_TERMCAP deleted */

#if 0 /* Following mrb, this stuff is probably unneeded for XEmacs */
#undef LD_SWITCH_SYSTEM_TEMACS
#undef LD_SWITCH_SYSTEM
#ifdef __ELF__

  /*  Han Boetes <han@mijncomputer.nl> says this
      is necessary,  otherwise Emacs dumps core on elf systems.  */
#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp "-Z"

/* The version of gcc on OpenBSD doesn't search /usr/local/lib by
   default.  */
#define LD_SWITCH_X_DEFAULT "-L/usr/local/lib"

#else
  
#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp
#define LD_SWITCH_X_DEFAULT "-L/usr/local/lib"

#endif
#endif /* 0 */

/* arch-tag: 7e3f65ca-3f48-4237-933f-2b208b21e8e2
   (do not change this comment) */