summaryrefslogtreecommitdiff
path: root/libre/syslinux/fix-undefined-type-umode_t.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/syslinux/fix-undefined-type-umode_t.patch')
-rw-r--r--libre/syslinux/fix-undefined-type-umode_t.patch53
1 files changed, 50 insertions, 3 deletions
diff --git a/libre/syslinux/fix-undefined-type-umode_t.patch b/libre/syslinux/fix-undefined-type-umode_t.patch
index cfec1ad90..33ac6d323 100644
--- a/libre/syslinux/fix-undefined-type-umode_t.patch
+++ b/libre/syslinux/fix-undefined-type-umode_t.patch
@@ -1,11 +1,58 @@
--- syslinux-4.05.orig/libinstaller/linuxioctl.h 2011-12-09 16:28:17.000000000 -0200
-+++ syslinux-4.05/libinstaller/linuxioctl.h 2012-05-20 22:05:50.521380781 -0300
-@@ -19,7 +19,7 @@
++++ syslinux-4.05/libinstaller/linuxioctl.h 2012-05-18 20:30:23.000000000 -0300
+@@ -9,22 +9,36 @@
+
+ #include <sys/ioctl.h>
+
++#ifdef __linux__
++
+ #define statfs _kernel_statfs /* HACK to deal with broken 2.4 distros */
+
+ #include <linux/fd.h> /* Floppy geometry */
+ #include <linux/hdreg.h> /* Hard disk geometry */
+
+-#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_FIEMAP */
+-#include <linux/msdos_fs.h> /* FAT_IOCTL_SET_ATTRIBUTES */
++#include <linux/fs.h> /* FIGETBSZ, FIBMAP, FS_IOC_* */
#undef SECTOR_SIZE /* Defined in msdos_fs.h for no good reason */
#undef SECTOR_BITS
-#include <linux/ext2_fs.h> /* EXT2_IOC_* */
-+#include <ext2fs/ext2_fs.h> /* EXT2_IOC_* */
++
++#ifndef FS_IOC_GETFLAGS
++/* Old kernel headers, these were once ext2-specific... */
++# include <linux/ext2_fs.h> /* EXT2_IOC_* */
++
++# define FS_IOC_GETFLAGS EXT2_IOC_GETFLAGS
++# define FS_IOC_SETFLAGS EXT2_IOC_SETFLAGS
++
++# define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL
++
++#else
++
++# include <ext2fs/ext2_fs.h>
++
++#endif
#ifndef FAT_IOCTL_GET_ATTRIBUTES
# define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32)
+ #endif
+-
+ #ifndef FAT_IOCTL_SET_ATTRIBUTES
+ # define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32)
+ #endif
+@@ -37,11 +51,13 @@
+
+ #undef statfs
+
+-#if defined(__linux__) && !defined(BLKGETSIZE64)
++#ifndef BLKGETSIZE64
+ /* This takes a u64, but the size field says size_t. Someone screwed big. */
+ # define BLKGETSIZE64 _IOR(0x12,114,size_t)
+ #endif
+
+ #include <linux/loop.h>
+
++#endif /* __linux__ */
++
+ #endif /* LIBINSTALLER_LINUXIOCTL_H */