Changes in TIFF v4.0.5

References

Current Version

v4.0.5 (tag Release-v4-0-5)

Previous Version

v4.0.4

Master Download Site

https://download.osgeo.org/libtiff/

Master HTTP Site

https://download.osgeo.org/libtiff/

This document describes the changes made to the software between the previous and current versions (see above). If you don't find something listed here, then it was not done in this timeframe, or it was not considered important enough to be mentioned. The following information is located here:

Major changes

  • Support for configure/build using CMake.

  • Support for large (> 2GB) files under Microsoft Windows.

Software configuration changes

  • CMakeLists.txt / CMake

    • Configuration and building using CMake is now supported under Microsoft Windows and on Unix-type systems.

  • configure.ac / configure

    • Test for and use fseeko() if it is available. This allows supporting large files on Unix-type systems with a 32-bit long type and a 64-bit off_t type.

Library changes

  • tiffiop.h:

    • Macros added to use 64-bit equivalents for all standard I/O and POSIX APIs used by libtiff and its tools which are limited to 2GB in Windows builds. Note that these 64-bit equivalents were introduced by the CRT provided with Visual Studio 2005 and if the necessary CRT is not installed on the target computer, the program will not run. The wrapper macros will not be activated unless the definition _MSC_VER is at least 1400 or :c:macro:__MSVCRT_VERSION__ is at least 0x800.

  • tif_unix.c:

    • Updated to support large files under Microsoft Windows. This makes tif_unix.c a completely viable candidate for use under Windows (in spite of its name) if the CRT is modern enough. Please note that tif_win32.c already supported large files, but only tiffinfo and tiffdump made any provision to support large files under Windows.

    • _tiffReadProc() and _tiffWriteProc() are modified to chunk I/O to a maximum size of 2GB for extremely large I/O requests. This surmounts limitations in the Microsoft Windows read() and write() APIs (which are limited to the range of a 32-bit int), and may avoid poor behavior with extremely large I/O requests on other systems.

Tools changes

  • All tools

    • Updated to use I/O wrapper macros from tiffiop.h in order to support large files under Microsoft Windows.

Contributed software changes

None