Instructions and hints regarding the Zlib library.
--------------------------------------------------------------------------------
Zlib site: http://zlib.net/
perforce:1666 import directory: //depot/import/zlib/...
When upgrading Zlib, ensure that job022258 (Mangle zlib linker-visible names)
does not regress. This is to support users linking against both our API and
other versions of Zlib. For Zlib 1.1.4, change 98998 added zsymbols.h to fix
this job (adding the PZ_ prefix.) For 1.2.5, Zlib added compile-time support
for symbol prefixes in zconf.h (with the z_ prefix,) which we changed to be
hard-coded. To revert to making it a compile-time flag, undo the change to
zconf.h and define Z_PREFIX (be aware that 641267 tried this and caused
compile errors on HPUX11IA64.)
Two ways of finding out what symbols are in a file (on ELF-based unix) are:
nm --extern-only p4d | grep z_ | awk '{print $3}' | sort
readelf --symbols p4d | grep z_ | awk '{print $8}' | sort
Note that the Zlib gzip is not the same as gzip.cc - our C++ wrapper. The
Zlib distro includes a number of unneeded files.
Zlib is used in various parts of the P4 codebase: btree(crc32 - must be fast,)
server networking and client. Also make sure that a Zlib upgrade doesn't break
non-C++ APIs such as p4-java. Testing on platforms with different endianness
is prudent.