Hello Václav, * Václav Haisman wrote on Fri, Oct 15, 2010 at 08:56:51PM CEST: > I am having difficulty testing for compiler features like > __declspec(dllimport) and switches like -Wall or -Werror. > > The problem has started like this. I wanted to test compiler for > __declspec(dllimport) (for Windows) and if that fails for > __attribute__((visibility("default"))) (for *nix/GCC). With GCC this works > because it does support both, it supports __declspec(dllimport) even outside > Windows. But with e.g. Clang, this fails. Clang accepts the code of the > test-case with just warning like: > > "conftest.cpp:20:12: warning: 'dllexport' attribute ignored" > > The test-case passes but the compiler does not support the feature. > > I thought I could "fix" this by trying to test for -Werror first and giving > it to the compiler for the test-case. However there is the problem with > detecting/collecting -Werror equivalent switches for all the various > compilers. Before I started with that, I have noticed the Sun Studio C++ > compiler happily accepts -Wall (the test for it passes) even though it warns > that it does not know such option. So this method is useless. > > How is one supposed to test these things with autoconf? First by complaining to the compiler vendor about the hard-to-test command-line API. APIs that don't lend themselves well to automatization (in the name of user friendliness) suck a lot in the long rung, even independently of Autoconf. Then, you can do something similar to what Libtool does in its _LT_COMPILER_OPTION macro: compile once wihtout the thing that evokes the warning, and once with, compare stderr output of both and consider any differences as failure. If you're sure that the tested code doesn't produce any warnings otherwise, you can instead use AC_LANG_WERROR to count any warnings as failure. Cheers, Ralf _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf