Monday, November 30, 2009

[nslu2-linux] Re: Problem with perl and large files

 

Doing a strace on a file > 2GB clearly shows that stat64 call has succeeded, so the problem is in user space.

stat64("big-file", {st_mode=S_IFREG|0777, st_size=2200331748, ...}) = 0

-Brian

--- In nslu2-linux@yahoogroups.com, "joerg_kuehne" <joerg_kuehne@...> wrote:
>
> Hi,
>
> I hope, that anyone in this group can give me a hint about the maintainer of the perl ipkg-package of the cs08q1armel branch.
> I found an issue with the pert stat() function, that fails for files larger than 2GByte on my QNAP TS119. This function is used from the rsnapshot-diff script to get all informations about a certain file for comparing different backup snapshots. It seems that perl is compiled without 64Bit support for file sizes, with 32Bit one can only store size numbers up to 2GByte. Here a little test script to verify this issue.
>
> test.pl
> --- cut here ---
> #! /opt/bin/perl
>
> @mystat = stat($ARGV[0]);
> print "$ARGV[0]: file size: $mystat[7]\n";
> --- cut here ---
>
> Run test.pl FILE
>
> If file is smaller than 2GByte it will display the right file size, if it is larger then the file size will be empty caused by the failed stat().
> Can anyone tell me why perl is compiled without the
> -D_FILE_OFFSET_BITS=64 option? Is it a restriction of the ARM architecture or glibc? Or has the usage of this option unwanted side effects or was it simply forgotten?
> Thank you in advance
>
> Jörg
>

__._,_.___
.

__,_._,___

No comments:

Post a Comment