Path: utzoo!telly!attcan!uunet!tut.cis.ohio-state.edu!rutgers!rochester!pt.cs.cmu.edu!RITZ.CIVE.CMU.EDU!thewalt From: thewalt@RITZ.CIVE.CMU.EDU (Chris Thewalt) Newsgroups: gnu.gcc.bug Subject: Re: GNU gcc 1.33 patches and X patches to build the Core X R3 with gcc Message-ID: <4324@pt.cs.cmu.edu> Date: 21 Feb 89 17:31:11 GMT References: <8902200730.AA14576@poseur.Sun.COM> Reply-To: thewalt@CE.CMU.EDU (Chris Thewalt) Distribution: gnu Organization: Carnegie Mellon University, Pittsburgh, PA Lines: 51 In article <8902200730.AA14576@poseur.Sun.COM> earle@SUN.COM (Greg Earle) writes: > > Try these patches to gcc 1.33; they're from RMS (thus blessed) and >they enabled me to build the core X R3 distribution with gcc 1.33 after they >were applied. I didn't even need to use `-traditional'. ... I modified gcc 1.33 and X11 with your patches and I still can't compile the core distribution. I am running a MicroVAX II, Ultrix 2.2, X11R3 with patches 1-7 installed and the PURDUE 2.0 and 2.1 enhancements The examples in PROBLEMS 1 and 2 below actually occurred in many different locations. (this worked with gcc 1.31 and -traditional) ******* PROBLEM 1 ******* I can't compile the libraries without -traditional, for example, the following macro in lib/X/XBackgnd.c, gets expanded as follows: GetReqExtra (ChangeWindowAttributes, 4, req); ------ gcc -E -traditional gives: if ((dpy->bufptr + 12 + 4) > dpy->bufmax) _XFlush(dpy); req = (xChangeWindowAttributesReq *)(dpy->last_req = dpy->bufptr); req->reqType = 2 ; req->length = (12 + 4)>>2; dpy->bufptr += 12 + 4; dpy->request++; ------ gcc -E gives (lots of errors about sz_): if ((dpy->bufptr + sz_* req + 4) > dpy->bufmax) _XFlush(dpy); req = (xChangeWindowAttributesReq *)(dpy->last_req = dpy->bufptr); req->reqType = 2 ; req->length = (sz_* req + 4)>>2; dpy->bufptr += sz_* req + 4; dpy->request++ ; ******** PROBLEM 2 ******** There are problems in handling the asm statements from the PURDUE changes. For example, in server/ddx/mfb/mfbgetsp.c line 118 getandputbits0(psrc, srcBit, w, pdst); ------- gcc -E gives: { register unsigned int _tmpbits; asm ("extzv %1,%2,%3,%0" : "g" ( _tmpbits) : "g" ( srcBit), "g" ( w), "m" (*(char *)(psrc))); asm ("insv %3,%1,%2,%0" : "m" (*(char *)( pdst)) : "g" ( 0), "g" ( w), "g" (_tmpbits)); }; which results in the errors: mfbgetsp.c: In function mfbGetSpans: mfbgetsp.c: output operand constraint lacks `=' mfbgetsp.c: output operand constraint lacks `=' I hope this helps, Chris thewalt@ce.cmu.edu =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Christopher Robin Thewalt These opinions are not necessarily thewalt@ce.cmu.edu shared by my employer... Carnegie Mellon University --