Mark H Weaver <m...@netris.org> writes: > Are you passing any optimization flags? There are some, such as -Ofast, > -ffast-math, -funsafe-math-optimizations, -fno-signed-zeros, > -fassociative-math, and maybe some others that might result in this bug.
I don't pass any flags to ./configure or make, other than --prefix to ./configure. I have several *PATH environment variables exported, but I guess that wouldn't be relevant. > Otherwise, I suspect that there's some optimization bug in the compiler > you're using. What exact version of GCC are you using? These problems > don't seem to be happening with GCC 4.8.2 on GNU/Linux systems. bash-3.2$ gcc-mp-4.8 --version gcc-mp-4.8 (MacPorts gcc48 4.8.2_0) 4.8.2 That aside, I noticed that passing CFLAGS+="-g" to make ends up inhibiting the passing of -O2 to gcc-mp-4.8, so surely the issue lies somewhere in there. The -g flag is passed by default anyway, so the only effect of the CFLAGS+="-g" on make is to inhibit -O2 after all. I also figured out the problem with debug symbols: apparently the ld on OS X doesn't carry over debug info from .o files to a generated .dylib file. Instead, one later runs dsymutil(1) on the .dylib file, which gathers the debug info from the .o files and puts them into a .dSYM directory; gdb even loads this automatically when it's in the standard location. The next roadblock I hit is that when I run gdb on the guile executable, it doesn't seem to realize that the libguile dylib is loaded, so still lacks the debug symbols from it. (When I enter "info sharedlibrary" it says "No shared libraries loaded at this time" although the Guile REPL and all runs, so libguile is obviously loaded.) I'll continue tomorrow if I have time again at work. Taylan