Re: linux-next: build failure after merge of the akpm-current tree

From: J. Bruce Fields
Date: Fri Jan 31 2020 - 19:32:33 EST


On Fri, Jan 31, 2020 at 02:13:09PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> After merging the akpm-current tree, today's linux-next build (arm
> multi_v7_defconfig) failed like this:
>
> net/sunrpc/auth_gss/svcauth_gss.c: In function 'gss_proxy_save_rsc':
> net/sunrpc/auth_gss/svcauth_gss.c:1251:19: error: storage size of 'boot' isn't known
> 1251 | struct timespec boot;
> | ^~~~
> net/sunrpc/auth_gss/svcauth_gss.c:1273:3: error: implicit declaration of function 'getboottime'; did you mean 'getboottime64'? [-Werror=implicit-function-declaration]
> 1273 | getboottime(&boot);
> | ^~~~~~~~~~~
> | getboottime64
> net/sunrpc/auth_gss/svcauth_gss.c:1251:19: warning: unused variable 'boot' [-Wunused-variable]
> 1251 | struct timespec boot;
> | ^~~~
>
> Caused by commit
>
> a415f20a18c9 ("sunrpc: expiry_time should be seconds not timeval")
>
> from the nfsd tree interacting with commits
>
> de371b6c7b73 ("y2038: remove unused time32 interfaces")
> aa7ff200a719 ("y2038: hide timeval/timespec/itimerval/itimerspec types")
>
> from the akpm-current tree.
>
> I have reverted the nfsd commit for today. A better solution is requested.

Unfortunately that expiry time seems to be a signed 32-bit integer in
both the kernel<->gss-proxy and the gss-proxy<->krb5 interfaces.

I guess we'll have to come to an agreement with the krb5 developers.

Simplest might be to agree that the thing's unsigned. The expiry
shouldn't ever need to be decades in the future, so unsigned mod 2^32
arithmetic should work forever.

--b.