[gambit-list] problems with clang

Alex Silva asandroq at gmail.com
Thu Apr 7 05:26:01 EDT 2016


Hallo,

I configured gambit on Ubuntu 14.04 with:

```
./configure --enable-single-host --disable-gnu-gcc-specific-options
--enable-c-opt=-O1 CC='/opt/llvm-3.8/bin/clang -g -save-temps
-fsanitize=alignment -fsanitize-trap=alignment -Wno-parentheses-equality'
```

The `sanitize-trap` flag will make the program crash at the first load
of a misaligned memory access.

Then running gsi with gdb:

```
$ gdb ./gsi/gsi
>>> r
Program received signal SIGILL, Illegal instruction.
trampoline (___ps=<optimized out>) at setup.c:2594
2594	  ___SCMOBJ ___pc = ___ps->pc;
```

Source:
```
2589 ___HIDDEN void trampoline
2590    ___P((___processor_state ___ps),
2591         (___ps)
2592 ___processor_state ___ps;)
2593 {
2594   ___SCMOBJ ___pc = ___ps->pc;    <~~~~~~~~~~ CRASH HERE
2595
2596   for (;;)
2597     {
2598 #define CALL_STEP ___pc = ___LABEL_HOST(___pc)(___ps)
```

Full stack:
```
#0  trampoline (___ps=<optimized out>) at setup.c:2594
        ___pc = <optimized out>
#1  0x000000000049d08a in ___call (nargs=<optimized out>, proc=4209,
stack_marker=12067313) at setup.c:2720
        ___jbuf = {
          buf = {[0] = {
              __jmpbuf = {[0] = 10963953, [1] = 1, [2] =
140737488345024, [3] = 10963968, [4] = 11017649, [5] = 11019761, [6] =
8, [7] = 3},
              __mask_was_saved = 8020980,
              __saved_mask = {
                __val = {[0] = 12067313, [1] = 12012728, [2] = 4837514,
[3] = 219043398146, [4] = 43, [5] = 0 <repeats 11 times>}
              }
            }}
        }
        ___fp = <optimized out>
        ___r1 = <optimized out>
        ___r2 = 11017649
        ___r3 = 10963968
        ___err = <optimized out>
#2  0x000000000049d1bc in ___run (thunk=<optimized out>) at setup.c:2754
        ___jbuf = <optimized out>
        ___err = <optimized out>
        marker = -140737339487617
#3  0x000000000049d733 in ___setup (setup_params=<optimized out>) at
setup.c:4225
        err = 0
        mol = <optimized out>
        module_descrs = <optimized out>
#4  0x00000000004ba400 in ___main (linker=<optimized out>) at main.c:723
        argv = <optimized out>
        current_argv = <optimized out>
        rpc_server_addr = <optimized out>
        debug_settings = <optimized out>
        standard_level = 1
        live_percent = <optimized out>
        max_heap_len = <optimized out>
        min_heap_len = <optimized out>
        remote_dbg_addr = <optimized out>
        gambopt = <optimized out>
        gambitdir_map = <optimized out>
        runtime_options = <optimized out>
        script_line = <optimized out>
        extra_arg_pos = <optimized out>
        e = <optimized out>
        gambitdir = <optimized out>
        options_source = 3
        setup_params = {
          version = 408005,
          argv = 0xb7a010,
          min_heap = 0,
          max_heap = 0,
          live_percent = 0,
          adjust_heap_hook = 0x0,
          display_error = 0x0,
          fatal_error = 0x0,
          standard_level = 0,
          debug_settings = 1089,
          file_settings = 0,
          terminal_settings = 0,
          stdio_settings = 0,
          gambitdir = 0x0,
          gambitdir_map = 0x0,
          remote_dbg_addr = 0x0,
          rpc_server_addr = 0x0,
          linker = 0x49c330 <____20___gsi__>,
          reset_argv0 = {[0] = 0},
          reset_argv = {[0] = 0x7fffffffdad8, [1] = 0x0}
        }
#5  0x00000000004aad5f in ___main_char (argc=<optimized out>,
argv=<optimized out>, linker=0x49c330 <____20___gsi__>, script_line=0x0)
at os_base.c:413
        result = <optimized out>
#6  0x00007ffff7329ec5 in __libc_start_main (main=0x49c340 <main>,
argc=1, argv=0x7fffffffdc48, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffdc38) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {
          cancel_jmp_buf = {[0] = {
              jmp_buf = {[0] = 0, [1] = -3871395014843174881, [2] =
4818192, [3] = 140737488346176, [4] = 0, [5] = 0, [6] =
3871395016067641375, [7] = 3871376987842408479},
              mask_was_saved = 0
            }},
          priv = {
            pad = {[0] = 0x0, [1] = 0x0, [2] = 0x7a5830
<__libc_csu_init>, [3] = 0x7fffffffdc48},
            data = {
              prev = 0x0,
              cleanup = 0x0,
              canceltype = 8017968
            }
          }
        }
        not_first_call = <optimized out>
#7  0x0000000000498539 in _start ()
```

Cheers,
-- 
-alex
http://unendli.ch/



More information about the Gambit-list mailing list