]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
LINUX 5.6: define osi_timeval32_t for 32-bit Linux
authorMark Vitale <mvitale@sinenomine.net>
Mon, 18 May 2020 21:20:26 +0000 (17:20 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Fri, 12 Jun 2020 15:37:12 +0000 (11:37 -0400)
For 32-bit Linux (e.g., arch i586), AFS_LINUX_64BIT_KERNEL is not
defined, so osi_timeval32_t is defined as a typedef of the native
'timeval'.  However, as of commit
c766d1472c70d25ad475cf56042af1652e792b23 "y2038: hide
timeval/timespec/itimerval/itimerspec types" (Linux 5.6), the native
timeval struct is no longer available.  On such a kernel, the OpenAFS
build will fail because osi_timeval32_t is not properly defined.

Instead, add new conditionals to properly define osi_timeval32_t for
this platform.

Reviewed-on: https://gerrit.openafs.org/14216
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit 9a5790cfbb8e7b1a4a2e832911c71da49f604c20)

Change-Id: I223d8407bf28e91ffb2669013c089053ae93feb3
Reviewed-on: https://gerrit.openafs.org/14234
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/LINUX/osi_machdep.h
src/afs/afs_osi.h

index 1864cec6e4279c06042ad173f15cc4fc7f17dfda..78482962781cb954d09f0c8059007b2ae60d7106 100644 (file)
@@ -104,7 +104,7 @@ static inline time_t osi_Time(void) {
        (V)->tv_sec = (afs_int32)__afs_tv.tv_sec;            \
        (V)->tv_usec = (afs_int32)__afs_tv.tv_nsec / 1000;   \
     } while(0)
-#elif defined(AFS_LINUX_64BIT_KERNEL)
+#elif defined(AFS_LINUX_64BIT_KERNEL) || !defined(HAVE_LINUX_TIME_T)
 # define osi_GetTime(V)                                 \
     do {                                               \
        struct timeval __afs_tv;                              \
index 5e21cfdd24e7034df6bbd9580b392e0de661bcde..acd5679ecf12cf8feb1ef1e31c950d83a57a0ad0 100644 (file)
@@ -177,7 +177,7 @@ extern void osi_AttachVnode(struct vcache *, int seq);
   * In 64 bit HP-UX the timeval structure has a 64 bit member.
   */
 
-#if defined(AFS_HPUX_ENV) || defined(AFS_LINUX_64BIT_KERNEL) || (defined(AFS_SGI61_ENV) && defined(KERNEL) && defined(_K64U64))
+#if defined(AFS_HPUX_ENV) || defined(AFS_LINUX_64BIT_KERNEL) || (defined(AFS_LINUX26_ENV) && !defined(HAVE_LINUX_TIME_T)) || (defined(AFS_SGI61_ENV) && defined(KERNEL) && defined(_K64U64))
 typedef struct {
     afs_int32 tv_sec;
     afs_int32 tv_usec;