[PATCH] Bionic lacks transparent LFS migrations; provide a workaround
Matt Whitlock
busybox at mattwhitlock.name
Tue Apr 28 22:13:30 UTC 2015
On Tuesday, 28 April 2015, at 3:55 pm, Matt Whitlock wrote:
> I'll work on finishing the Large File Support in Bionic and adding support for _FILE_OFFSET_BITS==64.
The Bionic devs have already finished Large File Support, including support for _FILE_OFFSET_BITS==64, in the latest Bionic, so there's nothing further to contribute upstream.
If you don't want BusyBox to support large files on older versions of Bionic, I can live with that. My patch works just fine for my purposes.
Would you consider a patch to BusyBox that adds an explicit cast to off_t wherever values of st_size are used with the OFF_FMT format specifier? Without such a cast, when compiling without LFS on Bionic, we get warnings like:
archival/tar.c: In function 'writeTarHeader':
archival/tar.c:448:5: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'long long int' [-Wformat=]
fileName, statbuf->st_size);
^
I don't know if GCC is smart enough to cast the actual argument to the expected type. If it isn't, then passing a long long argument to a variadic function, where a long is expected, results in Undefined Behavior.
More information about the busybox
mailing list