annotate src/m/pmax.h @ 2092:f557693c61de

[xemacs-hg @ 2004-05-21 20:56:26 by james] Batch of fixes and new functions for bignums, ratios, and bigfloats.
author james
date Fri, 21 May 2004 20:56:32 +0000
parents abe6d1db359e
children ecf1ebac70d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* Synched up with: FSF 19.31. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 /* Machine description file for DEC MIPS machines. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 #include "mips.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 /* The following line tells the configuration script what sort of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 operating system this machine is likely to run.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 USUAL-OPSYS="note"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 NOTE-START
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 Use -opsystem=osf1 for OSF/1, and -opsystem=bsd4-3 otherwise.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 NOTE-END */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 #undef LIB_STANDARD
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 #undef START_FILES
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 #undef COFF
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 #undef TERMINFO
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 #define MAIL_USE_FLOCK
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 #ifdef MACH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 #define START_FILES "pre-crt0.o /usr/lib/crt0.o"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 #else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 /* This line starts being needed with ultrix 4.0. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 /* You must delete it for version 3.1. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 #define START_FILES "pre-crt0.o /usr/lib/cmplrs/cc/crt0.o"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 /* Supposedly the following will overcome a kernel bug. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 #undef LD_SWITCH_MACHINE
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31 #undef DATA_START
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 #define DATA_START 0x10000000
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 #if 0
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 /* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3. And
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 the relocating allocator is a real win. -JimB */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 /* In Ultrix 4.1, XvmsAlloc.o in libX11.a seems to insist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 on defining malloc itself. This should avoid conflicting with it. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 #define SYSTEM_MALLOC
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 /* Override what mips.h says about this. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 #undef LINKER
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 /* Ultrix 4.2 (perhaps also 4.1) implements O_NONBLOCK
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 but it doesn't work right;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 and it causes hanging in read_process_output. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 #define BROKEN_O_NONBLOCK
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 #if defined (OSF1) || defined (MACH)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 #undef C_ALLOCA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 #define HAVE_ALLOCA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 /* mcc@timessqr.gc.cuny.edu says this makes Emacs work with DECnet. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 #ifdef HAVE_LIBDNET
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 #define LIBS_MACHINE "-ldnet"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 /* mcc@timessqr.gc.cuny.edu says it is /vmunix on Ultrix 4.2a. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 #undef KERNEL_FILE
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 #define KERNEL_FILE "/vmunix"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 #ifndef MACH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 /* Jim Wilson writes:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 [...] The X11 include files that Dec distributes with Ultrix
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 are bogus.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 When __STDC__ is defined (which is true with gcc), the X11 include files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 try to define prototypes. The prototypes however use types which haven't
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 been defined yet, and thus we get syntax/parse errors.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 You can not fix this by changing the include files, because the prototypes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 create circular dependencies, in particular Xutil.h depends on types defined
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 in Xlib.h, and Xlib.h depends on types defined in Xutil.h. So, no matter
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 which order you try to include them in, it will still fail.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 Compiling with -DNeedFunctionPrototypes=0 will solve the problem by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 directly inhibiting the bad prototypes. This could perhaps just be put in
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 an a Ultrix configuration file.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 Using the MIT X11 distribution instead of the one provided by Dec will
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 also solve the problem, but I doubt you can convince everyone to do this. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 /* Addendum: the MIT X11 distribution neglects to define certain symbols
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 when NeedFunctionPrototypes is 0, but still tries to use them when
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 NeedVarargsPrototypes is 1 (which is its default value). So if we're
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 going to disable non-variadic prototypes, we also need to disable
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 variadic prototypes. --kwzh@gnu.ai.mit.edu */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 #define C_SWITCH_X_MACHINE "-DNeedFunctionPrototypes=0 -DNeedVarargsPrototypes=0"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 /* XEmacs: the following does nothing at all any more due to cleanup
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 of the create_process() code. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 /* Enable a fix in process.c. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 #define SET_CHILD_PTY_PGRP