xref: /netbsd-src/external/bsd/bzip2/dist/README.COMPILATION.PROBLEMS (revision c12ab3f1404d3e6320413d6099c78880423d6a49)
14f9a1459Swiz------------------------------------------------------------------
24f9a1459SwizThis file is part of bzip2/libbzip2, a program and library for
34f9a1459Swizlossless, block-sorting data compression.
44f9a1459Swiz
5*c12ab3f1Smayabzip2/libbzip2 version 1.0.8 of 13 July 2019
6*c12ab3f1SmayaCopyright (C) 1996-2019 Julian Seward <jseward@acm.org>
74f9a1459Swiz
84f9a1459SwizPlease read the WARNING, DISCLAIMER and PATENTS sections in the
94f9a1459SwizREADME file.
104f9a1459Swiz
114f9a1459SwizThis program is released under the terms of the license contained
124f9a1459Swizin the file LICENSE.
134f9a1459Swiz------------------------------------------------------------------
144f9a1459Swiz
15*c12ab3f1Smayabzip2 should compile without problems on the vast majority of
164f9a1459Swizplatforms.  Using the supplied Makefile, I've built and tested it
174f9a1459Swizmyself for x86-linux and amd64-linux.  With makefile.msc, Visual C++
184f9a1459Swiz6.0 and nmake, you can build a native Win32 version too.  Large file
194f9a1459Swizsupport seems to work correctly on at least on amd64-linux.
204f9a1459Swiz
214f9a1459SwizWhen I say "large file" I mean a file of size 2,147,483,648 (2^31)
224f9a1459Swizbytes or above.  Many older OSs can't handle files above this size,
234f9a1459Swizbut many newer ones can.  Large files are pretty huge -- most files
244f9a1459Swizyou'll encounter are not Large Files.
254f9a1459Swiz
264f9a1459SwizEarly versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
274f9a1459Swizof platforms without difficulty, and I hope this version will continue
284f9a1459Swizin that tradition.  However, in order to support large files, I've had
294f9a1459Swizto include the define -D_FILE_OFFSET_BITS=64 in the Makefile.  This
304f9a1459Swizcan cause problems.
314f9a1459Swiz
324f9a1459SwizThe technique of adding -D_FILE_OFFSET_BITS=64 to get large file
334f9a1459Swizsupport is, as far as I know, the Recommended Way to get correct large
344f9a1459Swizfile support.  For more details, see the Large File Support
354f9a1459SwizSpecification, published by the Large File Summit, at
364f9a1459Swiz
374f9a1459Swiz   http://ftp.sas.com/standards/large.file
384f9a1459Swiz
394f9a1459SwizAs a general comment, if you get compilation errors which you think
404f9a1459Swizare related to large file support, try removing the above define from
414f9a1459Swizthe Makefile, ie, delete the line
424f9a1459Swiz
434f9a1459Swiz   BIGFILES=-D_FILE_OFFSET_BITS=64
444f9a1459Swiz
454f9a1459Swizfrom the Makefile, and do 'make clean ; make'.  This will give you a
464f9a1459Swizversion of bzip2 without large file support, which, for most
474f9a1459Swizapplications, is probably not a problem.
484f9a1459Swiz
494f9a1459SwizAlternatively, try some of the platform-specific hints listed below.
504f9a1459Swiz
514f9a1459SwizYou can use the spewG.c program to generate huge files to test bzip2's
524f9a1459Swizlarge file support, if you are feeling paranoid.  Be aware though that
534f9a1459Swizany compilation problems which affect bzip2 will also affect spewG.c,
544f9a1459Swizalas.
554f9a1459Swiz
564f9a1459SwizAIX: I have reports that for large file support, you need to specify
574f9a1459Swiz-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64.  I have not tested
584f9a1459Swizthis myself.
59