__eprintf problem in f77
Andrew Zabolotny
bit@freya.etu.ru
Tue Dec 9 02:57:00 GMT 1997
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
More information about the Gcc
mailing list