0.9-pre largefile support on Debian

Help
2006-12-30
2013-05-30
  • Hi!

    I have managed to compile and successfully run the SVN version, just there's one problem that remains:

    configure fails unless I use --disable-largefile.

    Trying to use configure with largefile support, this is what happens:

    checking for time_t... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... 64
    checking for off_t... yes
    checking for size_t... yes
    checking for _LARGEFILE_SOURCE value needed for large files... no
    configure: WARNING: fseeko has not been found on your system, will use fseek instead.
    configure: WARNING: This has not been tested, please report if you have any problems.
    checking for off_t... (cached) yes
    checking size of off_t... configure: error: cannot compute sizeof (off_t)
    See `config.log' for more details.

    I am not an expert on autoconf at all, but I have been digging a bit. I do have fseeko available on my system. I was able to compile a little test program, but I was only able to compile after I set the -D _LARGEFILE_SOURCE option on gcc. Withthout that one, fseeko is not found. But this seems to contradict:

    checking for _LARGEFILE_SOURCE value needed for large files... no

    Any idea how to fix this?

    Actually, largefile support was one of features why I had been waiting for the new version for such a long time.

    Regards,
    Torsten

     
    • Jin
      Jin
      2006-12-30

      Hi,

      doh.. largefile again. I have to admit: it cost me A LOT of time to implement it, and from time to time it causes problems.

      In your case I am even not sure what to say... we are using the default autoconf macro AC_SYS_LARGEFILE , it should take care of the compiler settings. I have no idea why it is failing on your system, what autoconf version are you using?

      I do not know if that would have any terrible implications, but you could try adding
      -D _LARGEFILE_SOURCE to your CFLAGS and CXXFLAGS and see if that helps. However, that is just an idea of the top of my head... it would be more important to figure out why AC_SYS_LARGEFILE is not setting up the flags as it should. Have you looked at the config.log output, any interesting information there?

      We tested largefile support on Fedora Core, Ubuntu and FreeBSD, we did not have problems there... so lets check if your distro has some known issues regarding largefile support.

      Greetings,
      Jin

       
    • > We tested largefile support on Fedora Core, Ubuntu and FreeBSD, we did not have problems
      > there... so lets check if your distro has some known issues regarding largefile support.

      It probably has.

      Here's a hack that worked for me.

      In configure.ac, I commented out these lines:

      #AC_FUNC_FSEEKO

      #if test "$ac_cv_func_fseeko" != yes; then
      #    AC_MSG_WARN([fseeko has not been found on your system, will use fseek instead.])
      #    AC_MSG_WARN([This has not been tested, please report if you have any problems.])
      #    AC_DEFINE([fseeko], [fseek], [fseeko not present])
      #fi

      Then I did a

      autoreconf -i
      ./configure
      make
      make install

      and everything was fine. It compiled, and it worked.

      I would suspect that the problem is that AC_FUNC_FSEEKO does not properly recognize fseeko (though it's definitely there), thus falls back to feeek which causes a lot of further failures.

      I don't think this is your fault at all, so I will check the Debian bug database and file a bug against the autoconf package if necessary.

      Regards,
      Torsten

       
    • Jin
      Jin
      2006-12-30

      OK, thanks for the information. What Debian exactly do you have?

      I could add a workaround configure command line parameter for this problem, i.e. --disable-fseeko-test or something similar, what do you think?

      Greetings,
      Jin

       
    • Jin
      Jin
      2007-01-07

      ok, here we go: I added a parameter to configure to workaround this bug.

      simply run configure with the --disable-fseeko-check option if you have Debian and run into the problem described in this thread.

      commited in rev 961