]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Add strndupa to missing.h
authorLucas De Marchi <lucas.demarchi@intel.com>
Fri, 4 Apr 2014 11:19:00 +0000 (08:19 -0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 7 Apr 2014 14:00:24 +0000 (11:00 -0300)
configure.ac
libkmod/missing.h

index 579d981cc6482eac8de5f71c8a314794e1fb226e..40409089b0df426870b37c596abc47b1e65fdb8c 100644 (file)
@@ -50,6 +50,9 @@ AC_CHECK_FUNCS_ONCE([finit_module])
 # dietlibc doesn't have st.st_mtim struct member
 AC_CHECK_MEMBERS([struct stat.st_mtim], [], [], [#include <sys/stat.h>])
 
+# musl 1.0 and bionic 4.4 don't have strndupa
+AC_CHECK_DECLS_ONCE([strndupa])
+
 # Check kernel headers
 AC_CHECK_HEADERS_ONCE([linux/module.h])
 
index b45bbe297a7e495d8b6ac0210bfd35a9d9db41a4..a28644694df3bfe5316ea48a67ef4955366b7c78 100644 (file)
@@ -32,3 +32,11 @@ static inline int finit_module(int fd, const char *uargs, int flags)
        return syscall(__NR_finit_module, fd, uargs, flags);
 }
 #endif
+
+#if !HAVE_DECL_STRNDUPA
+#define strndupa(s, length) \
+       ({ \
+               size_t __len = strnlen((s), (length)); \
+               strncpy(alloca(__len + 1), (s), __len);  \
+        })
+#endif