Add the following to your code in some configuration .h file. This will allow you to use signal() in the SA_OLDSTYLE of handling, but also produce full-size core files.
#include <stdio.h> 
#include <sys/types.h> 
#include <sys/signal.h> 
#define signal  SIGNAL 
void (*SIGNAL(int signo, void (*fcn)(int))) 
{ 
        struct  sigaction       act, oact; 
        act.sa_handler = fcn; 
        sigemptyset(&(act.sa_mask)); 
        act.sa_flags = SA_FULLDUMP | SA_OLDSTYLE; 
        if (sigaction(signo, &act, &oact)) 
                return(SIG_ERR); 
        else 
                return(oact.sa_handler); 
} 
/*********************************************************************/ 
main() 
{ 
        int     sigcatch(); 
        signal(SIGQUIT, sigcatch); 
        for (;;) sleep(1);              /* sleep forever */ 
                        /* send two SIGQUIT's to the process and 
                        ** the second one will produce the core file 
                        */ 
} 
int sigcatch() 
{ 
        printf("Caught the signal"); 
}