delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
content-class: | urn:content-classes:message |
MIME-Version: | 1.0 |
X-MimeOLE: | Produced By Microsoft Exchange V6.0.6249.0 |
Subject: | RE: 1.3.12: gcc bug: variable named "end" |
Date: | Sat, 19 Oct 2002 10:57:37 -0400 |
Message-ID: | <83040F98B407E6428FEC18AC720F5D73E50076@exchange.tropicnetworks.com> |
X-MS-Has-Attach: | |
X-MS-TNEF-Correlator: | |
From: | "Rolf Campbell" <rcampbell AT tropicnetworks DOT com> |
To: | <cygwin AT cygwin DOT com> |
X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id g9JEvjc13308 |
Doesn't this mean that gcc is not a true ANSI compiler? Shouldn't that variable be "__end" or something to conform with ANSI rules? -R > -----Original Message----- > From: Randall R Schulz [mailto:rrschulz AT cris DOT com] > Sent: Saturday, October 19, 2002 1:53 AM > To: cygwin AT cygwin DOT com > Subject: Re: 1.3.12: gcc bug: variable named "end" > > > > As it has been since time immemorial in compilers with a Unix > lineage or > patterned after compilers of that lineage. Clearly GCC is > such a compiler. > > The linker binds the symbol "end" to the first unused address > in the linked > program. Some linkers also define "etext" and "edata" to > indicate the end > of the program text (its instructions) and of the initialized > data, resp. > > This program: > > -==--==--==--==--==--==--==--==--==--==--==- > #include <stdio.h> > > extern int main(int argc, char **argv); > > extern int end; > > int > main(int argc, char **argv) > { > printf("etext=%#lx\n"); > > return 0; > } > -==--==--==--==--==--==--==--==--==--==--==- > > when compiled and run on my Cygwin system prints this: > > end=0x407000 > > > Note the "extern" storage class on the declaration of "end." > It's supplied > elsewhere (by the linker, i.e.). > > > Randall Schulz > Mountain View, CA USA > > > At 22:16 2002-10-18, you wrote: > >CYGWIN_NT-5.1 X22CHIKAYAMA 1.3.12(0.54/3/2) 2002-07-06 02:16 i686 > >unknown gcc 2.95.3-5 > > > >The following program causes a segmentation fault. > >--- > >int end; > >main() { end = 0; } > >--- > >Seems that the problem is with the variable name "end". > >In the object code tries to store in some invalid address. Variables > >with other names, of course, does not cause this. > > > >- Takashi Chikayama > > > -- > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > Bug reporting: http://cygwin.com/bugs.html > Documentation: http://cygwin.com/docs.html > FAQ: http://cygwin.com/faq/ > > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |