Commit | Line | Data |
---|---|---|
783ec64c C |
1 | Our setup: |
2 | ||
3 | Sun 3/60 with cgfour | |
4 | SunOS 4.0 (plus what Sun calls their "general hygiene" patch tape) | |
5 | XV11R3 + MIT fixes 1 through 8 + "Purdue enhancements" + one local | |
6 | "ANSIfication" fix (previously reported to MIT, | |
7 | and attached below) | |
8 | ||
9 | I installed gcc 1.34 (plus the expr.c fix) and also ran the "fixincludes" | |
10 | script. | |
11 | ||
12 | I built the X stuff with with the "CC" line in the "Sun.macros" file set to: | |
13 | ||
14 | CC = gcc -fcombine-regs -fstrength-reduce -finline-functions -fpcc-struct-return -DPURDUE -Dinline=INLINE -DNOSTDHDRS | |
15 | ||
16 | where -fcombine-regs, -fstrength-reduce, and -finline-functions | |
17 | specify desired optimizations, -fpcc-struct-return makes things | |
18 | compatible with the dbm library, -DPURDUE buys the Purdue speedups, | |
19 | -Dinline=INLINE avoids a problem with a variable named "inline" in the | |
20 | X file "fonts/bdftosnf/fontutil.c", and -DNOSTDHDRS avoids a problem | |
21 | with multiple (and conflicting) typedef'ing of "size_t" in the | |
22 | gcc-provided STDDEF_H and Sun's "sys/types.h". | |
23 | ||
24 | Some clients may need -fwritable-strings. twm is said to need it. | |
25 | ||
26 | The ANSIfication fix: | |
27 | ||
28 | > From ado Mon Dec 26 10:55:28 1988 | |
29 | > To: xbugs@expo.lcs.mit.edu | |
30 | > Subject: Xlibint and __STDC__ don't mix | |
31 | > | |
32 | > | |
33 | > X Window System Bug Report | |
34 | > xbugs@expo.lcs.mit.edu | |
35 | > | |
36 | > | |
37 | > | |
38 | > | |
39 | > VERSION: | |
40 | > R3 | |
41 | > | |
42 | > CLIENT MACHINE and OPERATING SYSTEM: | |
43 | > Sun 3/60 running SunOS 4.0 | |
44 | > | |
45 | > DISPLAY: | |
46 | > Sun CG4 | |
47 | > | |
48 | > WINDOW MANAGER: | |
49 | > uwm | |
50 | > | |
51 | > AREA: | |
52 | > Xlib | |
53 | > | |
54 | > SYNOPSIS: | |
55 | > Xlibint.h and __STDC__ don't mix | |
56 | > | |
57 | > DESCRIPTION: | |
58 | > If __STDC__ is defined (and UNIXCPP is not defined), | |
59 | > code that uses the GetReqExtra macro defined in Xlibint.h | |
60 | > is uncompilable. | |
61 | > | |
62 | > REPEAT BY: | |
63 | > Script started on Mon Dec 26 10:52:58 1988 | |
64 | > elsie$ cd lib/X | |
65 | > elsie$ rm Xbackgnd.o | |
66 | > rm: Xbackgnd.o: No such file or directory | |
67 | > elsie$ rm XBackgnd.o | |
68 | > elsie$ make XBackgnd.o CC=/usr/local/bin/gcc | |
69 | > rm -f XBackgnd.o | |
70 | > /usr/local/bin/gcc -c -O -I. -I../../. -I../.././X11 -DTCPCONN -DUNIXCONN XBackgnd.c | |
71 | > XBackgnd.c: In function XSetWindowBackground: | |
72 | > XBackgnd.c:16: undeclared variable `sz_' (first use here) | |
73 | > *** Error code 1 | |
74 | > make: Fatal error: Command failed for target `XBackgnd.o' | |
75 | > elsie$ exit | |
76 | > | |
77 | > script done on Mon Dec 26 10:53:51 1988 | |
78 | > | |
79 | > SAMPLE FIX: | |
80 | > *** 1.1/Xlibint.h Mon Dec 26 10:39:37 1988 | |
81 | > --- 1.2/Xlibint.h Mon Dec 26 10:39:37 1988 | |
82 | > *************** | |
83 | > *** 122,133 **** | |
84 | > #if defined(__STDC__) && !defined(UNIXCPP) | |
85 | > #define GetReqExtra(name, n, req) \ | |
86 | > WORD64ALIGN\ | |
87 | > ! if ((dpy->bufptr + SIZEOF(*req) + n) > dpy->bufmax)\ | |
88 | > _XFlush(dpy);\ | |
89 | > req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\ | |
90 | > req->reqType = X_##name;\ | |
91 | > ! req->length = (SIZEOF(*req) + n)>>2;\ | |
92 | > ! dpy->bufptr += SIZEOF(*req) + n;\ | |
93 | > dpy->request++ | |
94 | > #else | |
95 | > #define GetReqExtra(name, n, req) \ | |
96 | > --- 122,133 ---- | |
97 | > #if defined(__STDC__) && !defined(UNIXCPP) | |
98 | > #define GetReqExtra(name, n, req) \ | |
99 | > WORD64ALIGN\ | |
100 | > ! if ((dpy->bufptr + SIZEOF(x##name##Req) + n) > dpy->bufmax)\ | |
101 | > _XFlush(dpy);\ | |
102 | > req = (x##name##Req *)(dpy->last_req = dpy->bufptr);\ | |
103 | > req->reqType = X_##name;\ | |
104 | > ! req->length = (SIZEOF(x##name##Req) + n)>>2;\ | |
105 | > ! dpy->bufptr += SIZEOF(x##name##Req) + n;\ | |
106 | > dpy->request++ | |
107 | > #else | |
108 | > #define GetReqExtra(name, n, req) \ | |
109 | > -- | |
110 | > Arthur David Olson ado@ncifcrf.gov ADO is a trademark of Ampex. | |
111 |