Fix fcntl decoding

Assume that F_SETLK64, F_SETLKW64, and F_GETLK64 are either defined or
not defined altogether.
Do not assume that sizeof(off_t) < sizeof(long long) when F_SETLK64 is
undefined.

This change fixes build with musl libc on x86.

* configure.ac: Define SIZEOF_OFF_T.
* desc.c (USE_PRINTFLOCK64): New macro.
(struct flock64, printflock64): Do not define on X32.
(printflock): Replace X32 specific workaround with SIZEOF_OFF_T check.
Fix printing off_t members of struct flock.
(sys_fcntl): Use USE_PRINTFLOCK64.
diff --git a/configure.ac b/configure.ac
index caa5aed..682f54e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -297,6 +297,7 @@
 
 AC_CHECK_SIZEOF([long])
 AC_CHECK_SIZEOF([long long])
+AC_CHECK_SIZEOF([off_t],,[#include <sys/types.h>])
 AC_CHECK_SIZEOF([rlim_t],,[#include <sys/resource.h>])
 
 AC_CACHE_CHECK([for SA_RESTORER], [st_cv_sa_restorer],