guy@sun.uucp (Guy Harris) (05/28/85)
> # This is the makefile for my UNIX PC quickie environment > CFLAGS = -Dm68k -Dm68 -Dmc68k -Uvax -UMICROOMS -Updp11 -Uu3b ... Sun's compiler predefines "mc68000" (which isn't strictly true, as we use MC68010s, not MC68000s). CCI's compiler predefines "m68000" (which is more correct, since "m68000" is sort of the name for the architecture). What does the System V micro-port compiler define? What, if anything, does the AT&T 68000 compiler define? What does the PC 7300 compiler define? What does any other 68000-based UNIX out there define? Can we please get together and decide on *one* #define constant which says you have a Motorola 68000 architecture, and maybe several #define constants for the various chips in that family? (And, while we're at it, decide on some #define constants for the other chips out there? For example, there's "u3b", and "u3b5", and "u3b2" (I think), but I don't know if there's a generic "3B UNIX" define, or even a generic "WE32000 family" define.) If the micro-ports have standard #define constants, I'd vote for those being the official standard. And, while we're at it, could we also use that constant's name for the name of the command which says "you're on a Motorola 68000-based machine" as well? Also, what is the "machine" field in the "utsname" structure supposed to contain - the name of the architecture or of the implementation (i.e., "vax" or "vax-780"/"vax-750"/...), and what are the correct values for various machines? Guy Harris
ken@turtlevax.UUCP (Ken Turkowski) (05/28/85)
In article <2234@sun.uucp> guy@sun.uucp (Guy Harris) writes: >Can we please get together and decide on *one* #define constant which says you >have a Motorola 68000 architecture, and maybe several #define constants for >the various chips in that family? I have heard several people on the net refer to the "mc68k" #define, which seems to be THE one to use for the 68xxx family of processors. It IS still necessary, though, to have the #definitions mc68000, mc68010, mc68020 for the specific processor chips, to take advantage of the extra power in the instruction sets. -- Ken Turkowski @ CADLINC, Menlo Park, CA UUCP: {amd,decwrl,hplabs,nsc,seismo,spar}!turtlevax!ken ARPA: turtlevax!ken@DECWRL.ARPA
dave@fluke.UUCP (Dave Van Ess) (05/30/85)
Of course Tommy Dorsey would spell it: Motorola six, eight oh oh oh Dave Van Ess John Fluke Mfg Co Everett WA
fred@mot.UUCP (Fred Christiansen) (05/30/85)
[] whilst doing the System V micro-port for AT&T we thoughtfully considered what to choose. we felt that mc68k or mc68000 would alienate other 68k manufacturers. we also felt that m68000 as a generic seemed too specific. hence, we choose "m68k" as the generic since this represented a balance between common nomenclature for the chip family and the way people verbalized things. when it becomes necessary to identify a particular processor, we use M68000, M68010, M68020. again, note the avoidance of chauvinism (no MC..). the very same identifier, m68k, as is used in C code is also the one used as a file link to true or false. that way, the same symbol can be used in scripts, makefiles, etc. and to make cross-compiling transparent, you simply alter the PATH and the environment via the shell's "." operation. for example: if [ "$PROCESSOR" = "M68000" ] then echo "you are in 68" else PATH=:/port/68/bin$PATHBASE STACKCHECK=ON PROCESSOR=M68000 export PATH PATHBASE STACKCHECK PROCESSOR fi we use scripts called "do68", "do10", "do20", and "dovax". all cross-compilers cross-libraries, m68k being true instead of false, are all in this separate execution environment. in fact, the cross and native compilers, etc. are the same beasts, but just set up to be installed in one place on the vax and another on a 68k machine. it's all quite clean and automagic. -- << Generic disclaimer >> Fred Christiansen, Motorola Microsystems, Tempe, AZ 85282, 602-438-3472 {allegra!sftig, amdahl!drivax, arizona!asuvax, attunix, hplabs!motsj1}!mot!fred {ihnp4, noao!terak, trwrb!flkvax, ut-sally!oakhill, utzoo!mnetor, wlbr}!mot!fred
gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (05/31/85)
> the very same identifier, m68k, as is used in C code is also the one > used as a file link to true or false. that way, the same symbol can be used > in scripts, makefiles, etc. Yes, yes! Also please make "uname -m" return the same thing..
seth@megad.UUCP (Seth H Zirin) (05/31/85)
> What does any other 68000-based UNIX out there define?
The version of Uniplus+ 5.1 Unix delivered to Megadata from Unisoft thinks
the C compiler define is spelled mc68000, but the shell script in bin that
returns true (to see what machine you're on from a shell script) is called
m68k. There are numerous perturbations of Uniplus+ running on iron made
by a multitude of manufacturers (Megadata being one).
--
-------------------------------------------------------------------------------
Name: Seth H Zirin
UUCP: {decvax, ihnp4}!philabs!sbcs!megad!seth
Keeper of the News for megad