Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ll-xn!ames!amdcad!cae780!daniels From: daniels@cae780.TEK.COM (Scott Daniels) Newsgroups: comp.lang.c Subject: Re: portability and standards Message-ID: <4154@cae780.TEK.COM> Date: Fri, 26-Jun-87 19:58:09 EDT Article-I.D.: cae780.4154 Posted: Fri Jun 26 19:58:09 1987 Date-Received: Sat, 27-Jun-87 12:37:51 EDT References: <8051@brl-adm.ARPA> Reply-To: daniels@cae780.UUCP (Scott Daniels) Organization: Tektronix, Inc., Beaverton, OR. Lines: 20 In article <8051@brl-adm.ARPA> DRIEHUIS%HLERUL5.BITNET@wiscvm.wisc.EDU writes: >> The Primos C compiler insists that every file have an actual entry point. >> (I.e., you can't have a file only consisting of definitions.) >VMS C has exactly the same bug. It took me quite some time to find this >out, because for some reason the compiler nor the linker complained >about what must have been an unresolved external in some source file. In VMS-C "extern"s are considered implemented as labelled common (variable name = label). Therefore, there is "no such thing" as an undefined extern (an extern statement will be sufficient to create storage). In addition, their linker will not pull things out of libraries based simply on data references. This combination of behaviors might make you think the modules must have code, but it is not true. VMS-C does allow data-only modules. FROM: Scott Daniels, Tektronix CAE 5302 Betsy Ross Drive, Santa Clara, CA 95054 UUCP: tektronix!teklds!cae780!daniels {ihnp4, decvax!decwrl}!amdcad!cae780!daniels {nsc, hplabs, resonex, qubix, leadsv}!cae780!daniels