| version 1.6, 2025/03/24 04:13:11 | version 1.7, 2025/03/26 15:17:12 | 
| Line 24 | Line 24 | 
 | *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>. | *   along with FreeM.  If not, see <https://www.gnu.org/licenses/>. | 
 | * | * | 
 | *   $Log$ | *   $Log$ | 
 |  | *   Revision 1.7  2025/03/26 15:17:12  snw | 
 |  | *   Fall back to global-backed SSVNs when memory-backed globals fail in attempt to fix Tru64 | 
 |  | * | 
 | *   Revision 1.6  2025/03/24 04:13:11  snw | *   Revision 1.6  2025/03/24 04:13:11  snw | 
 | *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 | *   Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 | 
 | * | * | 
| Line 55 | Line 58 | 
 | symbol-table calls */ | symbol-table calls */ | 
 | /* #define DEBUG_SYM  */ | /* #define DEBUG_SYM  */ | 
 |  |  | 
 |  | short st_use_shm = FALSE; | 
 | short restoring_consts = FALSE; | short restoring_consts = FALSE; | 
 | int semid_symtab; | int semid_symtab; | 
 |  |  | 
| Line 137  void symtab_init (void) | Line 141  void symtab_init (void) | 
 | fprintf (stderr, "symtab_init:  allocating partition for memory-backed globals\r\n"); | fprintf (stderr, "symtab_init:  allocating partition for memory-backed globals\r\n"); | 
 |  |  | 
 | mbpartition = (char *) shm_alloc ((size_t) PSIZE + 2); | mbpartition = (char *) shm_alloc ((size_t) PSIZE + 2); | 
| NULLPTRCHK(mbpartition,"symtab_init"); | if (mbpartition != NULL) { | 
|  | shm_config->hdr->use_mb_globals = TRUE; | 
|  | } | 
|  | else { | 
|  | fprintf (stderr, "symtab_init:  falling back to global-backed structured system variables\r\n"); | 
|  | shm_config->hdr->use_mb_globals = FALSE; | 
|  | } | 
 |  |  | 
 | shm_config->hdr->partition = mbpartition; | shm_config->hdr->partition = mbpartition; | 
 |  |  | 
| Line 207  void symtab_shm (short action, char *key | Line 217  void symtab_shm (short action, char *key | 
 | unsigned long stptrs[128]; | unsigned long stptrs[128]; | 
 | register int i; | register int i; | 
 | char *old_partition = partition; | char *old_partition = partition; | 
 |  |  | 
 |  | if (shm_config->hdr->use_mb_globals == FALSE) { | 
 |  | symtab_bltin (action, key, data); | 
 |  | return; | 
 |  | } | 
 | partition = mbpartition; | partition = mbpartition; | 
 |  |  | 
 | writing_mb = TRUE; | writing_mb = TRUE; |