Re: [ROOT] Large File Support

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Jan 13 2004 - 08:42:55 MET


Hi Karl,

If you have a system with gcc3.2 and libstdc++.5, a bug has been reported
to the gcc people, see:
 http://lists.debian.org/debian-gcc/2003/debian-gcc-200311/msg00110.html
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8610

This bug appears when using ifstream.
I also faced the same problem when implementing support for large files
in ROOT version 4.0 (yes, we support large files now).
Using directly the C library with fopen64, stat64, lseek64, etc
works perfectly.

Rene Brun

Karl Hauschild wrote:
> 
> Hi,
> 
> Could someone either verify that there is a problem with
> Large File Support using gcc > 3.2 or tell me what I need
> to do to get Large File Support using C++.
> 
> I have used.....
> 
> int OpenLarge() {
>   //Data files
>   ifstream   dataFile; //C++ style io
>   FILE       *fin;     //C   style io
> 
>   //try reading in c-formatted
>   if ((fin = fopen("newtest.out","r")) == NULL)
>     return -1;
> 
>   cout << "Opened c-style" << endl;
>   fclose(fin);
> 
>   //try C++ io
>   dataFile.open("newtest.out", ios::in);
>   if(dataFile)
>     cout << "Opened c++style" << endl;
>   else
>     return -2;
> 
>   return 1;
> }
> 
> and in the Makefile have
> 
> OVER2GIGS       = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> CXXFLAGS        = -O2 -fPIC -Wunused -Winline $(ATHLON) $(OVER2GIGS)



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET