Fix up FIND_SYSTEM_LIBRARY to work with cross-compiling

Make FIND_SYSTEM_LIBRARY respect a configured sysroot, otherwise it
might find headers from the build machine and assume the library is
available on the host/target.

Tighten up error checking: if pkg-config or the user specified _CFLAGS
or _LIBS but we can't find the header/library, issue a fatal error.

Fix the -L flag to /usr/local/lib instead of just /usr/local.

Clean out the _CFLAGS and _LIBS if we located something that we later
find doesn't work.

Rename FIND_SYSTEM_LIBRARY into the ZFS_AC_ scope.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10538
This commit is contained in:
Arvind Sankar
2020-07-09 16:31:41 -04:00
committed by Brian Behlendorf
parent 3e597dee11
commit f040a7b0f8
8 changed files with 83 additions and 69 deletions
+3 -5
View File
@@ -2,17 +2,15 @@ dnl #
dnl # Check for libudev - needed for vdev auto-online and auto-replace
dnl #
AC_DEFUN([ZFS_AC_CONFIG_USER_LIBUDEV], [
FIND_SYSTEM_LIBRARY(LIBUDEV, [libudev], [libudev.h], [], [udev], [], [user_libudev=yes], [user_libudev=no])
ZFS_AC_FIND_SYSTEM_LIBRARY(LIBUDEV, [libudev], [libudev.h], [], [udev], [], [user_libudev=yes], [user_libudev=no])
AS_IF([test "x$user_libudev" = xyes], [
AX_SAVE_FLAGS
CFLAGS="$CFLAGS $LIBUDEV_CFLAGS"
LDFLAGS="$LDFLAGS $LIBUDEV_LIBS"
LIBS="$LIBUDEV_LIBS $LIBS"
AC_CHECK_LIB([udev], [udev_device_get_is_initialized], [
AC_DEFINE([HAVE_LIBUDEV_UDEV_DEVICE_GET_IS_INITIALIZED], 1, [
Define if udev_device_get_is_initialized is available])], [])
AC_CHECK_FUNCS([udev_device_get_is_initialized])
AX_RESTORE_FLAGS
])