xref: /aosp_15_r20/external/bzip2/README.COMPILATION.PROBLEMS (revision 0ac9a9daea5cce2e775d5da949508593e2ee9206)
1*0ac9a9daSXin Li------------------------------------------------------------------
2*0ac9a9daSXin LiThis file is part of bzip2/libbzip2, a program and library for
3*0ac9a9daSXin Lilossless, block-sorting data compression.
4*0ac9a9daSXin Li
5*0ac9a9daSXin Libzip2/libbzip2 version 1.0.8 of 13 July 2019
6*0ac9a9daSXin LiCopyright (C) 1996-2019 Julian Seward <[email protected]>
7*0ac9a9daSXin Li
8*0ac9a9daSXin LiPlease read the WARNING, DISCLAIMER and PATENTS sections in the
9*0ac9a9daSXin LiREADME file.
10*0ac9a9daSXin Li
11*0ac9a9daSXin LiThis program is released under the terms of the license contained
12*0ac9a9daSXin Liin the file LICENSE.
13*0ac9a9daSXin Li------------------------------------------------------------------
14*0ac9a9daSXin Li
15*0ac9a9daSXin Libzip2 should compile without problems on the vast majority of
16*0ac9a9daSXin Liplatforms.  Using the supplied Makefile, I've built and tested it
17*0ac9a9daSXin Limyself for x86-linux and amd64-linux.  With makefile.msc, Visual C++
18*0ac9a9daSXin Li6.0 and nmake, you can build a native Win32 version too.  Large file
19*0ac9a9daSXin Lisupport seems to work correctly on at least on amd64-linux.
20*0ac9a9daSXin Li
21*0ac9a9daSXin LiWhen I say "large file" I mean a file of size 2,147,483,648 (2^31)
22*0ac9a9daSXin Libytes or above.  Many older OSs can't handle files above this size,
23*0ac9a9daSXin Libut many newer ones can.  Large files are pretty huge -- most files
24*0ac9a9daSXin Liyou'll encounter are not Large Files.
25*0ac9a9daSXin Li
26*0ac9a9daSXin LiEarly versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
27*0ac9a9daSXin Liof platforms without difficulty, and I hope this version will continue
28*0ac9a9daSXin Liin that tradition.  However, in order to support large files, I've had
29*0ac9a9daSXin Lito include the define -D_FILE_OFFSET_BITS=64 in the Makefile.  This
30*0ac9a9daSXin Lican cause problems.
31*0ac9a9daSXin Li
32*0ac9a9daSXin LiThe technique of adding -D_FILE_OFFSET_BITS=64 to get large file
33*0ac9a9daSXin Lisupport is, as far as I know, the Recommended Way to get correct large
34*0ac9a9daSXin Lifile support.  For more details, see the Large File Support
35*0ac9a9daSXin LiSpecification, published by the Large File Summit, at
36*0ac9a9daSXin Li
37*0ac9a9daSXin Li   http://ftp.sas.com/standards/large.file
38*0ac9a9daSXin Li
39*0ac9a9daSXin LiAs a general comment, if you get compilation errors which you think
40*0ac9a9daSXin Liare related to large file support, try removing the above define from
41*0ac9a9daSXin Lithe Makefile, ie, delete the line
42*0ac9a9daSXin Li
43*0ac9a9daSXin Li   BIGFILES=-D_FILE_OFFSET_BITS=64
44*0ac9a9daSXin Li
45*0ac9a9daSXin Lifrom the Makefile, and do 'make clean ; make'.  This will give you a
46*0ac9a9daSXin Liversion of bzip2 without large file support, which, for most
47*0ac9a9daSXin Liapplications, is probably not a problem.
48*0ac9a9daSXin Li
49*0ac9a9daSXin LiAlternatively, try some of the platform-specific hints listed below.
50*0ac9a9daSXin Li
51*0ac9a9daSXin LiYou can use the spewG.c program to generate huge files to test bzip2's
52*0ac9a9daSXin Lilarge file support, if you are feeling paranoid.  Be aware though that
53*0ac9a9daSXin Liany compilation problems which affect bzip2 will also affect spewG.c,
54*0ac9a9daSXin Lialas.
55*0ac9a9daSXin Li
56*0ac9a9daSXin LiAIX: I have reports that for large file support, you need to specify
57*0ac9a9daSXin Li-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64.  I have not tested
58*0ac9a9daSXin Lithis myself.
59