Bug #1001
Updated by Philippe Proulx over 8 years ago
LTTng-tools's @configure.ac@ only checks for liburcu function declarations in its installed headers using @AC_CHECK_DECL()@.
If, for some reason, the system has the headers installed, but not the binary library, the @configure@ script succeeds, but the build fails later with obvious linking errors.
This situation happens if you set the various environment variables to build a 32-bit version of LTTng-tools (@CFLAGS@, @LDFLAGS@ and so on) but only the 64-bit version of liburcu is installed. In this case, headers are found, for example in @/usr/include@, and @configure@ succeeds, even if no 32-bit liburcu is installed.
It is okay to check the declarations, but @AC_CHECK_LIB()@ should also be used to check the existence of the chosen symbols in an installed binary liburcu.
See "LTTng-UST's @configure.ac@":https://github.com/lttng/lttng-ust/blob/master/configure.ac which seems to do the right thing.