comparison src/s/sunos4-0.h @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 /* Synched up with: FSF 19.31. */
2
3 /* For building XEmacs under SunOS 4.1.* with static libraries. */
4
5 #ifndef _S_SUNOS4_H_
6 #define _S_SUNOS4_H_
7
8 #include "bsd4-2.h"
9
10 #ifndef SUNOS4
11 #define SUNOS4
12 #endif
13
14 /* XEmacs addition: */
15 #ifndef HAVE_SYS_TIME_H
16 #define HAVE_SYS_TIME_H
17 #endif
18
19 /* XEmacs addition */
20 #undef HAVE_UNION_WAIT
21
22 #if 0 /* This may have been needed for an earlier version of Sun OS 4.
23 It seems to cause warnings in 4.0.3 and 4.1. */
24 #define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */
25 #endif
26
27 #ifdef NOT_C_CODE
28 /* The new sunOS unexec eliminates the need for a custom crt0.o, so we
29 can just let the compiler invoke the linker and don't have to guess
30 what options it might have passed it. */
31 # define ORDINARY_LINK
32 # define START_FILES
33 # define LD_CMD $(CC)
34 # ifndef LD_SWITCH_SYSTEM
35 # ifdef USE_GCC
36 /* of course gcc has to take different args than the rest of the universe */
37 # define LD_SWITCH_SYSTEM -static
38 # else
39 # define LD_SWITCH_SYSTEM -Bstatic
40 # endif
41 # endif
42 # define UNEXEC unexsunos4.o
43 #endif
44
45 #define RUN_TIME_REMAP
46
47 /* these don't matter, but we have to define something to keep
48 sysdep.c from introducing bogus symbols */
49 #define TEXT_START 0
50 #define DATA_START 0
51
52 /* XEmacs change -- Sun CC needs this to default to ANSI */
53 #if __SUNPRO_C
54 #define C_SWITCH_SYSTEM -Xa
55 #endif
56
57 /* #### XEmacs: #define of SYSTEM_MALLOC removed. Is this OK? FSF says:
58
59 In SunOS 4.1, a static function called by tzsetwall reportedly
60 clears the byte just past an eight byte region it mallocs, corrupting
61 GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */
62
63 /* XEmacs: additions for proper prototyping. */
64 #ifndef NOT_C_CODE
65 #ifdef __STDC__
66 /* Sun's headers are categorically losing.
67 Mly uses broken-sun.h to get the protos for this, but lcc provides all
68 of the prototypes for the ANSI routines. So I'm just going to put the
69 protos of the non-ANSI routines that we use here (I guess that would
70 be things that are Posix but not ANSI?) You're in a maze of twisty
71 little standards, all alike...
72 */
73 /* Since lcc is not going to be heavily used anymore if it ever was, I'm
74 putting broken-sun.h back in. */
75 #include "broken-sun.h"
76 extern char *strdup ();
77 extern char *ttyname (int);
78 extern void tzsetwall (void);
79 extern int getpagesize (void);
80
81 #ifndef __SUNPRO_C
82 /* Bother! Sun can't even get the arg types right. */
83 #include <string.h> /* But we need to include this first because
84 *sometimes* (i.e. when using SparcWorks) the
85 correct prototypes are provided. */
86 #define memset(ptr, val, size) memset ((char *) ptr, val, size)
87 #define memcpy(dest, src, size) \
88 memcpy ((char *) dest, (CONST char *) src, size)
89 #define memcmp(src1, src2, size) \
90 memcmp ((CONST char *) src1, (CONST char *) src2, size)
91 #endif /* !__SUNPRO_C */
92
93 #endif /* __STDC__ */
94
95 # ifdef __GNUC__
96 /* XEmacs addition: */
97 /* gcc has the bug that it claims to conform the the ANSI C standard
98 (which is what setting __STDC__ to 1 means) but does not necessarily
99 provide all of the library routines which the standard requires of a
100 conforming compiler -- such as memmove. The other Sun ANSI compilers
101 (Sun's acc and Lucid's lcc) do not have this bug. */
102 # define memmove(to, from, size) bcopy ((char *) (from), (char *) (to), (size))
103 /* We must define mkdir with this arg prototype
104 to match GCC's fixed stat.h. */
105 # define MKDIR_PROTOTYPE \
106 int mkdir (const char *dpath, unsigned short dmode)
107 # endif /* __GNUC__ */
108
109 #endif /* !NOT_C_CODE */
110
111 #endif /* _S_SUNOS4_H_ */