On 7/21/21 2:44 PM, Sebastian Huber wrote:
Hello,
while testing this patch
https://www.google.com/search?client=firefox-b-e&q=gcc+enable_runtime_checking
I noticed that __gcov_info_to_gcda() uses abort(). This is due to (from
tsystem.h):
#ifdef ENABLE_RUNTIME_CHECKING
#define gcc_assert(EXPR) ((void)(!(EXPR) ? abort (), 0 : 0))
#else
/* Include EXPR, so that unused variable warnings do not occur. */
#define gcc_assert(EXPR) ((void)(0 && (EXPR)))
#endif
In tsystem.h there is this if inhibit_libc is defined:
#ifndef abort
extern void abort (void) __attribute__ ((__noreturn__));
#endif
Who is supposed to define abort here optionally? Can this be defined for
example by a target configuration header like gcc/config/rtems.h?
Apparently, it's a hairy revision:
https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=7e7de68b8938
What happens now on RTERM where you have inhibit_libc set to true? Do you end
up with an undefined symbol?
Cheers,
Martin