xref: /freebsd-src/contrib/bzip2/README.COMPILATION.PROBLEMS (revision f7a4f99f70313385df697229c92ab37cb671d8ea)
1df9de0ebSDavid E. O'Brien
2*f7a4f99fSDavid E. O'Brienbzip2-1.0.3 should compile without problems on the vast majority of
3df9de0ebSDavid E. O'Brienplatforms.  Using the supplied Makefile, I've built and tested it
4*f7a4f99fSDavid E. O'Brienmyself for x86-linux and x86_64-linux.  With makefile.msc, Visual C++
5*f7a4f99fSDavid E. O'Brien6.0 and nmake, you can build a native Win32 version too.  Large file
6*f7a4f99fSDavid E. O'Briensupport seems to work correctly on at least alpha-tru64unix and
7*f7a4f99fSDavid E. O'Brienx86-cygwin32 (on Windows 2000).
8df9de0ebSDavid E. O'Brien
9df9de0ebSDavid E. O'BrienWhen I say "large file" I mean a file of size 2,147,483,648 (2^31)
10df9de0ebSDavid E. O'Brienbytes or above.  Many older OSs can't handle files above this size,
11df9de0ebSDavid E. O'Brienbut many newer ones can.  Large files are pretty huge -- most files
12df9de0ebSDavid E. O'Brienyou'll encounter are not Large Files.
13df9de0ebSDavid E. O'Brien
14df9de0ebSDavid E. O'BrienEarlier versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide
15df9de0ebSDavid E. O'Brienvariety of platforms without difficulty, and I hope this version will
16df9de0ebSDavid E. O'Briencontinue in that tradition.  However, in order to support large files,
17df9de0ebSDavid E. O'BrienI've had to include the define -D_FILE_OFFSET_BITS=64 in the Makefile.
18df9de0ebSDavid E. O'BrienThis can cause problems.
19df9de0ebSDavid E. O'Brien
20df9de0ebSDavid E. O'BrienThe technique of adding -D_FILE_OFFSET_BITS=64 to get large file
21df9de0ebSDavid E. O'Briensupport is, as far as I know, the Recommended Way to get correct large
22df9de0ebSDavid E. O'Brienfile support.  For more details, see the Large File Support
23df9de0ebSDavid E. O'BrienSpecification, published by the Large File Summit, at
24*f7a4f99fSDavid E. O'Brien   http://ftp.sas.com/standards/large.file
25df9de0ebSDavid E. O'Brien
26df9de0ebSDavid E. O'BrienAs a general comment, if you get compilation errors which you think
27df9de0ebSDavid E. O'Brienare related to large file support, try removing the above define from
28df9de0ebSDavid E. O'Brienthe Makefile, ie, delete the line
29df9de0ebSDavid E. O'Brien   BIGFILES=-D_FILE_OFFSET_BITS=64
30df9de0ebSDavid E. O'Brienfrom the Makefile, and do 'make clean ; make'.  This will give you a
31df9de0ebSDavid E. O'Brienversion of bzip2 without large file support, which, for most
32df9de0ebSDavid E. O'Brienapplications, is probably not a problem.
33df9de0ebSDavid E. O'Brien
34df9de0ebSDavid E. O'BrienAlternatively, try some of the platform-specific hints listed below.
35df9de0ebSDavid E. O'Brien
36df9de0ebSDavid E. O'BrienYou can use the spewG.c program to generate huge files to test bzip2's
37df9de0ebSDavid E. O'Brienlarge file support, if you are feeling paranoid.  Be aware though that
38df9de0ebSDavid E. O'Brienany compilation problems which affect bzip2 will also affect spewG.c,
39df9de0ebSDavid E. O'Brienalas.
40