in reply to Re: File test (-e) fails on files > 2G, uselargefiles=define
in thread File test (-e) fails on files > 2G, uselargefiles=define

I did not build it myself. One of our SAs must have installed it, but I don't know from what source. Here is the complete output from perl -V...
Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=hpux, osvers=11.23, archname=PA-RISC2.0 uname='hp-ux waves b.11.23 u 9000800 2510705975 unlimited-user lic +ense ' config_args='-A prepend:libswanted=cl pthread -d -e -Dcc=gcc -Dpr +efix=/usr/local useposix=true' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_HPUX_SOURCE -mpa-risc-2-0 -fno-strict-alias +ing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGE +FILE_SOURCE', optimize='-O0', cppflags='-D_HPUX_SOURCE -D_HPUX_SOURCE -mpa-risc-2-0 -fno-strict- +aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include' ccversion='', gccversion='4.1.1', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +6 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=4 alignbytes=8, prototype=define Linker and Libraries: ld='/usr/bin/ld', ldflags =' -L/usr/local/lib -L/opt/local/lib' libpth=/usr/local/lib /opt/local/lib /lib /usr/lib /usr/ccs/lib libs=-lcl -lpthread -lnsl -lnm -lndbm -lgdbm -ldb -lmalloc -ldld - +lm perllibs=-lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl +,-B,deferred ' cccdlflags='-fPIC', lddlflags='-b -L/usr/local/lib -L/opt/local/li +b' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO Built under hpux Compiled at Sep 19 2006 17:04:15 @INC: /usr/local/lib/perl5/5.8.8/PA-RISC2.0 /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/PA-RISC2.0 /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .

Replies are listed 'Best First'.
Re^3: File test (-e) fails on files > 2G, uselargefiles=define
by almut (Canon) on Aug 07, 2007 at 15:37 UTC

    I suspect you should also have -D_FILE_OFFSET_BITS=64 in addition to -D_LARGEFILE_SOURCE ...

    Maybe the problem is that this version had been built in a 32-bit build environment (gcc version), at least the README.hpux that comes with the Perl sources states that (emphasis added)

    Using Large Files with Perl on HP-UX

    ... Three separate methods of doing this are available. Of these methods, the best method for Perl is to compile using the -Duselargefiles flag to Configure. This causes Perl to be compiled using structures and functions in which these are 64 bits wide, rather than 32 bits wide. (Note that this will only work with HP's ANSI C compiler. If you want to compile Perl using gcc, you will have to get a version of the compiler that supports 64-bit operations. See above for where to find it.)

    Anyhow, before you go to the trouble of building your own version, you might try one the binaries generously offered for download by our very own cbu.

    According to the uname signature "hp-ux waves b.11.23 u 9000800 2510705975 ..." the perl you have seems to come from the HP archive... (so there's probably no point in giving that one another try).

      I more suspect gcc-4.1.1. I currently build perl on HP-UX 11.23/pa with gcc-4.2.1 (when building with gcc).

      The perl from which the -V is shown is a 32bit perl. I agree that -e should not fail, but it means that you cannot address the region beyond 2G unless you're reding it as a stream. Offsets to seek () and such still are 32bit only. I see more and more use for 64bit perls on 11i v2 all along the line. I only use 64bit perl on 11i v1 and up (still on 32bit perl on 10.20 and 11.00)

      Do not build 64bit perl with gcc-4 on 11.11. Maybe 4.2.1 has the issues fixed by now, but otherwise you are heading for trouble.

      The 64bit perl I have running on 11.23/pa does not have -D_FILE_OFFSET_BITS=64 defined, but I build with HP C-ANSI-C and -Ae


      Enjoy, Have FUN! H.Merijn
      Thanks for your help -- I will pass the info along to our Unix SAs. We're in a controlled environment, so I can't make any changes without going through them.