[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