JonY wrote: > What is your link test checking and how does it fail?
My m4 macro is really simple, TRY_LINK a simple program with the stack protect CFLAGS: AC_DEFUN([XIPH_GCC_STACK_PROTECTOR], [AC_LANG_ASSERT(C) AC_MSG_CHECKING([if $CC supports stack smash protection]) xiph_stack_check_old_cflags="$CFLAGS" SSP_FLAGS="-fstack-protector --param ssp-buffer-size=4" CFLAGS=$SSP_FLAGS AC_TRY_LINK([ #include <stdio.h> ], [puts("Hello, World!"); return 0;], AC_MSG_RESULT([yes]) CFLAGS="$xiph_stack_check_old_cflags $SSP_FLAGS", AC_MSG_RESULT([no]) CFLAGS="$xiph_stack_check_old_cflags" ) ])# XIPH_GCC_STACK_PROTECTOR For the Linux -> Windows cross compile for instance, this detects SSP as working, but when I compile it fails with: CC stream_encoder_framing.lo CC window.lo CCLD libFLAC.la Creating library file: .libs/libFLAC.dll.a .libs/metadata_iterators.o:metadata_iterators.c:(.text+0x8d): undefined reference to `___stack_chk_guard' .libs/metadata_iterators.o:metadata_iterators.c:(.text+0x121): undefined reference to `___stack_chk_guard' .libs/metadata_iterators.o:metadata_iterators.c:(.text+0x14f): undefined reference to `___stack_chk_fail' The odd thinh is, if I use this MinGW cross-compiler to compile a small program, it works perfectly. The problem aboce is related to building a Windows DLL. On FreeBSD everything goes fine until it tries to link test_libFLAC++: Making all in test_libFLAC++ CXX decoders.o CXX encoders.o CXX main.o CXX metadata.o CXX metadata_manip.o CXX metadata_object.o CXXLD test_libFLAC++ /usr/home/erikd/flac/src/libFLAC/.libs/libFLAC.so: undefined reference to `__stack_chk_fail_local' *** [test_libFLAC++] Error code 1 Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ flac-dev mailing list flac-dev@xiph.org http://lists.xiph.org/mailman/listinfo/flac-dev