[racket-dev] Compile issue in src/racket/gc2/sighand.c

From: crdueck (crdueck at uwaterloo.ca)
Date: Fri Jul 20 19:05:26 EDT 2012

Hello all,

Recently, I tried to compile the unix source for racket-textual found 
here: 
http://download.racket-lang.org/racket-textual-5-2-1-src-unix-tgz.html 
using GCC 4.7.1 and kernel Linux 3.4.4-3 x86_64.

cd src && ./configure=/opt && make returned the following errors:

In file included from ./newgc.c:2436:0,
from ./gc2.c:15:
./sighand.c:63:35: warning: ‘struct siginfo’ declared inside parameter 
list [enabled by default]
./sighand.c:63:35: warning: its scope is only this definition or 
declaration, which is probably not what you want [enabled by default]
./sighand.c: In function ‘fault_handler’:
./sighand.c:65:15: error: dereferencing pointer to incomplete type
./sighand.c:67:13: error: dereferencing pointer to incomplete type
./sighand.c:71:9: error: dereferencing pointer to incomplete type
./sighand.c:87:46: error: dereferencing pointer to incomplete type
./sighand.c:87:74: error: dereferencing pointer to incomplete type
./sighand.c:103:11: error: dereferencing pointer to incomplete type
In file included from ./newgc.c:2436:0,
from ./gc2.c:15:
./sighand.c: In function ‘initialize_signal_handler’:
./sighand.c:227:42: warning: assignment from incompatible pointer type 
[enabled by default]
make[4]: *** [gc2.o] Error 1

i opened src/racket/gc2/sighand.c and looked at the offending line 63, 
where struct siginfo doesnt seem to be an actual struct. Scrolling down 
a bit more to line 131, i see that siginfo_t is a valid typedef so on 
line 63 i did s/struct siginfo/siginfo_t/ and the syntax errors 
disappeared.

make && sudo make install then ran fine and I used the racket executable 
to run a .rkt source file with no problems.

seems like a typedef might have been changed somewhere along the road?

Posted on the dev mailing list.