From c770ac2b84ecd8edb3ab38256cba793e25f91923 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Mon, 2 Jun 2003 05:05:49 +0000 Subject: [PATCH] ggc-page.c (init_ggc): Give better diagnostics on failure to open /dev/zero. * ggc-page.c (init_ggc): Give better diagnostics on failure to open /dev/zero. * toplev.c (crash_signal): Reset handling for received signal to SIG_DFL. From-SVN: r67323 --- gcc/ChangeLog | 103 ++++++++++++++++++++++++++----------------------- gcc/ggc-page.c | 2 +- gcc/toplev.c | 4 +- 3 files changed, 59 insertions(+), 50 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0377b610d50..dceb27f3c5e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-06-01 Zack Weinberg + + * ggc-page.c (init_ggc): Give better diagnostics on failure to + open /dev/zero. + * toplev.c (crash_signal): Reset handling for received signal + to SIG_DFL. + 2003-06-02 Ben Elliston * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare. @@ -86,9 +93,9 @@ 2003-06-01 Andreas Jaeger - * toplev.c: Use ISO C90 prototypes. + * toplev.c: Use ISO C90 prototypes. - * toplev.h: Use ISO C90 prototypes. + * toplev.h: Use ISO C90 prototypes. * genrecog.c: Use ISO C90 prototypes. (nodes_identical): Correct declaration to match prototype. @@ -160,53 +167,53 @@ 2003-06-01 Aldy Hernandez PR/9680 - * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require - TARGET_SPE for SPE_VECTOR_MODE. + * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require + TARGET_SPE for SPE_VECTOR_MODE. 2003-05-31 Aldy Hernandez - * toplev.c (botch): Remove. - (do_abort): Remove. - (set_Wunused): Comment. - (set_Wextra): Comment. - Remove ^L's. - (rest_of_compilation): Factor out common code into functions. - (rest_of_handle_inlining): New. - (rest_of_handle_ssa): New. - (rest_of_handle_cse): New. - (rest_of_handle_gcse): New. - (rest_of_handle_loop_optimize): New. - (rest_of_handle_jump_bypass): New. - (rest_of_handle_sibling_calls): New. - (rest_of_handle_null_pointer): New. - (rest_of_handle_addresof): New. - (rest_of_handle_flow): New. - (rest_of_handle_branch_prob): New. - (rest_of_handle_if_conversion): New. - (rest_of_handle_tracer): New. - (rest_of_handle_loop2): New. - (rest_of_handle_cse2): New. - (rest_of_handle_life): New. - (rest_of_handle_combine): New. - (rest_of_handle_if_after_combine): New. - (rest_of_handle_regmove): New. - (rest_of_handle_sched): New. - (rest_of_handle_old_regalloc): New. - (rest_of_handle_new_regalloc): New. - (rest_of_handle_regrename): New. - (rest_of_handle_reorder_blocks): New. - (rest_of_handle_sched2): New. - (rest_of_handle_new_regalloc): New. - (rest_of_handle_old_regalloc): New. - (rest_of_handle_regrename): New. - (rest_of_handle_reorder_blocks): New. - (rest_of_handle_stack_regs): New. - (rest_of_handle_machine_reorg): New. - (rest_of_handle_delay_slots): New. - (rest_of_handle_final): New. - - * toplev.h (botch): Remove prototype. - (do_abort): Same. + * toplev.c (botch): Remove. + (do_abort): Remove. + (set_Wunused): Comment. + (set_Wextra): Comment. + Remove ^L's. + (rest_of_compilation): Factor out common code into functions. + (rest_of_handle_inlining): New. + (rest_of_handle_ssa): New. + (rest_of_handle_cse): New. + (rest_of_handle_gcse): New. + (rest_of_handle_loop_optimize): New. + (rest_of_handle_jump_bypass): New. + (rest_of_handle_sibling_calls): New. + (rest_of_handle_null_pointer): New. + (rest_of_handle_addresof): New. + (rest_of_handle_flow): New. + (rest_of_handle_branch_prob): New. + (rest_of_handle_if_conversion): New. + (rest_of_handle_tracer): New. + (rest_of_handle_loop2): New. + (rest_of_handle_cse2): New. + (rest_of_handle_life): New. + (rest_of_handle_combine): New. + (rest_of_handle_if_after_combine): New. + (rest_of_handle_regmove): New. + (rest_of_handle_sched): New. + (rest_of_handle_old_regalloc): New. + (rest_of_handle_new_regalloc): New. + (rest_of_handle_regrename): New. + (rest_of_handle_reorder_blocks): New. + (rest_of_handle_sched2): New. + (rest_of_handle_new_regalloc): New. + (rest_of_handle_old_regalloc): New. + (rest_of_handle_regrename): New. + (rest_of_handle_reorder_blocks): New. + (rest_of_handle_stack_regs): New. + (rest_of_handle_machine_reorg): New. + (rest_of_handle_delay_slots): New. + (rest_of_handle_final): New. + + * toplev.h (botch): Remove prototype. + (do_abort): Same. 2003-05-31 Neil Booth @@ -453,8 +460,8 @@ -lthread to -lpthread. 2003-05-28 Eric Botcazou - Bruce Korb - Arno Klaassen + Bruce Korb + Arno Klaassen * fixinc/inclhack.def: Add missing declaration of getpagesize() to unistd.h on Solaris 2.5.1. diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c index 51ea7f0d437..ec1a583574b 100644 --- a/gcc/ggc-page.c +++ b/gcc/ggc-page.c @@ -1287,7 +1287,7 @@ init_ggc () #ifdef HAVE_MMAP_DEV_ZERO G.dev_zero_fd = open ("/dev/zero", O_RDONLY); if (G.dev_zero_fd == -1) - abort (); + internal_error ("open /dev/zero: %m"); #endif #if 0 diff --git a/gcc/toplev.c b/gcc/toplev.c index 7235d95f447..6a6e076cd54 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1758,11 +1758,13 @@ floor_log2_wide (unsigned HOST_WIDE_INT x) } /* Handler for fatal signals, such as SIGSEGV. These are transformed - into ICE messages, which is much more user friendly. */ + into ICE messages, which is much more user friendly. In case the + error printer crashes, reset the signal to prevent infinite recursion. */ static void crash_signal (int signo) { + signal (signo, SIG_DFL); internal_error ("%s", strsignal (signo)); } -- 2.30.2