Maybe someone decided that SIGSEGV is the right signal after all for an mprotect() violation (which Rackets catches as a write barrier) instead of SIGBUS.
In "src/racket/gc2/sighand.c" around line 137: # if defined(__FreeBSD__) && (__FreeBSD_version < 700000) # define USE_SIGACTON_SIGNAL_KIND SIGBUS # else # define USE_SIGACTON_SIGNAL_KIND SIGSEGV # endif try dropping the "defined(__FreeBSD__) &&". At Mon, 09 May 2011 09:09:18 -0300, David Bremner wrote: > On Fri, 29 Apr 2011 08:46:32 -0600, Matthew Flatt <mfl...@cs.utah.edu> wrote: > > I've pushed fixes for kFreeBSD, so let me know if you encounter further > > problems. > > It seems the updates (gcc?) on kFreeBSD (i386 and amd64) cause a > regression: I am getting a segmentation fault from "make gracket3m" with > current git master. I also got the same segmentation fault in an old > version of the code (5.1.1+the previous kFreeBSD patches), where both > versions compiled fine before this upgrade. > > I attach the stack trace. If it helps, this is with gcc 4.6.1. > > #0 scheme_gmp_tls_unload (s=0x8019c9930, data=0x0) at ./gmp/gmp.c:5813 > #1 0x00000000005db0fe in done_with_GC () at ./../src/thread.c:7591 > #2 0x000000000060fb16 in garbage_collect (gc=<value optimized out>, > force_full=<value optimized out>, switching_master=<value optimized out>, > lmi=<value optimized out>) at ./newgc.c:4433 > #3 0x0000000000613aaa in allocate_slowpath (s=<value optimized out>) at > ./newgc.c:1182 > #4 allocate (s=<value optimized out>) at ./newgc.c:1220 > #5 allocate (s=<value optimized out>) at ./newgc.c:1328 > #6 GC_malloc_one_tagged (s=<value optimized out>) at ./newgc.c:1328 > #7 0x0000000000613dd4 in GC_malloc_pair (car=<value optimized out>, > cdr=<value optimized out>) at ./newgc.c:1292 > #8 0x00000000004f0a45 in do_add_simple_require_renames (rn=0x8019ca720, > required=0x8019ca690, orig_src=0x8019ca790, im=0x8019c8a08, > pt=0x8019ca5b8, > idx=0x8019c8580, marshal_phase_index=0x1, src_phase_index=0x1, > can_override=1) > at ./../src/module.c:2401 > #9 0x00000000004f0d70 in add_simple_require_renames (orig_src=0x8019ca790, > rn_set=0x8019ca820, tables=0x8019ca7d0, im=0x8019c8a08, idx=0x8019c8580, > import_shift=0x1, can_override=1, only_export_phase=0x0) at > ./../src/module.c:2458 > #10 0x0000000000501bbc in do_module_begin (form=0x8019caa88, env=0x8019ca920, > rec=0x7fffffffb630, drec=0) at ./../src/module.c:6185 > #11 0x0000000000627c46 in scheme_compile_expand_expr (form=0x8019caa88, > env=0x8019ca920, > rec=0x7fffffffb630, drec=<value optimized out>, app_position=0) > at ./../src/compile.c:4159 > #12 0x00000000004fa9f3 in do_module (form=0x8019cae98, env=0x8019cab08, > rec=0x7fffffffb630, drec=0) at ./../src/module.c:5665 > #13 0x0000000000627c46 in scheme_compile_expand_expr (form=0x8019cae98, > env=0x8019cab08, > rec=0x7fffffffb630, drec=<value optimized out>, app_position=0) > at ./../src/compile.c:4159 > #14 0x0000000000443552 in compile_k () at ./../src/eval.c:3683 > #15 0x0000000000465faa in scheme_top_level_do_worker (k=0x442fc0 <compile_k>, > eb=<value optimized out>, new_thread=0, dyn_state=0x0) at > ./../src/fun.c:1123 > #16 0x00000000004492b4 in scheme_default_compile_handler (argc=<value > optimized > out>, > argv=0x7fffffffbd10) at ./../src/eval.c:4273 > #17 0x000000000044da19 in scheme_do_eval (obj=0x930610, num_rands=2, > rands=0x7fffffffbd10, get_value=1) at ./../src/eval.c:2351 > #18 0x000000000045e1de in apply_k () at ./../src/fun.c:1284 > #19 0x0000000000465faa in scheme_top_level_do_worker (k=0x45e150 <apply_k>, > eb=<value optimized out>, new_thread=0, dyn_state=0x0) at > ./../src/fun.c:1123 > #20 0x0000000000442d94 in call_compile_handler (form=<value optimized out>, > immediate_eval=<value optimized out>) at ./../src/eval.c:3537 > #21 0x0000000000443a50 in compile_k () at ./../src/eval.c:3669 > #22 0x0000000000465faa in scheme_top_level_do_worker (k=0x442fc0 <compile_k>, > eb=<value optimized out>, new_thread=0, dyn_state=0x0) at > ./../src/fun.c:1123 > #23 0x000000000044f413 in scheme_default_eval_handler (argc=<value optimized > out>, > argv=0x8019cebb0) at ./../src/eval.c:4260 > #24 0x000000000044da19 in scheme_do_eval (obj=0x9305d0, num_rands=1, > rands=0x8019cebb0, > get_value=-1) at ./../src/eval.c:2351 > #25 0x000000000044bf83 in scheme_do_eval (obj=0x8019cb040, num_rands=0, > rands=0x0, > get_value=-1) at ./../src/eval.c:2764 > #26 0x000000000046d014 in scheme_finish_apply_for_prompt (prompt=0x0, > _prompt_tag=<value optimized out>, proc=0x8019cb040, argc=0, argv=0x0) > at ./../src/fun.c:5481 > #27 0x000000000046d233 in scheme_apply_for_prompt (prompt=<value optimized > out>, > prompt_tag=<value optimized out>, proc=<value optimized out>, > argc=<value optimized out>, argv=<value optimized out>) at > ./../src/fun.c:5560 > #28 0x0000000000472711 in call_with_prompt (in_argc=<value optimized out>, > in_argv=0x7fffffffc8f0) at ./../src/fun.c:5885 > #29 0x000000000044da19 in scheme_do_eval (obj=0x91f9a0, num_rands=3, > rands=0x7fffffffc8f0, get_value=-1) at ./../src/eval.c:2351 > #30 0x0000000000467002 in do_call_with_prompt (f=<value optimized out>, > data=<value optimized out>, multi=1, top_level=0) at ./../src/fun.c:6077 > #31 0x000000000046d3d5 in do_apply_with_prompt (rator=0x9305d0, num_rands=1, > rands=0x7fffffffcaa8, multi=1, top_level=0) at ./../src/fun.c:1403 > #32 0x000000000055272e in do_load_handler (data=<value optimized out>) > at ./../src/portfun.c:4284 > #33 0x000000000046fce1 in scheme_dynamic_wind (pre=0, act=0x552430 > <do_load_handler>, > post=0x54ecc0 <post_load_handler>, jmp_handler=0, data=0x8019cb2b0) > at ./../src/fun.c:7743 > #34 0x0000000000552367 in default_load (argc=<value optimized out>, > argv=0x8019a9db8) > at ./../src/portfun.c:4400 > #35 0x0000000800aa19aa in ?? () > #36 0x00007fffffffcd80 in ?? () > #37 0x00000008019a9ea0 in ?? () > #38 0x0000000000000005 in ?? () > #39 0x00000008015771a8 in ?? () > #40 0x00000000ffffffff in ?? () > #41 0x0000000000000000 in ?? () _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev