summaryrefslogtreecommitdiff
path: root/package/xfsprogs/patches
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-02-16 18:20:30 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-02-16 18:20:30 +0000
commite6d4f9f8522f7fc132ef307b66e2dbd99454ac4c (patch)
tree15adbe19ee8e9006efd38400add12503b14a8bf7 /package/xfsprogs/patches
parenta32bf38770a694d42d2fb763a3e54df3136ad09d (diff)
add a package for xfsprogs
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25558 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/xfsprogs/patches')
-rw-r--r--package/xfsprogs/patches/100-no_aio.patch13
-rw-r--r--package/xfsprogs/patches/110-uclibc_no_ustat.patch28
-rw-r--r--package/xfsprogs/patches/120-portability.patch39
-rw-r--r--package/xfsprogs/patches/130-uclibc_no_xattr.patch28
4 files changed, 108 insertions, 0 deletions
diff --git a/package/xfsprogs/patches/100-no_aio.patch b/package/xfsprogs/patches/100-no_aio.patch
new file mode 100644
index 0000000000..b16faa88ab
--- /dev/null
+++ b/package/xfsprogs/patches/100-no_aio.patch
@@ -0,0 +1,13 @@
+--- a/configure.in
++++ b/configure.in
+@@ -87,8 +87,8 @@ AC_PACKAGE_GLOBALS(xfsprogs)
+ AC_PACKAGE_UTILITIES(xfsprogs)
+ AC_MULTILIB($enable_lib64)
+
+-AC_PACKAGE_NEED_AIO_H
+-AC_PACKAGE_NEED_LIO_LISTIO
++librt="-lrt"
++AC_SUBST(librt)
+
+ AC_PACKAGE_NEED_UUID_H
+ AC_PACKAGE_NEED_UUIDCOMPARE
diff --git a/package/xfsprogs/patches/110-uclibc_no_ustat.patch b/package/xfsprogs/patches/110-uclibc_no_ustat.patch
new file mode 100644
index 0000000000..9cd2dc2bb9
--- /dev/null
+++ b/package/xfsprogs/patches/110-uclibc_no_ustat.patch
@@ -0,0 +1,28 @@
+--- a/libxfs/linux.c
++++ b/libxfs/linux.c
+@@ -21,7 +21,9 @@
+ #include <mntent.h>
+ #include <sys/stat.h>
+ #undef ustat
++#ifndef __UCLIBC__
+ #include <sys/ustat.h>
++#endif
+ #include <sys/mount.h>
+ #include <sys/ioctl.h>
+ #include <sys/sysinfo.h>
+@@ -49,6 +51,7 @@ static int max_block_alignment;
+ int
+ platform_check_ismounted(char *name, char *block, struct stat64 *s, int verbose)
+ {
++#ifndef __UCLIBC__
+ /* Pad ust; pre-2.6.28 linux copies out too much in 32bit compat mode */
+ struct ustat ust[2];
+ struct stat64 st;
+@@ -68,6 +71,7 @@ platform_check_ismounted(char *name, cha
+ progname, name);
+ return 1;
+ }
++#endif
+ return 0;
+ }
+
diff --git a/package/xfsprogs/patches/120-portability.patch b/package/xfsprogs/patches/120-portability.patch
new file mode 100644
index 0000000000..d8bda81f0d
--- /dev/null
+++ b/package/xfsprogs/patches/120-portability.patch
@@ -0,0 +1,39 @@
+--- a/copy/xfs_copy.c
++++ b/copy/xfs_copy.c
+@@ -463,6 +463,15 @@ read_ag_header(int fd, xfs_agnumber_t ag
+ }
+
+
++static void sig_mask(int type)
++{
++ sigset_t mask;
++ sigemptyset(&mask);
++ sigaddset(&mask, SIGCHLD);
++ sigprocmask(type, &mask, NULL);
++}
++
++
+ void
+ write_wbuf(void)
+ {
+@@ -478,9 +487,9 @@ write_wbuf(void)
+ if (target[i].state != INACTIVE)
+ pthread_mutex_unlock(&targ[i].wait); /* wake up */
+
+- sigrelse(SIGCHLD);
++ sig_mask(SIG_UNBLOCK);
+ pthread_mutex_lock(&mainwait);
+- sighold(SIGCHLD);
++ sig_mask(SIG_BLOCK);
+ }
+
+
+@@ -847,7 +856,7 @@ main(int argc, char **argv)
+ /* set up sigchild signal handler */
+
+ signal(SIGCHLD, handler);
+- sighold(SIGCHLD);
++ sig_mask(SIG_BLOCK);
+
+ /* make children */
+
diff --git a/package/xfsprogs/patches/130-uclibc_no_xattr.patch b/package/xfsprogs/patches/130-uclibc_no_xattr.patch
new file mode 100644
index 0000000000..30cb861b5b
--- /dev/null
+++ b/package/xfsprogs/patches/130-uclibc_no_xattr.patch
@@ -0,0 +1,28 @@
+--- a/fsr/xfs_fsr.c
++++ b/fsr/xfs_fsr.c
+@@ -35,7 +35,9 @@
+ #include <sys/wait.h>
+ #include <sys/vfs.h>
+ #include <sys/statvfs.h>
++#ifndef __UCLIBC__
+ #include <sys/xattr.h>
++#endif
+
+
+ #ifndef XFS_XFLAG_NODEFRAG
+@@ -990,6 +992,7 @@ fsr_setup_attr_fork(
+ int tfd,
+ xfs_bstat_t *bstatp)
+ {
++#ifndef __UCLIBC__
+ struct stat64 tstatbuf;
+ int i;
+ int last_forkoff = 0;
+@@ -1108,6 +1111,7 @@ fsr_setup_attr_fork(
+ out:
+ if (dflag)
+ fsrprintf(_("set temp attr\n"));
++#endif
+ return 0;
+ }
+