xref: /freebsd/contrib/bzip2/README.COMPILATION.PROBLEMS (revision 02e9120893770924227138ba49df1edb3896112a)
1------------------------------------------------------------------
2This file is part of bzip2/libbzip2, a program and library for
3lossless, block-sorting data compression.
4
5bzip2/libbzip2 version 1.0.8 of 13 July 2019
6Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
7
8Please read the WARNING, DISCLAIMER and PATENTS sections in the
9README file.
10
11This program is released under the terms of the license contained
12in the file LICENSE.
13------------------------------------------------------------------
14
15bzip2 should compile without problems on the vast majority of
16platforms.  Using the supplied Makefile, I've built and tested it
17myself for x86-linux and amd64-linux.  With makefile.msc, Visual C++
186.0 and nmake, you can build a native Win32 version too.  Large file
19support seems to work correctly on at least on amd64-linux.
20
21When I say "large file" I mean a file of size 2,147,483,648 (2^31)
22bytes or above.  Many older OSs can't handle files above this size,
23but many newer ones can.  Large files are pretty huge -- most files
24you'll encounter are not Large Files.
25
26Early versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
27of platforms without difficulty, and I hope this version will continue
28in that tradition.  However, in order to support large files, I've had
29to include the define -D_FILE_OFFSET_BITS=64 in the Makefile.  This
30can cause problems.
31
32The technique of adding -D_FILE_OFFSET_BITS=64 to get large file
33support is, as far as I know, the Recommended Way to get correct large
34file support.  For more details, see the Large File Support
35Specification, published by the Large File Summit, at
36
37   http://ftp.sas.com/standards/large.file
38
39As a general comment, if you get compilation errors which you think
40are related to large file support, try removing the above define from
41the Makefile, ie, delete the line
42
43   BIGFILES=-D_FILE_OFFSET_BITS=64
44
45from the Makefile, and do 'make clean ; make'.  This will give you a
46version of bzip2 without large file support, which, for most
47applications, is probably not a problem.
48
49Alternatively, try some of the platform-specific hints listed below.
50
51You can use the spewG.c program to generate huge files to test bzip2's
52large file support, if you are feeling paranoid.  Be aware though that
53any compilation problems which affect bzip2 will also affect spewG.c,
54alas.
55
56AIX: I have reports that for large file support, you need to specify
57-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64.  I have not tested
58this myself.
59