This caught my eye while building with V=1: /bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu11 -Wall -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith -Wswitch-enum -fno-strict-aliasing -fwrapv -m64 -march=native -export-dynamic -no-undefined -module -m64 -Wl,-rpath,/usr/local/lib64 -L/usr/local/lib64 -Wl,--enable-new-dtags -o guile-readline.la -rpath /usr/local/lib64/guile/2.2/extensions readline.lo -L/usr/local/lib64 -lreadline -R/usr/local/lib64 -lncurses ../libguile/libguile-2.2.la ../lib/libgnu.la -lcrypt -ldl -lpthread -lm
-fwrapv is used by illegal programs to try to get them to run. Also see Ian Lance Taylor's blog at https://www.airs.com/blog/archives/120. It would probably be a good idea to remove the undefined behavior rather than compiling with -fwrapv. If its not clear where the undefined behavior is, then -fsanitize=undefined can usually pinpoint them (or most of them). Autotool projects can be kind of tricky. CFLAGS=CXXFLAGS="-fsanitize=undefined" and LDFLAGS="-lubsan" usually works (it looks like it works Guile). Then, run the self tests and generate the findings. -fno-strict-aliasing is another flag that's usually indicates code with room for improvement. Jeff