From 8708fd888f8a2bd3c68ccc059a579ba7ff41f79d Mon Sep 17 00:00:00 2001 From: Tomohiro Kusumi Date: Sat, 25 May 2019 04:26:18 +0900 Subject: Linux 2.6.39 compat: Test if kstrtoul() exists kstrtoul() exists only after torvalds/linux@33ee3b2e2eb9 in 2.6.39. Use strict_strtoul() if kstrtoul() doesn't exist. Note that strict_strtoul() has existed as an alias for kstrtoul() for a while, but removed in torvalds/linux@3db2e9cdc085. It looks like RHEL6 (2.6.32 based) has backported kstrtoul(), and this caused build CI to pass compilation test. It should fail on vanilla < 2.6.39 kernels or distro kernels without backport as reported in #8760. -- # grep "kstrtoul(" /lib/modules/2.6.32-754.12.1.el6.x86_64/build/ \ include/linux/kernel.h >/dev/null # echo $? 0 Reviewed-by: Brian Behlendorf Reviewed-by: loli10K Signed-off-by: Tomohiro Kusumi Closes #8760 Closes #8761 --- include/spl/sys/strings.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/spl') diff --git a/include/spl/sys/strings.h b/include/spl/sys/strings.h index 4fb803206..8b810c9af 100644 --- a/include/spl/sys/strings.h +++ b/include/spl/sys/strings.h @@ -28,4 +28,8 @@ #define bcopy(src, dest, size) memmove(dest, src, size) #define bcmp(src, dest, size) memcmp((src), (dest), (size_t)(size)) +#ifndef HAVE_KSTRTOUL +#define kstrtoul strict_strtoul +#endif + #endif /* _SPL_SYS_STRINGS_H */ -- cgit v1.2.3