annotate src/s/hpux11.h @ 5602:c9e5612f5424

Support the MP library on recent FreeBSD, have it pass relevant tests. src/ChangeLog addition: 2011-11-26 Aidan Kehoe <kehoea@parhasard.net> * number-mp.c (bignum_to_string): Don't overwrite the accumulator we've just set up for this function. * number-mp.c (BIGNUM_TO_TYPE): mp_itom() doesn't necessarily do what this code used to think with negative numbers, it can treat them as unsigned ints. Subtract numbers from bignum_zero instead of multiplying them by -1 to convert them to their negative equivalents. * number-mp.c (bignum_to_int): * number-mp.c (bignum_to_uint): * number-mp.c (bignum_to_long): * number-mp.c (bignum_to_ulong): * number-mp.c (bignum_to_double): Use the changed BIGNUM_TO_TYPE() in these functions. * number-mp.c (bignum_ceil): * number-mp.c (bignum_floor): In these functions, be more careful about rounding to positive and negative infinity, respectively. Don't use the sign of QUOTIENT when working out out whether to add or subtract one, rather use the sign QUOTIENT would have if arbitrary-precision division were done. * number-mp.h: * number-mp.h (MP_GCD): Wrap #include <mp.h> in BEGIN_C_DECLS/END_C_DECLS. * number.c (Fbigfloat_get_precision): * number.c (Fbigfloat_set_precision): Don't attempt to call XBIGFLOAT_GET_PREC if this build doesn't support big floats.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 26 Nov 2011 17:59:14 +0000
parents 1f0b15040456
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
1 /* Definitions file for XEmacs running on HPUX release 11.0.
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
2 * Copyright (C) 1985, 1986 Free Software Foundation, Inc.
5494
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents: 4759
diff changeset
3 * Copyright (C) 2010 Ben Wing.
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
4 *
5405
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
5 * This file is part of XEmacs.
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
6 *
5405
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
7 * XEmacs is free software: you can redistribute it and/or modify it
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
8 * under the terms of the GNU General Public License as published by the
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
9 * Free Software Foundation, either version 3 of the License, or (at your
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
10 * option) any later version.
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
11 *
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
12 * XEmacs is distributed in the hope that it will be useful, but WITHOUT
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
15 * for more details.
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
16 *
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
17 * You should have received a copy of the GNU General Public License
2aa9cd456ae7 Move src/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 4759
diff changeset
18 * along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
19
269
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
20 /* Synched up with: FSF 19.31. */
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
21
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
22 /* Only support for hp9000s800 currently */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
23
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
24 #define ORDINARY_LINK
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
25
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
26 /* XEmacs: */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
27 /* Don't tell the linker to link statically */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
28 #ifdef NOT_C_CODE
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
29 #define START_FILES
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
30 #define LINKER "$(CC)"
5494
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents: 4759
diff changeset
31 #endif /* NOT_C_CODE */
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
32
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
33 /* get call to brk() when rerunning XEmacs */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
34 /* #ifndef USE_GCC */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
35 #define RUN_TIME_REMAP
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
36 /* #endif */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
37
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
38 #define USG /* System III, System V, etc */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
39
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
40 #define USG5
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
41
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
42 #define HPUX
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
43
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
44 /* SYSTEM_TYPE should indicate the kind of system you are using.
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
45 * It sets the Lisp variable system-type. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
46
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
47 #define SYSTEM_TYPE "hpux"
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
48
5494
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents: 4759
diff changeset
49 /* Delete FIRST_PTY_LETTER -- same as default in XEmacs */
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
50
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
51 /* The symbol in the kernel where the load average is found
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
52 * depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
53
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
54 /* Special hacks needed to make Emacs run on this system. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
55
5494
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents: 4759
diff changeset
56 /* Delete TERMINFO -- autodetected in XEmacs */
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
57
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
58 /* The 48-bit versions are more winning for Emacs;
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
59 * the ordinary ones don't give even 32 bits. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
60 #define random lrand48
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
61 #define srandom srand48
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
62
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
63 /* Define extra libraries to load.
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
64 * This should have -lBSD, but that library is said to make
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
65 * `signal' fail to work. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
66
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
67 #ifdef HPUX_NET
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
68 #define LIBS_SYSTEM "-ln"
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
69 #else
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
70 #define LIBS_SYSTEM
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
71 #endif
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
72
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
73 /* Some additional system facilities exist. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
74
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
75 /* Baud-rate values in tty status have nonstandard meanings. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
76
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
77 #define BAUD_CONVERT \
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
78 { 0, 50, 75, 110, 135, 150, 200, 300, 600, 900, 1200, \
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
79 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 }
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
80
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
81 /* This is how to get the device name of the tty end of a pty. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
82 #define PTY_TTY_NAME_SPRINTF \
5337
906ccc7dcd70 Change to qxesprintf(), qxestrcpy(), s/hpux11.h, s/usg5-4.h
Aidan Kehoe <kehoea@parhasard.net>
parents: 4759
diff changeset
83 qxesprintf (pty_name, "/dev/pty/tty%c%x", c, i);
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
84
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
85 /* This is how to get the device name of the control end of a pty. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
86 #define PTY_NAME_SPRINTF \
5337
906ccc7dcd70 Change to qxesprintf(), qxestrcpy(), s/hpux11.h, s/usg5-4.h
Aidan Kehoe <kehoea@parhasard.net>
parents: 4759
diff changeset
87 qxesprintf (pty_name, "/dev/ptym/pty%c%x", c, i);
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
88
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
89 #ifdef HPUX_USE_SHLIBS
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
90 #define LD_SWITCH_SYSTEM
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
91 #else
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
92 #define LD_SWITCH_SYSTEM "-Xlinker -a -Xlinker archive"
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
93 #endif
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
94
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
95 #ifndef __GNUC__
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
96 /* Make room for enough symbols, so dispnew.c does not fail. */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
97 /* XEmacs: cognot@ensg.u-nancy.fr: C_SWITCH_SYSTEM already defined in hpux8.h,
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
98 * -D_BSD makes hp CC choke on process.c
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
99 * #define C_SWITCH_SYSTEM "-Wp,-H200000 -D_BSD"
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
100 * */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
101 #undef C_SWITCH_SYSTEM
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
102 #define C_SWITCH_SYSTEM "-Aa -D_HPUX_SOURCE"
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
103 #endif
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
104
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
105 /* mrb */
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
106 #undef LD_SWITCH_SYSTEM
269
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
107
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
108 /* We have to go this route, rather than hpux9's approach of renaming the
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
109 functions via macros. The system's stdlib.h has fully prototyped
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
110 declarations, which yields a conflicting definition of srand48; it
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
111 tries to redeclare what was once srandom to be srand48. So we go
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
112 with HAVE_LRAND48 being defined. */
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
113 #undef srandom
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
114 #undef srand48
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
115 #undef HAVE_RANDOM
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
116 #define HPUX11
4759
aa5ed11f473b Remove support for obsolete systems. See xemacs-patches message with ID
Jerry James <james@xemacs.org>
parents: 269
diff changeset
117
269
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
118 /* AlainF 20-Jul-1996 -- fixes for 10.10, untested for 10.0x */
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
119 /* Fix kernel file name for 10.10 and later */
b2472a1930f2 Import from CVS: tag r20-5b33
cvs
parents:
diff changeset
120 #define KERNEL_FILE "/stand/vmunix"