What is the correct set of compile tests needed for these y2038 changes?
I've simply done 32 and 64 bit compiles and am concerned with what I may be missing.
Please point me to any relevant documentation.
Thanks, Alison
On Monday 16 November 2015 09:23:45 Alison Schofield wrote:
What is the correct set of compile tests needed for these y2038 changes?
I've simply done 32 and 64 bit compiles and am concerned with what I may be missing.
Please point me to any relevant documentation.
I don't know of any good documentation for this, but there are a few common mistakes to watch out for:
- If a file (or even part of the file) is protected by a Kconfig symbol, you have to first turn it on in Kconfig, otherwise you don't compile the code in question when you build the directory. I assume you've noticed this one already.
- Some symbols have complex dependencies and need other things to be turned on first. This is particularly tricky if they depend on a specific CPU architecture. When that happens, you need a cross compiler from https://www.kernel.org/pub/tools/crosstool/files/bin/ to build the kernel, following the cross compilation documentation
- In particular when converting time_t to time64_t, you might be introducing a 64-bit division on 32-bit architectures. This will not cause an error when compiling just the one driver you patched, but will cause a link error when you build the entire kernel and modules. To be sure, always run a plain 'make' rather than 'make drivers/subdir/' or similar.
Arnd