
On 05/05/16 12:26, Michal Privoznik wrote:
On 05.05.2016 11:05, Erik Skultety wrote:
On 05/05/16 09:30, Michal Privoznik wrote:
I've noticed this while trying to compile libvirt on my arm box.
CC rpc/libvirt_net_rpc_server_la-virnetserverclient.lo rpc/virnetserverclient.c: In function 'virNetServerClientNewPostExecRestart': rpc/virnetserverclient.c:516:45: error: cast increases required alignment of target type [-Werror=cast-align] (long long *) ×tamp) < 0) { ^ cc1: all warnings being treated as errors
Problem is, @timestap is defined as time_t which is 32 bits long, and we are typecasting it to long long which is 64bits long. Solution is to make @timestamp type of long long. But that could overflow when passing the variable to virNetServerClientNewInternal(). Well, we can do this and hope to find a better solution for this till 19 January 2038 (yes, time_t on my arm box is signed long int).
Hmm, why don't we then represent the timestamp as long long in the first place, rather than having it as time_t. That way, no overflow as you mention could happen and the only problem for your machine then would be to cope with the 32bit timestamp time function returns, which will break libvirt and anything else anyway, but at least in an expected manner.
I don't know. It's not me who wrote the code :-P But sure, we could do that. It's going to be just a broadening of my patch anyway.
Michal
I guess I wasn't explicit in my last reply, you have an ACK if you also squash changes mentioned above into your patch. Erik