Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bbn!apple!bloom-beacon!husc6!psuvax1!ehrlich@shire.cs.psu.edu From: ehrlich@shire.cs.psu.edu (Dan Ehrlich) Newsgroups: comp.sys.ibm.pc.rt Subject: Re: Problems compiling X11R3 Summary: High-C V2.1 is brain damaged on IBM RT Message-ID: <4366@psuvax1.cs.psu.edu> Date: 14 Mar 89 18:51:28 GMT References: <28649@bu-cs.BU.EDU> Sender: news@psuvax1.cs.psu.edu Reply-To: ehrlich@shire.cs.psu.edu (Dan Ehrlich) Organization: Pennsylvania State University, Computer Science Lines: 58 In-reply-to: eap@bu-cs.BU.EDU (Eric A. Pearce) In article <28649@bu-cs.BU.EDU>, eap@bu-cs (Eric A. Pearce) writes: > > > I got X11R3 off expo and tried to compile it on a IBM RT running > 4.3. This happened during the "make install" phase. "make world" had worked > without complaint. > > vga % make > rm -f vgaData.o > /bin/hc -c -O -I. -I../BSDrt -I../ppc -I../../../include -I../../../.././X11 > -I../common -I../../mfb -DUNIXCPP -DNOSTDHDRS -DHCVERSION=21004 -DBSDrt > -DATRIO vgaData.c > E "vgaData.c",L115/C2: vgaSetColor > | Type "void(unsigned long color,short r,short g,short b)" is not assignment > compatible with type "void(*)()". > 1 user error No warnings > *** Exit 8 > > Stop. > > I built the Xibm server without -DVGA, but it just blanks the screen and dumps > core when I try "xinit" (this is on a mpel). > > Any tips would be appreciated. > > -e First, try using /bin/hc1.4 instead of /bin/hc. Version 2.1 of the High-C compiler (i.e. /bin/hc) is so brain dead that even people in IBM don't use it. Modify utils/imake.includes/Rt.macros to get this to happen globally. Also remember to change HCRevision in the same file. One other thing that I have done when porting programs from other C compilers to High-C is to stuff the following in some include file or other that is used by everything. comes to mind. /* * Totally gross and disgusting hack to get around High-C on an IBM RT * treating `char' differently than most other compilers. Along with * assorted other things. */ #if defined(__HIGHC__) && defined(ibm032) pragma Off(Char_default_unsigned); pragma On(Char_is_rep); pragma On(Parm_warnings); pragma On(Pointers_compatible); pragma On(Pointers_compatible_with_ints); #endif /* defined(__HIGHC__) */ This seems to make High-C 1.4 behave like most other C compilers I have encountered. Some of the pragmas may not be neccessary but they do not seem to cause any trouble. -- Dan Ehrlich | Disclaimer: The opinions expressed are The Pennsylvania State University | my own, and should not be attributed Department of Computer Science | to anyone else, living or dead. University Park, PA 16802 |