Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site rlgvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!panda!talcott!harvard!seismo!rlgvax!guy From: guy@rlgvax.UUCP (Guy Harris) Newsgroups: net.lang.c Subject: Re: Can #define `token-string' be empty? Message-ID: <543@rlgvax.UUCP> Date: Sat, 2-Mar-85 13:22:02 EST Article-I.D.: rlgvax.543 Posted: Sat Mar 2 13:22:02 1985 Date-Received: Mon, 4-Mar-85 06:55:13 EST References: <151@cci-bdc.UUCP> <282@cmu-cs-k.ARPA>, <363@sftri.UUCP> <5124@utzoo.UUCP> Organization: CCI Office Systems Group, Reston, VA Lines: 18 > > This is not necessary on System V release 2 C compiler. You can omit extern > > everywhere. ld will be able to handle those constructs. > > It is necessary for portability, however -- something AT&T cares less > and less about these days. AT&T to the contrary, Vr2 is not the whole > world. Thank God. What you meant to say was "AT&T to the contrary, UNIX is not the whole world." S3, 4.xBSD, and even your beloved V7 also permitted you to omit 'extern' everywhere; all AT&T did in S5R2 (possibly S5R1; I don't know whether S5R1 had the 'extern' restriction, or whether it was in UNIX 5.0 but taken out at the last minute when it was issued to the rest of the world) was to take *out* the restriction that had been put into the 5.0 linker, because it, to coin a phrase, "broke many existing programs". Of course, if those programs were ever intended to run on a non-UNIX system, they were already broken... Guy Harris {seismo,ihnp4,allegra}!rlgvax!guy