11b79bae0SXin LI------------------------------------------------------------------ 21b79bae0SXin LIThis file is part of bzip2/libbzip2, a program and library for 31b79bae0SXin LIlossless, block-sorting data compression. 4df9de0ebSDavid E. O'Brien 5*51f61fc0SXin LIbzip2/libbzip2 version 1.0.8 of 13 July 2019 6*51f61fc0SXin LICopyright (C) 1996-2019 Julian Seward <jseward@acm.org> 71b79bae0SXin LI 81b79bae0SXin LIPlease read the WARNING, DISCLAIMER and PATENTS sections in the 91b79bae0SXin LIREADME file. 101b79bae0SXin LI 111b79bae0SXin LIThis program is released under the terms of the license contained 121b79bae0SXin LIin the file LICENSE. 131b79bae0SXin LI------------------------------------------------------------------ 141b79bae0SXin LI 15b88cc53dSXin LIbzip2 should compile without problems on the vast majority of 16df9de0ebSDavid E. O'Brienplatforms. Using the supplied Makefile, I've built and tested it 171b79bae0SXin LImyself for x86-linux and amd64-linux. With makefile.msc, Visual C++ 18f7a4f99fSDavid E. O'Brien6.0 and nmake, you can build a native Win32 version too. Large file 191b79bae0SXin LIsupport seems to work correctly on at least on amd64-linux. 20df9de0ebSDavid E. O'Brien 21df9de0ebSDavid E. O'BrienWhen I say "large file" I mean a file of size 2,147,483,648 (2^31) 22df9de0ebSDavid E. O'Brienbytes or above. Many older OSs can't handle files above this size, 23df9de0ebSDavid E. O'Brienbut many newer ones can. Large files are pretty huge -- most files 24df9de0ebSDavid E. O'Brienyou'll encounter are not Large Files. 25df9de0ebSDavid E. O'Brien 261b79bae0SXin LIEarly versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety 271b79bae0SXin LIof platforms without difficulty, and I hope this version will continue 281b79bae0SXin LIin that tradition. However, in order to support large files, I've had 291b79bae0SXin LIto include the define -D_FILE_OFFSET_BITS=64 in the Makefile. This 301b79bae0SXin LIcan cause problems. 31df9de0ebSDavid E. O'Brien 32df9de0ebSDavid E. O'BrienThe technique of adding -D_FILE_OFFSET_BITS=64 to get large file 33df9de0ebSDavid E. O'Briensupport is, as far as I know, the Recommended Way to get correct large 34df9de0ebSDavid E. O'Brienfile support. For more details, see the Large File Support 35df9de0ebSDavid E. O'BrienSpecification, published by the Large File Summit, at 361b79bae0SXin LI 37f7a4f99fSDavid E. O'Brien http://ftp.sas.com/standards/large.file 38df9de0ebSDavid E. O'Brien 39df9de0ebSDavid E. O'BrienAs a general comment, if you get compilation errors which you think 40df9de0ebSDavid E. O'Brienare related to large file support, try removing the above define from 41df9de0ebSDavid E. O'Brienthe Makefile, ie, delete the line 421b79bae0SXin LI 43df9de0ebSDavid E. O'Brien BIGFILES=-D_FILE_OFFSET_BITS=64 441b79bae0SXin LI 45df9de0ebSDavid E. O'Brienfrom the Makefile, and do 'make clean ; make'. This will give you a 46df9de0ebSDavid E. O'Brienversion of bzip2 without large file support, which, for most 47df9de0ebSDavid E. O'Brienapplications, is probably not a problem. 48df9de0ebSDavid E. O'Brien 49df9de0ebSDavid E. O'BrienAlternatively, try some of the platform-specific hints listed below. 50df9de0ebSDavid E. O'Brien 51df9de0ebSDavid E. O'BrienYou can use the spewG.c program to generate huge files to test bzip2's 52df9de0ebSDavid E. O'Brienlarge file support, if you are feeling paranoid. Be aware though that 53df9de0ebSDavid E. O'Brienany compilation problems which affect bzip2 will also affect spewG.c, 54df9de0ebSDavid E. O'Brienalas. 551b79bae0SXin LI 561b79bae0SXin LIAIX: I have reports that for large file support, you need to specify 571b79bae0SXin LI-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64. I have not tested 581b79bae0SXin LIthis myself. 59