On Tuesday 15 September 2015 10:08:01 Pingbo Wen wrote:
The change from (int) to (long) is not necessary here, because the nanoseconds always fit in a 32bit int type.
However, the tv_sec variable is currently defined in a slightly awkward way, and is 'long' on 64-bit architectures but 'long long' on 32-bit architectures.
This means you get a compile warning for a type mismatch on 64-bit compilers that print a 'long' argument with %lld. The best workaround I've come up with is to add a cast to 'long long' or 's64', which is defined as 'long long' on all architectures.
To avoid problems like this, it's useful to build test with both 32-bit and 64-bit compilers, and to list in the changelog text what kind of testing you have done to verify the driver.
I didn’t notice that. It seems hp_sdc_rtc only available in m68k & hppa arch. I am still on the way to compile it correctly.
Ok. There are two options for this:
a) get a cross-compiler for the respective architectures. https://www.kernel.org/pub/tools/crosstool/ has prebuilt binaries for most, otherwise use the scripts from http://git.infradead.org/users/segher/buildall.git to easily build your own.
b) temporarily change Kconfig to not list a dependency on those architectures and build it for x86 or arm (whichever is easier) in both 32-bit and 64-bit. Most of the time that works, but occasionally get you get dependencies on arch headers that are nontrivial to resolve.
Arnd