Opened 12 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 , 12 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 12 years ago
comment:3 by , 12 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 , 11 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | assigned → closed |
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.

There's only 1 function in e2fsprogs that uses
__uint64_tand there appears to be no reason to do so. Changing this one function to useuint64_tinstead (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