mirror of
https://github.com/yann64/haikuports.git
synced 2026-03-19 01:46:00 +01:00
exfatprogs: patchset missing
This commit is contained in:
266
sys-fs/exfatprogs/patches/exfatprogs-1.3.0.patchset
Normal file
266
sys-fs/exfatprogs/patches/exfatprogs-1.3.0.patchset
Normal file
@@ -0,0 +1,266 @@
|
||||
From 5a2ff546f94ff56e1dab3710f8e3287dc7383f77 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= <jerome.duval@gmail.com>
|
||||
Date: Wed, 15 Oct 2025 15:55:59 +0200
|
||||
Subject: fix build on Haiku
|
||||
|
||||
|
||||
diff --git a/include/exfat_ondisk.h b/include/exfat_ondisk.h
|
||||
index 41a7088..7f48456 100644
|
||||
--- a/include/exfat_ondisk.h
|
||||
+++ b/include/exfat_ondisk.h
|
||||
@@ -7,8 +7,12 @@
|
||||
#define _EXFAT_H
|
||||
|
||||
#include <stdint.h>
|
||||
+#ifndef __HAIKU__
|
||||
#include <byteswap.h>
|
||||
#include <linux/fs.h>
|
||||
+#else
|
||||
+#include <exfat_types.h>
|
||||
+#endif
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
diff --git a/include/exfat_types.h b/include/exfat_types.h
|
||||
new file mode 100644
|
||||
index 0000000..5a23e99
|
||||
--- /dev/null
|
||||
+++ b/include/exfat_types.h
|
||||
@@ -0,0 +1,197 @@
|
||||
+/*
|
||||
+ * If linux/types.h is already been included, assume it has defined
|
||||
+ * everything we need. (cross fingers) Other header files may have
|
||||
+ * also defined the types that we need.
|
||||
+ */
|
||||
+#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && \
|
||||
+ !defined(_EXT2_TYPES_H))
|
||||
+#define _EXT2_TYPES_H
|
||||
+
|
||||
+
|
||||
+#ifndef HAVE___U8
|
||||
+#define HAVE___U8
|
||||
+#ifdef __U8_TYPEDEF
|
||||
+typedef __U8_TYPEDEF __u8;
|
||||
+#else
|
||||
+typedef unsigned char __u8;
|
||||
+#endif
|
||||
+#endif /* HAVE___U8 */
|
||||
+
|
||||
+#ifndef HAVE___S8
|
||||
+#define HAVE___S8
|
||||
+#ifdef __S8_TYPEDEF
|
||||
+typedef __S8_TYPEDEF __s8;
|
||||
+#else
|
||||
+typedef signed char __s8;
|
||||
+#endif
|
||||
+#endif /* HAVE___S8 */
|
||||
+
|
||||
+#ifndef HAVE___U16
|
||||
+#define HAVE___U16
|
||||
+#ifdef __U16_TYPEDEF
|
||||
+typedef __U16_TYPEDEF __u16;
|
||||
+#else
|
||||
+#if (4 == 2)
|
||||
+typedef unsigned int __u16;
|
||||
+#else
|
||||
+#if (2 == 2)
|
||||
+typedef unsigned short __u16;
|
||||
+#else
|
||||
+#undef HAVE___U16
|
||||
+ ?==error: undefined 16 bit type
|
||||
+#endif /* SIZEOF_SHORT == 2 */
|
||||
+#endif /* SIZEOF_INT == 2 */
|
||||
+#endif /* __U16_TYPEDEF */
|
||||
+#endif /* HAVE___U16 */
|
||||
+
|
||||
+#ifndef HAVE___S16
|
||||
+#define HAVE___S16
|
||||
+#ifdef __S16_TYPEDEF
|
||||
+typedef __S16_TYPEDEF __s16;
|
||||
+#else
|
||||
+#if (4 == 2)
|
||||
+typedef int __s16;
|
||||
+#else
|
||||
+#if (2 == 2)
|
||||
+typedef short __s16;
|
||||
+#else
|
||||
+#undef HAVE___S16
|
||||
+ ?==error: undefined 16 bit type
|
||||
+#endif /* SIZEOF_SHORT == 2 */
|
||||
+#endif /* SIZEOF_INT == 2 */
|
||||
+#endif /* __S16_TYPEDEF */
|
||||
+#endif /* HAVE___S16 */
|
||||
+
|
||||
+#ifndef HAVE___U32
|
||||
+#define HAVE___U32
|
||||
+#ifdef __U32_TYPEDEF
|
||||
+typedef __U32_TYPEDEF __u32;
|
||||
+#else
|
||||
+#if (4 == 4)
|
||||
+typedef unsigned int __u32;
|
||||
+#else
|
||||
+#if (8 == 4)
|
||||
+typedef unsigned long __u32;
|
||||
+#else
|
||||
+#if (2 == 4)
|
||||
+typedef unsigned short __u32;
|
||||
+#else
|
||||
+#undef HAVE___U32
|
||||
+ ?== error: undefined 32 bit type
|
||||
+#endif /* SIZEOF_SHORT == 4 */
|
||||
+#endif /* SIZEOF_LONG == 4 */
|
||||
+#endif /* SIZEOF_INT == 4 */
|
||||
+#endif /* __U32_TYPEDEF */
|
||||
+#endif /* HAVE___U32 */
|
||||
+
|
||||
+#ifndef HAVE___S32
|
||||
+#define HAVE___S32
|
||||
+#ifdef __S32_TYPEDEF
|
||||
+typedef __S32_TYPEDEF __s32;
|
||||
+#else
|
||||
+#if (4 == 4)
|
||||
+typedef int __s32;
|
||||
+#else
|
||||
+#if (8 == 4)
|
||||
+typedef long __s32;
|
||||
+#else
|
||||
+#if (2 == 4)
|
||||
+typedef short __s32;
|
||||
+#else
|
||||
+#undef HAVE___S32
|
||||
+ ?== error: undefined 32 bit type
|
||||
+#endif /* SIZEOF_SHORT == 4 */
|
||||
+#endif /* SIZEOF_LONG == 4 */
|
||||
+#endif /* SIZEOF_INT == 4 */
|
||||
+#endif /* __S32_TYPEDEF */
|
||||
+#endif /* HAVE___S32 */
|
||||
+
|
||||
+#ifndef HAVE___U64
|
||||
+#define HAVE___U64
|
||||
+#ifdef __U64_TYPEDEF
|
||||
+typedef __U64_TYPEDEF __u64;
|
||||
+#else
|
||||
+#if (4 == 8)
|
||||
+typedef unsigned int __u64;
|
||||
+#else
|
||||
+#if (8 == 8)
|
||||
+typedef unsigned long long __u64;
|
||||
+#else
|
||||
+#if (8 == 8)
|
||||
+typedef unsigned long __u64;
|
||||
+#else
|
||||
+#undef HAVE___U64
|
||||
+ ?== error: undefined 64 bit type
|
||||
+#endif /* SIZEOF_LONG_LONG == 8 */
|
||||
+#endif /* SIZEOF_LONG == 8 */
|
||||
+#endif /* SIZEOF_INT == 8 */
|
||||
+#endif /* __U64_TYPEDEF */
|
||||
+#endif /* HAVE___U64 */
|
||||
+
|
||||
+#ifndef HAVE___S64
|
||||
+#define HAVE___S64
|
||||
+#ifdef __S64_TYPEDEF
|
||||
+typedef __S64_TYPEDEF __s64;
|
||||
+#else
|
||||
+#if (4 == 8)
|
||||
+typedef int __s64;
|
||||
+#else
|
||||
+#if (8 == 8)
|
||||
+#if defined(__GNUC__)
|
||||
+typedef __signed__ long long __s64;
|
||||
+#else
|
||||
+typedef signed long long __s64;
|
||||
+#endif /* __GNUC__ */
|
||||
+#else
|
||||
+#if (8 == 8)
|
||||
+typedef long __s64;
|
||||
+#else
|
||||
+#undef HAVE___S64
|
||||
+ ?== error: undefined 64 bit type
|
||||
+#endif /* SIZEOF_LONG_LONG == 8 */
|
||||
+#endif /* SIZEOF_LONG == 8 */
|
||||
+#endif /* SIZEOF_INT == 8 */
|
||||
+#endif /* __S64_TYPEDEF */
|
||||
+#endif /* HAVE___S64 */
|
||||
+
|
||||
+#undef __S8_TYPEDEF
|
||||
+#undef __U8_TYPEDEF
|
||||
+#undef __S16_TYPEDEF
|
||||
+#undef __U16_TYPEDEF
|
||||
+#undef __S32_TYPEDEF
|
||||
+#undef __U32_TYPEDEF
|
||||
+#undef __S64_TYPEDEF
|
||||
+#undef __U64_TYPEDEF
|
||||
+
|
||||
+#endif /* _*_TYPES_H */
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+/* endian checking stuff */
|
||||
+#ifndef EXT2_ENDIAN_H_
|
||||
+#define EXT2_ENDIAN_H_
|
||||
+
|
||||
+#ifdef __CHECKER__
|
||||
+# ifndef __bitwise
|
||||
+# define __bitwise __attribute__((bitwise))
|
||||
+# endif
|
||||
+#define __force __attribute__((force))
|
||||
+#else
|
||||
+# ifndef __bitwise
|
||||
+# define __bitwise
|
||||
+# endif
|
||||
+#define __force
|
||||
+#endif
|
||||
+
|
||||
+typedef __u16 __bitwise __le16;
|
||||
+typedef __u32 __bitwise __le32;
|
||||
+typedef __u64 __bitwise __le64;
|
||||
+typedef __u16 __bitwise __be16;
|
||||
+typedef __u32 __bitwise __be32;
|
||||
+typedef __u64 __bitwise __be64;
|
||||
+
|
||||
+#endif /* EXT2_ENDIAN_H_ */
|
||||
+
|
||||
+/* These defines are needed for the public ext2fs.h header file */
|
||||
+#define HAVE_SYS_TYPES_H 1
|
||||
+#undef WORDS_BIGENDIAN
|
||||
diff --git a/lib/libexfat.c b/lib/libexfat.c
|
||||
index dd7121a..3f5022b 100644
|
||||
--- a/lib/libexfat.c
|
||||
+++ b/lib/libexfat.c
|
||||
@@ -6,7 +6,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
+#ifndef __HAIKU__
|
||||
#include <sys/sysmacros.h>
|
||||
+#endif
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
@@ -23,6 +25,11 @@
|
||||
#include "exfat_fs.h"
|
||||
#include "exfat_dir.h"
|
||||
|
||||
+#ifdef __HAIKU__
|
||||
+#define major(x) 0
|
||||
+#define minor(x) (x)
|
||||
+#endif
|
||||
+
|
||||
unsigned int print_level = EXFAT_INFO;
|
||||
|
||||
void exfat_bitmap_set_range(struct exfat *exfat, char *bitmap,
|
||||
@@ -189,8 +196,10 @@ int exfat_get_blk_dev_info(struct exfat_user_input *ui,
|
||||
|
||||
if (ui->sector_size)
|
||||
bd->sector_size = ui->sector_size;
|
||||
+#ifdef BLKSSZGET
|
||||
else if (ioctl(fd, BLKSSZGET, &bd->sector_size) < 0)
|
||||
bd->sector_size = DEFAULT_SECTOR_SIZE;
|
||||
+#endif
|
||||
bd->sector_size_bits = sector_size_bits(bd->sector_size);
|
||||
bd->num_sectors = blk_dev_size / bd->sector_size;
|
||||
bd->num_clusters = blk_dev_size / ui->cluster_size;
|
||||
--
|
||||
2.50.1
|
||||
|
||||
Reference in New Issue
Block a user