1 /* Synched up with: FSF 19.31. */
3 /* For building XEmacs under SunOS 4.1.* with static libraries. */
14 #if 0 /* This may have been needed for an earlier version of Sun OS 4.
15 It seems to cause warnings in 4.0.3 and 4.1. */
16 #define O_NDELAY FNDELAY /* Non-blocking I/O (4.2 style) */
20 /* The new sunOS unexec eliminates the need for a custom crt0.o, so we
21 can just let the compiler invoke the linker and don't have to guess
22 what options it might have passed it. */
23 # define ORDINARY_LINK
26 # ifndef LD_SWITCH_SYSTEM
27 # define LD_SWITCH_SYSTEM "-Bstatic"
29 # define UNEXEC "unexsunos4.o"
30 #endif /* NOT_C_CODE */
32 #define RUN_TIME_REMAP
34 /* these don't matter, but we have to define something to keep
35 sysdep.c from introducing bogus symbols */
39 /* #### XEmacs: #define of SYSTEM_MALLOC removed. Is this OK? FSF says:
41 In SunOS 4.1, a static function called by tzsetwall reportedly
42 clears the byte just past an eight byte region it mallocs, corrupting
43 GNU malloc's memory pool. But Sun's malloc doesn't seem to mind. */
45 /* XEmacs: additions for proper prototyping. */
48 /* Sun's headers are categorically losing.
49 Mly uses broken-sun.h to get the protos for this, but lcc provides all
50 of the prototypes for the ANSI routines. So I'm just going to put the
51 protos of the non-ANSI routines that we use here (I guess that would
52 be things that are Posix but not ANSI?) You're in a maze of twisty
53 little standards, all alike...
55 /* Since lcc is not going to be heavily used anymore if it ever was, I'm
56 putting broken-sun.h back in. */
57 /* Since Gcc 2.8 appears to have fixed the problem, I'm conditionalizing */
60 #if defined (__GNUC__)
61 #if defined (__GNUC_MINOR__)
62 #if ((__GNUC__ == 2) && (__GNUC_MINOR__ > 7)) || ((__GNUC__ > 2))
63 /* Don't include for gcc 2.8.0*/
65 #include "../broken-sun.h"
68 #else /* __GNUC_MINOR__ is undefined */
69 #include "../broken-sun.h"
76 extern char *strdup ();
77 extern char *ttyname (int);
78 extern void tzsetwall (void);
79 extern int getpagesize (void);
83 /* Suppress zillions of warnings from outdated SunOS4 prototypes */
84 /* Bother! Sun can't even get the arg types right. */
86 #define memset(a,b,c) memset((char*) (a), b, c)
87 #define memcpy(a,b,c) memcpy((char*) (a), (char*) (b), c)
88 #define memcmp(a,b,c) memcmp((char*) (a), (char*) (b), c)
89 #define memchr(a,b,c) memchr((char*) (a), b, c)
90 void * __builtin_alloca(int);
93 #define XFree(p) XFree((char*)(p))
94 #endif /* X Windows */
95 #endif /* __SUNPRO_C */
100 /* XEmacs addition: */
101 /* gcc has the bug that it claims to conform to the ANSI C standard
102 (which is what setting __STDC__ to 1 means) but does not necessarily
103 provide all of the library routines which the standard requires of a
104 conforming compiler -- such as memmove. The other Sun ANSI compilers
105 (Sun's acc and Lucid's lcc) do not have this bug. */
106 # define memmove(to, from, size) bcopy ((char *) (from), (char *) (to), (size))
107 /* We must define mkdir with this arg prototype
108 to match GCC's fixed stat.h. */
109 # define MKDIR_PROTOTYPE \
110 int mkdir (const char *dpath, unsigned short dmode)
111 # endif /* __GNUC__ */
115 #endif /* _S_SUNOS4_H_ */