From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID, T_FUZZY_SPRM autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,99ab4bb580fc34cd X-Google-Attributes: gid103376,public From: Ronald Cole Subject: Re: Q: access to subprogram Date: 1996/07/10 Message-ID: #1/1 X-Deja-AN: 167673164 sender: ronald@devo.ridgecrest.ca.us x-nntp-posting-host: annex038 references: <4rb9dp$qe6@news1.delphi.com> organization: RidgeNet - SLIP/PPP Internet, Ridgecrest, CA. (619) 371-3501 newsgroups: comp.lang.ada Date: 1996-07-10T00:00:00+00:00 List-Id: dewar@cs.nyu.edu (Robert Dewar) writes: > Ronald Cole said (commenting on my claim that GCC did not have multiple > backends) > > Not true. A single instance of GCC doesn't support multiple machine > targets (other than the -m options for some processor families). GCC > has to be recompiled to support different machine descriptions (that's > what the -b and -V options of gcc are for). I consider this as having > multiple backends. > > That's not what I meant, yes, of course there are multiple backends at > the object level, but not at the source level. Again not true. Yes, the source contains all the parts for each backend, but all the parts are not used to build the backend. Configure() will determine the correct source files and create links to properly build one target backend. The multiple backends at the source level are kept under the config subdirectory and grouped by architecture. I count thirty distinct backends: 1750a/1750a.md fx80/fx80.md m88k/m88k.md sh/sh.md a29k/a29k.md gmicro/gmicro.md mips/mips.md sparc/sparc.md alpha/alpha.md h8300/h8300.md ns32k/ns32k.md spur/spur.md arm/arm.md i370/i370.md pa/pa.md tahoe/tahoe.md clipper/clipper.md i386/i386.md pdp11/pdp11.md vax/vax.md convex/convex.md i860/i860.md pyr/pyr.md we32k/we32k.md dsp16xx/dsp16xx.md i960/i960.md romp/romp.md elxsi/elxsi.md m68k/m68k.md rs6000/rs6000.md > Most Ada technologies have a single front end for all targets (though > Ronald Cole would presumably call these multiple front ends too, because > there are certanly separate object versions), You presume incorrectly. I consider the frontend to be defined by the language it accepts, not by the host architecture or the number of object files in an implementation. Likewise, I consider the backend to be defined by the object code it produces. > But for technologies like GCC, where there is only one source program for > both front end and backend (though in both cases multiple executables), > this distinction is not significant. But it is. While the union of the sources for each target architecture is the GCC source tree, the difference of the sources for each target architecture is not the null set. -- Ronald Cole E-mail: ronald@ridgecrest.ca.us President, CEO zippy@ecst.csuchico.edu Forte International Fax: (619) 384-2346 My PGP fingerprint: E9 A8 E3 68 61 88 EF 43 56 2B CE 3E E9 8F 3F 2B