--- rpl/src/rpl.h 2016/08/26 08:57:56 1.299 +++ rpl/src/rpl.h 2017/06/29 14:54:42 1.306 @@ -1,7 +1,8 @@ +#define DEBUG_ERREURS /* ================================================================================ - RPL/2 (R) version 4.1.25 - Copyright (C) 1989-2016 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.27 + Copyright (C) 1989-2017 Dr. BERTRAND Joël This file is part of RPL/2. @@ -64,6 +65,11 @@ # define SA_ONSTACK 0 #endif +#ifdef BROKEN_SIGSEGV +# undef HAVE_STACK_OVERFLOW_RECOVERY +# undef HAVE_SIGSEGV_RECOVERY +#endif + #define DEBUG_TRACE uprintf("[%d/%X] %s(%d)\n", \ getpid(), pthread_self(), __FILE__, __LINE__); #define TEST_ABSENCE_FICHIER(nom) \ @@ -215,7 +221,11 @@ # endif # include "sqlite3.h" -# include "sigsegv.h" + +# ifndef BROKEN_SIGSEGV +# include "sigsegv.h" +# endif + # ifdef OS2 // Bug de libsigsegv # undef HAVE_STACK_OVERFLOW_RECOVERY @@ -1033,6 +1043,7 @@ pid_t debug_fork(); #define BIN __RPL_BIN #define CHN __RPL_CHN #define CPL __RPL_CPL +#define EXT __RPL_EXT #define FCH __RPL_FCH #define FCT __RPL_FCT #define INT __RPL_INT @@ -1058,7 +1069,7 @@ pid_t debug_fork(); enum t_rplcas_commandes { RPLCAS_INTEGRATION = 0, RPLCAS_LIMITE }; -enum t_type { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST, +enum t_type { ADR = 0, ALG, BIN, CHN, CPL, EXT, FCH, FCT, INT, LST, MCX, MIN, MRL, MTX, NOM, NON, PRC, REC, REL, RPN, SCK, SLB, SPH, SQL, TBL, VCX, VIN, VRL }; @@ -1082,6 +1093,8 @@ enum t_type { ADR = 0, ALG, BIN, CHN, C Sans objet. Type C/Fortran : complex16 + EXT : type géré dans une bibliothèque externe. + FCH : descripteur de fichier (struct_fichier *). FCT : déclaration d'une fonction et de son nombre d'arguments @@ -1147,6 +1160,8 @@ enum t_type { ADR = 0, ALG, BIN, CHN, C typedef struct objet { enum t_type type; + integer8 extension_type; + void *descripteur_bibliotheque; volatile long nombre_occurrences; @@ -3149,7 +3164,10 @@ void interruption3(int signal); void interruption4(int signal); void interruption5(int signal); void interruption6(int signal); -void interruption_depassement_pile(int urgence, stackoverflow_context_t scp); +#ifdef HAVE_SIGSEGV_RECOVERY + void interruption_depassement_pile(int urgence, + stackoverflow_context_t scp); +#endif void inversion_matrice(struct_processus *s_etat_processus, struct_matrice *s_matrice); void lancement_daemon(struct_processus *s_etat_processus);