delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/05/14/17:50:53

From: "Andrew Crabtree" <andrewc AT rosemail DOT rose DOT hp DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: BUG in gcc ?
Date: Thu, 14 May 1998 09:48:55 -0700
Organization: Hewlett-Packard, Roseville
Lines: 58
Message-ID: <6jf79l$8gv$1@rosenews.rose.hp.com>
References: <1 DOT 5 DOT 4 DOT 16 DOT 19980514164848 DOT 2e2ff3da AT um2gess0>
NNTP-Posting-Host: ros51675cra.rose.hp.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Michel JULIER wrote in message
<1 DOT 5 DOT 4 DOT 16 DOT 19980514164848 DOT 2e2ff3da AT um2gess0>...
>with  gcc -g program.c
>I get the following message:
>  d:/djgpp/tmp/RH1aaaaa/ccbag1ji: Assembler messages:
>  d:/djgpp/tmp/RH1aaaaa/ccbag1ji:33: Fatal error: C_EFCN symbol out of
scope

>I get that with gcc2.7.2.1 or gcc2.8.1, with as2.7.2.1 or as2.8.1, for
>DJGPP with MS-DOS 6.20 + Win3.11.

Sounds like another coff/debug limitation.

>  -if you use gcc2.7.2 for sparc-sun-solaris2.5 or
>              gcc2.7.2 for sparc-sun-sunos4.1.3
>  -if you use (gcc-2.7.2,binutils-2.6.0.14) for Linux (according to HB
Broeker)

Neither of those use coff, this is a coff specific problem.

>So, I believe that this is a real bug. Am I the only one to see it?

I'm undecided if this is a real bug or not.  It may simply be another
limitation of the coff debug format (which really sucks btw, as you found
out with your #include stuff not working properly).  There is no easy way to
redefine symbols in debug format.  Note that you can compile with -gstabs
and things work OK.  If you want a definitive answer, then do the following.

1) Make a message with your small source .c file, and then include the
output program.s of 'gcc -S -g program.c' and post the error message you get
when you compile normally.
2) Post this message to gnu.utils.bug and make the topic 'possible bug in
gas 2.81' (it also happens with 2.9.x btw)
3) Wait for Ian Lance Taylor to respond with an answer, he is pretty good
about responding.

If you want my guesses here they are -

This is not a problem with gcc, but may possibly be a problem in the
assembler (unlikely though).
C_EFCN is an internal #define used by binutils that just happens to show up
in the error message.  It means 'physical end of function'.  The reason you
are getting the error is that the assembler is reading the debug stuff for
your common variable, but it thinks that the name for that is already
associated with a function.  So, it goes to find what function it is
currently in to end it, but the function has already been ended.  So, you
hit an error condition in the assembler.

My guess as to the response from one of the real gurus 'limitation of coff
debug format'.

HTH

Andy



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019