Opened 11 years ago

Closed 11 years ago

#946 closed task (wontfix)

Verify if e2fsprogs needs changes for __uint64_t type

Reported by: Andrew Bradford Owned by: Andrew Bradford
Priority: major Milestone: CLFS Embedded 1.0.0
Component: BOOK Version: CLFS Embedded GIT
Keywords: Cc:

Description

e2fsprogs uses the __uint64_t type, which is a valid typedef in glibc for unsigned long long int on 32 bit platforms but appears to not be present in musl.

See: http://lists.cross-lfs.org/pipermail/clfs-dev-cross-lfs.org/2013-October/001774.html

Change History (4)

comment:1 by Andrew Bradford, 11 years ago

Owner: changed from clfs-commits@… to Andrew Bradford
Status: newassigned

comment:2 by Andrew Bradford, 11 years ago

There's only 1 function in e2fsprogs that uses __uint64_t and there appears to be no reason to do so. Changing this one function to use uint64_t instead (but *NOT* unsigned long long int) should fix the issue for all 32 and 64 bit platforms.

diff -Naur e2fsprogs-1.42.8.orig/lib/ext2fs/unix_io.c e2fsprogs-1.42.8/lib/ext2fs/unix_io.c
--- e2fsprogs-1.42.8.orig/lib/ext2fs/unix_io.c	2013-10-24 15:50:44.234297410 -0400
+++ e2fsprogs-1.42.8/lib/ext2fs/unix_io.c	2013-10-24 16:29:06.436142156 -0400
@@ -931,10 +931,10 @@
 
 	if (channel->flags & CHANNEL_FLAGS_BLOCK_DEVICE) {
 #ifdef BLKDISCARD
-		__uint64_t range[2];
+		uint64_t range[2];
 
-		range[0] = (__uint64_t)(block) * channel->block_size;
-		range[1] = (__uint64_t)(count) * channel->block_size;
+		range[0] = (uint64_t)(block) * channel->block_size;
+		range[1] = (uint64_t)(count) * channel->block_size;
 
 		ret = ioctl(data->dev, BLKDISCARD, &range);
 #else

comment:3 by William Harrington, 11 years ago

I'm working with the Raspberry Pi, you sent me, and this I had to apply for E2fsprogs. 1.42.7 and 1.42.8.

comment:4 by Andrew Bradford, 11 years ago

Resolution: wontfix
Status: assignedclosed

e2fsprogs have been removed from the beyond section of the 20140613 book, making this ticket no longer needed.

Note: See TracTickets for help on using tickets.