Skip to contentSkip to conversation

Add klibc support to mdadm.h

PATCH In review maximilian attems 3 participants 5 messages Sep 21, 2007 – Oct 3, 2007 MD RAID

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add klibc support to mdadm.h

klibc still misses a lot functionality to let mdadm link against, this small step helps to get to the real trouble.. :)

---
 mdadm.h |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
mdadm.h +8 -1
index ac7d4b4..dba09f0 100644
@@ -29,7 +29,7 @@
 
 #define	_GNU_SOURCE
 #include	<unistd.h>
-#ifndef __dietlibc__
+#if !defined(__dietlibc__) && !defined(__KLIBC__)
 extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #else
 # if defined(__NO_STAT64) || __WORDSIZE != 32
@@ -97,6 +97,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 		     ((x) & 0x00000000ff000000ULL) << 8 | \
 		     ((x) & 0x000000ff00000000ULL) >> 8)
 
+#if !defined(__KLIBC__)
 #if BYTE_ORDER == LITTLE_ENDIAN
 #define	__cpu_to_le16(_x) (_x)
 #define __cpu_to_le32(_x) (_x)
@@ -114,6 +115,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #else
 #  error "unknown endianness."
 #endif
+#endif /* __KLIBC__ */
 
 
 
@@ -398,6 +400,11 @@ struct stat64;
 # undef HAVE_NFTW
 #endif
 
+#if defined(__KLIBC__)
+# undef HAVE_NFTW
+# undef HAVE_FTW
+#endif
+
 #ifndef HAVE_NFTW
 # define FTW_PHYS 1
 # ifndef HAVE_FTW
Signature · 1 line
1.5.2.4
#1 lore raw

PATCH 1/1 config.c include dirent.h instead sys/dir.h

sys/dir.h is an old BSD'ism, include dirent directly. small step for better klibc support.

compile tested against glibc.

---
 config.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
config.c +1 -1
index 73031b7..68c1507 100644
@@ -29,7 +29,7 @@
 
 #include	"mdadm.h"
 #include	"dlink.h"
-#include	<sys/dir.h>
+#include	<dirent.h>
 #include	<glob.h>
 #include	<fnmatch.h>
 #include	<ctype.h>
Signature · 1 line
1.5.2.4
#2 lore raw

PATCH 1/1 Create.c s/major/major_num/

don't shadow the major() function by int major.

---
 Create.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Create.c +4 -4
index 3e6f1af..31b63b4 100644
@@ -73,7 +73,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
 	unsigned long long bitmapsize;
 
 	mdu_array_info_t array;
-	int major = BITMAP_MAJOR_HI;
+	int major_num = BITMAP_MAJOR_HI;
 
 	memset(&array, 0, sizeof(array));
 
@@ -422,7 +422,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
 		return 1;
 
 	if (bitmap_file && vers < 9003) {
-		major = BITMAP_MAJOR_HOSTENDIAN;
+		major_num = BITMAP_MAJOR_HOSTENDIAN;
 #ifdef __BIG_ENDIAN
 		fprintf(stderr, Name ": Warning - bitmaps created on this kernel are not portable\n"
 			"  between different architectured.  Consider upgrading the Linux kernel.\n");
@@ -436,7 +436,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
 		}
 		if (!st->ss->add_internal_bitmap(st, super, &bitmap_chunk,
 						 delay, write_behind,
-						 bitmapsize, 1, major)) {
+						 bitmapsize, 1, major_num)) {
 			fprintf(stderr, Name ": Given bitmap chunk size not supported.\n");
 			return 1;
 		}
@@ -466,7 +466,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
 		if (CreateBitmap(bitmap_file, force, (char*)uuid, bitmap_chunk,
 				 delay, write_behind,
 				 bitmapsize,
-				 major)) {
+				 major_num)) {
 			return 1;
 		}
 		bitmap_fd = open(bitmap_file, O_RDWR);
Signature · 1 line
1.5.2.4
#4 lore raw
In reply to maximilian attems
Quoted 13 lines · maximilian attems

klibc still misses a lot functionality to let mdadm link against, this small step helps to get to the real trouble.. :)

---
 mdadm.h |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
mdadm.h +0 -0
index ac7d4b4..dba09f0 100644

mdadm.h line 34

Quoted 7 lines
mdadm.h +1 -1
@@ -29,7 +29,7 @@
 
 #define	_GNU_SOURCE
 #include	<unistd.h>
-#ifndef __dietlibc__
+#if !defined(__dietlibc__) && !defined(__KLIBC__)
 extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #else

Wouldn't it be better to just compile with -D_FILE_OFFSET_BITS=64 on all libraries instead of using the LFS cruft?

-hpa