[M3devel] target naming again..DJGPP?
Tony Hosking
hosking at cs.purdue.edu
Sun Mar 30 16:49:17 CEST 2008
I would prefer to use x86_64 instead of AMD64 to describe these
platforms as there is now a degree of commonality between AMD and
Intel's implementations. I have had it in the the back of my queue to
do/complete (someone started it at some point) a Linux x86_64 port
sometime.
On Mar 30, 2008, at 10:15 AM, Jay wrote:
> Right, I plan to do that too.
> Please let's also chose names for the following two targets:
>
> NTAMD64, AMD64_NT, AMD64_MSWIN, AMD64_WIN, etc.
> NTAMD64MINGNU, AMD64_NT_GNU, AMD64_MSWIN_GNU, AMD64_WIN_GCC,
> AMD64_NT_MINGWIN, MING64, MINGWIN64, etc.
>
> You can work NTAMD64GNU/AMD64_NT_CYGWIN into the scheme, but it is
> less likely to happen.
> Also Services for Unix, AMD64_NT_INTERIX, AMD64_INTERIX, AMD64_MSU,
> etc.
>
> Also consider the following likely targets:
> X86_SOLARIS, I386_SOLARIS, X86_SOLARIS
> X86_SOLARIS_SUN
> X86_SOLARIS_GNU
> AMD64_SOLARIS
> AMD64_SOLARIS_SUN (Sun tools. Do they exist?)
> AMD64_SOLARIS_GNU
> AMD64_DARWIN
> AMD64_FREEBSD, AMD64_FBSD, FREEBSDAMD64, FBSDAMD64
> AMD64_OPENBSD
> AMD64_NETBSD
>
>
> and let me know which are actually "likely".
> I think there are a surprisingly large number of likely new targets
> -- at LEAST AMD64 for Windows and MacOSX, probably also some AMD64
> BSD and maybe AMD64/x86 Solaris.
>
> It's easy to work on getting these to compile actually, they all
> share the same likely small set of problems, in a cross compile.
> I'll have enough hardware soon enough, though my current primary
> home machine is only 32 bit.
>
> We should also possibly think more about how cross compilation looks
> and works, since I think cross compilation is getting more common.
> Could be that it mostly already is worked out though.
> The main thing maybe is to have \cm3\bin\cm3.cmd, \cm3\bin\cm3,
> \cm3\bin\cm3cg that are actually cmd and sh that delegate off to
> \cm3\pkg\cm3\host\cm3 and \cm3\pkg\m3cc\host\target\cm3cg, usually
> via some very unambiguous parameter for the scripts' use or a very
> fast sniff for interactive use, possibly the scripts are actually
> host dependenent in their default, rather than ever sniffing, you
> know, they are like about two lines each, and actually host specific.
>
> cm3.cmd:
> setlocal
> set host=%1
> set target=%2
> if not defined target set host=NT386
> if not defined target set target=NT386
> call %~dp0\..\pkg\cm3\%host%\%target%\cm3 %*
>
> But then NT386MINGNU might actually ship a cm3 with different
> defaults.
>
> cm3:
> #!/bin/sh
> host=${1:-PPC_DARWIN}
> target=${2:-PPC_DARWIN}
> # how to get your own path?
> exec $0/../pkg/cm3/$host/$target/cm3 $@
>
> m3cc:
> #!/bin/sh
> host=${1:-PPC_DARWIN}
> target=${2:-PPC_DARWIN}
> # how to get your own path?
> exec $0/../pkg/m3cc/$host/$target/cm3 $@
>
> they don't necessarily delegate to the package store.
> It migth actually be
> \bin\cm3
> \bin\host\target\cm3
> \bin\cm3cg
> \bin\host\target\cm3cg
>
> or maybe just
>
> \bin\cm3
> \bin\cm3cg
> \bin\target\cm3cg
>
> host might be implied by "\bin" or what is above it (nothing here,
> but could be something).
>
> Not delegating out to the package store has a possible advantage to
> being more "relocatable" into other file system contexts.
>
> I'm a fair amount interested in working out a solid well adhered to
> convention here.
> In particular, scripts should be able to depend on it so they can
> skip the wrapper.
> It should, perhaps, if I'm not crazy, be possible and obvious how to
> create a "very full" tree/distribution for use "anywhere".
> You know, in a file system shared by multiple host systems, or in a
> distribution that is super piggy on the download and maybe prunes
> itself down upon install.
> Or maybe one of those stub installers that downloads just what the
> user requests.
>
> It might also be by file name, cm3, vs. cm3-nt386.exe.
>
> On the other hand, this maybe isn't all that important.
>
> Furthermore..it'd be nice to work gcc and ld and headers/libs into
> this structure if possible. I like fewer larger pieces of
> functionality so I don't have to go and setup so many varying
> inconsistent things, and then it becomes possible to build any
> Modula-3 target on any host. I guess I should just get into doing my
> own builds and cross builds of gcc/ld/glibc and setup config files
> appropriately, though I don't think everything is licensed
> "appropriately" and/or it'd still be some "aggregation", since it
> isn't always GNU ld (for example on Darwin) or glibc (many examples
> -- Cygwin, Darwin, Solaris).
>
>
> - Jay
>
>
>
> > Subject: Re: [M3devel] target naming again..DJGPP?
> > From: dragisha at m3w.org
> > To: jayk123 at hotmail.com
> > CC: m3devel at elegosoft.com
> > Date: Sun, 30 Mar 2008 12:53:10 +0200
> >
> > djgpp being piece of archaeology, it surely is interesting. Would be
> > much better to invest time in 64bit ports these days, though :).
> >
> > dd
> >
> > On Sat, 2008-03-29 at 21:59 +0000, Jay wrote:
> > > Does anyone else find the idea of a DJGPP port "interesting"?
> > >
> > >
> > > I think I'll go ahead and do it. I know its useless but I find it
> > > "interesting".
> > > A few things will come before it.
> > >
> > >
> > > The DJGPP runtime appears to have the adequate support for
> > > alarm/setitimer,
> > > so it /should/ be fairly easy.
> > > I've already demonstrated to myself cooperating threading, and
> > > alarm/setitimer
> > > can be used for preemption, with the user posix threads.
> > > The easy work I did pruning down NT386GNU's *.i3 file to a minimum
> > > will be useful.
> > >
> > >
> > > What to call it?
> > >
> > >
> > > Some combination of
> > >
> > >
> > > (x86 or 386 or i386) and (DOS or MSDOS) and (DJGPP and/or GNU)?
> > >
> > >
> > > DJGPP
> > > MSDOS
> > > X86_MSDOS
> > > X86_DJGPP
> > > X86_MSDOS_DJGPP
> > > X86_MSDOS_DJGPP_GNU
> > > X86_MSDOS_GNU
> > >
> > >
> > > It really is reasonable to have a quadruple sometimes.
> > > architecture-operatingsystem-C runtime-toolset
> > > though C runtime doesn't very often.
> > >
> > >
> > > ?I don't want to open the whole can of worms, just need a name for
> > > DJGPP.
> > >
> > >
> > > DJGPP and MSDOS are fairly unambiguous here..but...
> > > Open Watcom is also a viable runtime/toolset.
> > > Maybe fit into the naming.
> > > X86_MSDOS_WATCOM
> > > X86_MSDOS_GNU
> > > X86_MSDOS_DJGPP
> > >
> > >
> > > Open Watcom really puts a monkey wrench into it.
> > > X86_OPENWATCOM is among the most ambiguous hypothetical names,
> because
> > > OpenWatcom targets
> > > a bajillion x86 variants (and even made progress toward Alpha and
> > > PowerPC).
> > > Open Watcom is actively developed and targets at least:
> > > 16 bit real mode MS-DOS
> > > 32 bit protected mode MS-DOS
> > > 16 bit Windows 3.1 (enhanced mode?)
> > > 32 bit code in 16 bit Windows
> > > 32 bit protected mode Windows (NT)
> > > 32 bit protected mode OS/2
> > > other OS/2 variants? 16 bit? Or only 16 bit?
> > > Novell Netware I believe!
> > > x86 Linux
> > >
> > > or just
> > > DJGPP
> > > MSDOS_OPENWATCOM
> > > or
> > >
> > > MSDOS_DJGPP
> > > MSDOS_OPENWATCOM
> > >
> > > MSDOS implies 32 bit x86. ?
> > >
> > >
> > > PERHAPS some more names should be settled for some actual
> practical
> > > targets that might come up soon, to guide the discussion?
> > >
> > > X86_SOLARIS ?
> > > AMD64_SOLARIS ?
> > > SPARC64_SOLARIS ?
> > > Solaris always has two toolsets though, ? Sun and GNU?
> > > AMD64_DARWIN ?
> > > PPC64_DARWIN ? (obsolete before it ever caught on?)
> > > PPC64_AIX ? (this exists as an OS, right?)
> > > AMD64_NT -- ambiguous ?
> > > AMD64_NT_GNU ?
> > > AMD64_NT_MINGNU ? -- this toolset is already out there
> > > AMD64_NT_CYGWIN ? -- This isn't likely, Cygwin is very x86-
> specific
> > > AMD64_LINUX ?
> > > IA64_VMS ?
> > > IA64_LINUX ?
> > > two or more toolsets, right? GCC, Intel, SGI?
> > > IA64_LINUX_GNU ?
> > > IA64_LINUX_INTEL ?
> > > IA64_LINUX_SGI ?
> > >
> > >
> > > I'm skeptical there will be any IA64 ports, but I expect there
> will be
> > > AMD64.
> > > (I have seen IA64 for around $500 on eBay, tempting, for a port..)
> > >
> > >
> > > And consider LLVM in the naming exercise? As a toolset, right?
> > > AMD64_LINUX_GNU
> > > AMD64_LINUX_LLVM ?
> > >
> > >
> > > Are people wedded to "I386" instead of "x86"?
> > > To indicate clearly it isn't 286 and the ilk?
> > >
> > >
> > > I am somewhat wedded to "AMD64", though other names include
> "X64" and
> > > X86-64.
> > > X86-64 is too long, and the dash would probably go away, X8664,
> > > getting to be a long run of gibberish numbers.
> > > X64...is that less than X86? :)
> > > AMD64 is the value of %PROCESSOR_ARCHITECTURE% on NT and the
> install
> > > directory name on the pre-Vista CDs (along with i386), and it is
> > > available as an #ifdef (_AMD64_, _M_AMD64).
> > >
> > >
> > > Intel was calling it EM64T, but that gone away in favor of
> Intel64, to
> > > not be confused with IA64, which is Itanium, stands for Intel
> > > Architecture 64 hm...
> > > Intel64 != Intel Architecture 64.
> > > Admittedly they were kind of stuck.
> > >
> > >
> > > - Jay
> > >
> > --
> > Dragiša Durić <dragisha at m3w.org>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080330/8c677083/attachment-0002.html>
More information about the M3devel
mailing list