Re: shell: dash - large file support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 24, 2015 at 02:50:48PM -0400, Aleksandar Ristovski wrote:
> For builds that build 32-bit dash, configure misses to setup large
> file support resulting in issues with large files.

> For example:
> ...dp/dash-0.5.8/build$ ls -l /tmp/largefile.sh
> -rw-rw-r-- 1 aristovski aristovski 3794653588 Jul 24 14:12 /tmp/largefile.sh
> ...dp/dash-0.5.8/build$ ./src/dash /tmp/largefile.sh
> ./src/dash: 0: Can't open /tmp/largefile.sh

> Where dash was configured (on a 64-bit platform) like so:

> ...dp/dash-0.5.8/build$ CFLAGS=-m32 ../configure && make -j8

> Now, if I make the change in configure.ac and reconfigure the project,
> I get proper operation:

> ...0.5.8.patched/build$ ./src/dash /tmp/largefile.sh
> Running...
> ...

> (the actual working of the 'largefile.sh' is removed for brevity)

> Patch:

> --- dash-0.5.8/configure.ac     2014-09-28 04:19:32.000000000 -0400
> +++ dash-0.5.8.patched/configure.ac     2015-07-24 14:41:05.855055430 -0400
> @@ -4,6 +4,9 @@ AC_CONFIG_SRCDIR([src/main.c])
> 
>  AC_CONFIG_HEADERS(config.h)
> 
> +dnl On 32-bit builds, check for large file support
> +AC_SYS_LARGEFILE
> +
>  dnl Checks for programs.
>  AC_PROG_CC
>  AC_GNU_SOURCE

If I were the maintainer, I would use AC_SYS_LARGEFILE and remove all
complexity related to using largefile interfaces in some situations and
non-largefile interfaces in other situations.

However, the maintainer seems to prefer using largefile interfaces only
when needed, apparently to reduce the size of the binary. In the case of
large shell scripts, this is POSIXly correct (see XCU 1.5 Considerations
for Utilities in Support of Files of Arbitrary Size).

However, using a non-largefile stat() or lstat() is always wrong, since
the inode number may not fit in a non-largefile ino_t. This happens in
various cases: test -ef/-nt/-ot, finding a dot script (. special
builtin) and some related to the current directory.

On another note, test -nt/-ot should really compare the nanoseconds
parts as well.

-- 
Jilles Tjoelker
--
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux