We turn on a few extra warnings and fix the fallout that occurs
when building with --enable-developer. Note that we get different
warnings on different machines and so this will be a work in
progress. So far, we have built on NetBSD/amd64 5.99.64 (which
uses gcc 4.5.3) and Ubuntu 10.04.3 LTS (which uses gcc 4.4.3).
Notably, we fixed
1. a lot of missing structure initialisers,
2. unchecked return values for functions that glibc
marks as __attribute__((warn-unused-result)),
3. made minor modifications to slc and asn1_compile
which can generate code which generates warnings,
and
4. a few stragglers here and there.
We turned off the extended warnings for many programs in appl/ as
they are nearing the end of their useful lifetime, e.g. rsh, rcp,
popper, ftp and telnet.
Interestingly, glibc's strncmp() macro needed to be worked around
whereas the function calls did not.
We have not yet tried this on 32 bit platforms, so there will be
a few more warnings when we do.
Add strtoll()/strtoull() to lib/roken
Add stdint.h to lib/roken (Windows only)
Add logic to detect whether to use lib/roken's stdint.h based on
Visual Studio version
Add include of stdint.h in generated ASN.1 code
Export missing symbols for 64-bit integers in lib/asn1
Export missing symbols for FAST
Add missing sources to kdc/NTMakefile
Fix issue in kuserok
Fix bsearch issues
Start to explain what the replacement function is.
Generate the #define/#undef logic in generated header files.
Use gcc style where the deprecation warning is after the prototype.
The export symbol list for ASN.1 on Windows is generated by scanning
all the .obj files and extracting the symbols defined in them. The
generated list did not specify which were functions and which were
data symbols. This distinction is necessary for generating correct
import library stubs.
Adds --with-berkeley-db-include=dir option to configure to use berkeley
db headers in dir. Default is to let configure check. Also adds
support for checking for and using db5/db.h
Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
This script analyzes the export lists for MIT Kerberos for Windows,
export lists for Heimdal DLLs and the symbol lists from the shim code
and generates the appropriate export definition (.DEF) files.
.DEF files that are generated are committed to the source tree because
otherwise having MIT KfW DLLs around would be a build requirement. If
there is any change to the shim code, the export .DEF files should be
rebuilt using:
nmake /f NTMakefile DEV=1 gen-defs
.. from the packages/windows/kfw_shim directory. The new .DEF files
should then be commited.
During a test run, cross check the Windows exports list against the
version-script files. For the test to pass, all symbols on either
list should be accounted for.
If there are symbols that are specific to Windows or symbols that are
not included on Windows, they should be annotated in the .def file as
follows:
;! non_windows_symbol
common_symbol
windows_only_symbol ;!