lamarche@ireq.hydro.qc.ca (08/30/90)
I was succesfull in recompiling X11R4 with gcc under A/UX 2.0 using the sources I had since mars 1990 under A/UX 1.1. I had to use my old binaries of gcc to recompile my new version of it under 2.0. I was unsuccesfull doing that with the version provided at apple.com. Here are the few modifications that I made to my sources. ****************************** * gcc-1.37 for A/UX 1.1 * ****************************** Makefile: < CFLAGS = -O -g $(XCFLAGS) -DAUX_ASM --- > CFLAGS = -O -g $(XCFLAGS) -DAUX_ASM -DAUX2 -D_BSD_SOURCE -D_SYSV_SOURCE ******************************** * X11R4 with the gcc * ******************************** mit/config/Makefile.ini: < CFLAGS = $(BOOTSTRAPCFLAGS) $(CDEBUGFLAGS) --- < CFLAGS = $(BOOTSTRAPCFLAGS) $(CDEBUGFLAGS) -DAUX2 -D_SYSV_SOURCE -D_BSD_SOURCE mit/config/macII.cf: < #define OSName A/UX 1.1 < #define OSMajorVersion 1 < #define OSMinorVersion 1 < #define BootstrapCFlags -DmacII < #define StandardDefines -DmacII -DSYSV < #define StandardCppDefines -DmacII -DSYSV --- > #define OSName A/UX 2.0 > #define OSMajorVersion 2 > #define OSMinorVersion 0 > #define StandardDefines -DSYSV -D_SYSV_SOURCE -D_BSD_SOURCE -DAUX2 > #define StandardCppDefines -DSYSV -D_SYSV_SOURCE -D_BSD_SOURCE -DAUX2 mit/config/site.def: *** Ensure that HasGcc is defined *** Modify < #define CcCmd gcc -DNOSTDHDRS -fstrength-reduce -fpcc-struct-return -fwritable-strings \ < -traditional --- > #define CcCmd gcc -DNOSTDHDRS -fstrength-reduce -fpcc-struct-return -fwritable-strings \ < -traditional -DAUX2 -D_SYSV_SOURCE -D_BSD_SOURCE *** and < #define CcCmd gcc -DNOSTDHDRS -fstrength-reduce -fpcc-struct-return --- > #define CcCmd gcc -DNOSTDHDRS -fstrength-reduce -fpcc-struct-return -fwritable-strings \ > -DAUX2 -D_SYSV_SOURCE -D_BSD_SOURCE I have tested most of the applications and the server and everything looks fine. I hope this can help. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | Louis Lamarche, IREQ | lamarche@IREQ.Hydro.Qc.CA | CP 1000, Varennes | or | QC, Canada, J3X 1S1 | 514-652-8077 (office) 514-324-2919 (home)
liam@cs.qmw.ac.uk (William Roberts) (09/03/90)
Your changes should have the desired effect, but they represent considerable overkill! What you should have done was: 1) Use the appropriate flag to (A/UX) cc to get it to show you the A/UX 2.0 standard invocation of cpp e.g. whitesand.root 8 # cc -# pipetest.c |& fold callsys /lib/cpp: '/lib/cpp' '-Dmc68k32' 'pipetest.c' '/usr/tmp/ctmAAAa003954' . ... 2) Look in the CPP manual page to find the "reserved symbols", i.e. -Uname Remove any initial definition of name, where name is a reserved symbol that is predefined by the particular preprocessor. The list of reserved symbols is shown below: operating system: unix hardware: m68k UNIX(Reg.) System variant: _SYSV_SOURCE _BSD_SOURCE _AUX_SOURCE 3) Finally, arrange for CPP_PREDEFINES in your tm-aux.h file to include all of the things that you need, and rebuild gcc. config/tm-aux.h: #define CPP_PREDEFINES "-Dunix -Dm68k -D_SYSV_SOURCE \ -D_BSD_SOURCE -D_AUX_SOURCE \ -DmacII -DAUX" Your solution of patching up the X11 Makefiles is workable (you didn't need _AUX_SOURCE so that could bite you someday) but fixing the GNU cpp is more elegant. Does anyone know if the -Dmc68k32 which the A/UX 2.0 cc adds to its invocation of cpp is actually needed? If so, it also needs to go into the CPP_PREDEFINES for gcc... -- William Roberts ARPA: liam@cs.qmw.ac.uk Queen Mary & Westfield College UUCP: liam@qmw-cs.UUCP Mile End Road AppleLink: UK0087 LONDON, E1 4NS, UK Tel: 071-975 5250 (Fax: 081-980 6533)