[packages] mdadm: add missing functions posix_memalign() and canonicalize_file_name() to work with backfire/uClibc 0.9.30

git-svn-id: svn://svn.openwrt.org/openwrt/packages@27581 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2011-07-10 22:40:21 +00:00
parent b7e54e9725
commit a9b905305c

View File

@ -0,0 +1,42 @@
Index: mdadm-3.2/mdadm.h
===================================================================
--- mdadm-3.2.orig/mdadm.h 2011-02-01 06:06:21.000000000 +0100
+++ mdadm-3.2/mdadm.h 2011-07-11 00:36:52.135848368 +0200
@@ -33,6 +33,37 @@
# endif
#endif
+#ifdef UCLIBC
+# include <features.h>
+# if __UCLIBC_MINOR__ <= 9 && __UCLIBC_SUBLEVEL__ <= 30
+
+#include <errno.h>
+void *memalign(size_t blocksize, size_t bytes);
+static inline int posix_memalign(void **memptr, size_t alignment, size_t size)
+{
+ if (alignment % sizeof(void *) != 0)
+ return EINVAL;
+
+ *memptr = memalign(alignment, size);
+ return (*memptr != NULL ? 0 : ENOMEM);
+}
+
+#include <limits.h>
+char *strdup(const char *s);
+char *realpath(const char *path, char *resolved_path);
+static inline char *canonicalize_file_name(const char *path)
+{
+ char resolved[PATH_MAX] = { 0 };
+
+ if (!realpath(path, resolved))
+ return NULL;
+
+ return strdup(resolved);
+}
+
+# endif /* __UCLIBC_MINOR__ <= 9 && __UCLIBC_SUBLEVEL__ <= 30 */
+#endif /* UCLIBC */
+
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>