This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
__eprintf problem in f77
- To: "egcs at cygnus dot com" <egcs at cygnus dot com>
- Subject: __eprintf problem in f77
- From: "Andrew Zabolotny" <bit at freya dot etu dot ru>
- Date: Tue, 09 Dec 97 13:59:10 +0400
- Reply-To: "Andrew Zabolotny" <bit at freya dot etu dot ru>
There was a problem with __eprintf before in cc1/cc1plus, then it disappeared somewhere in last patches before
egcs-1.0 release. But it is still present in the f771 compiler.
problem:
when building the entire bulk of compilers, make stops at gcc/f/fini.c with the ld diagnostics
"undefined symbol __eprintf in fini.o"
cause:
gcc/assert.h defines assert() to call __eprintf when assertion fails.
fini.c includes some .h file which in turn includes assert.h.
__eprintf is not present in default libraries when using cc
solution:
define assert() in fini.c same way as in, for example, f/com.c, i.e:
/* This is used by the `assert' macro. It is provided in libgcc.a,
which `cc' doesn't know how to link. Note that the C++ front-end
no longer actually uses the `assert' macro (instead, it calls
my_friendly_assert). But all of the back-end files still need this. */
void
__eprintf (string, expression, line, filename)
#ifdef __STDC__
const char *string;
const char *expression;
unsigned line;
const char *filename;
#else
char *string;
char *expression;
unsigned line;
char *filename;
#endif
{
fprintf (stderr, string, expression, line, filename);
fflush (stderr);
abort ();
}
Greetings,
_\ndy@teamOS/2