> * Similarly to IRIX 6, there was a mismatch in ada/init.c for the type > of the signal handler installed with sigaction. g++ also doesn't like > arithmetic on void * ;-)
I'm a bit puzzled as to why the C compiler isn't complaining, and what error message the C++ compiler is generating, can you clarify? Why is the code accepted by the C compiler in the first place? > gcc/ada: > PR bootstrap/49794 > * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler): > Assign to act.sa_sigaction. > * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast > current->return_address to char * before arithmetic. The tracebak.c part is OK. > diff --git a/gcc/ada/init.c b/gcc/ada/init.c > --- a/gcc/ada/init.c > +++ b/gcc/ada/init.c > @@ -1031,7 +1031,7 @@ __gnat_install_handler (void) > exceptions. Make sure that the handler isn't interrupted by another > signal that might cause a scheduling event! */ > > - act.sa_handler = __gnat_error_handler; > + act.sa_sigaction = __gnat_error_handler; > act.sa_flags = SA_NODEFER | SA_RESTART | SA_SIGINFO; > sigemptyset (&act.sa_mask); >