|
|
1.1 root 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:
1.1.1.2 ! root 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.
1.1 root 25:
26: The ANSIfication fix:
27:
28: > From ado Mon Dec 26 10:55:28 1988
29: > To: [email protected]
30: > Subject: Xlibint and __STDC__ don't mix
31: >
32: >
33: > X Window System Bug Report
34: > [email protected]
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 [email protected] ADO is a trademark of Ampex.
111:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.