Mercurial > hg > xemacs-beta
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_ */ |