The function that segfaults is one whose signature changed recently (I added the s7_scheme* argument), so my first guess is that you have an old object file somewhere. I would make clean rm *.o rm *.so rm libc_s7.c make and see if it's ok. I think you can see what is actually being loaded via strace -e trace=file ./snd