diff options
author | Guillaume Xavier Taillon <gtaillon@ca.ibm.com> | 2016-02-22 14:46:24 -0500 |
---|---|---|
committer | Bjoern Jacke <bj@sernet.de> | 2017-06-13 09:11:56 +0200 |
commit | 67095c76f64c61a5472c0233e44520ccc4eddbc8 (patch) | |
tree | 31561ad03a110e4eaa53455f669f1363ef5db405 /lib | |
parent | 60a8ba4a6b028d516b39de2f55c68a6e8cbbf43f (diff) | |
download | samba-67095c76f64c61a5472c0233e44520ccc4eddbc8.tar.gz |
libbreplace: compatibility fix for AIX
Adds macros for preprocessor compares and replaces an incomptatible
compare with one of the new macros.
This fixes a comptability bug on AIX.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11621
Signed-off-by: Guillaume Xavier Taillon <gtaillon@ca.ibm.com>
Reviewed-by: Björn Jacke <bjacke@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Björn Jacke <bj@sernet.de>
Autobuild-Date(master): Tue Jun 13 09:11:56 CEST 2017 on sn-devel-144
Diffstat (limited to 'lib')
-rw-r--r-- | lib/replace/system/time.h | 10 | ||||
-rw-r--r-- | lib/util/time.c | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/replace/system/time.h b/lib/replace/system/time.h index b6d26092890..00f0d7f99e6 100644 --- a/lib/replace/system/time.h +++ b/lib/replace/system/time.h @@ -79,13 +79,21 @@ int rep_utimes(const char *filename, const struct timeval tv[2]); typedef int clockid_t; int rep_clock_gettime(clockid_t clk_id, struct timespec *tp); #endif -/* make sure we have a best effort CUSTOM_CLOCK_MONOTONIC we can rely on */ +/* make sure we have a best effort CUSTOM_CLOCK_MONOTONIC we can rely on. + * + * on AIX the values of CLOCK_* are cast expressions, not integer constants, + * this prevents them from being compared against in a preprocessor directive. + * The following ...IS_* macros can be used to check which clock is in use. + */ #if defined(CLOCK_MONOTONIC) #define CUSTOM_CLOCK_MONOTONIC CLOCK_MONOTONIC +#define CUSTOM_CLOCK_MONOTONIC_IS_MONOTONIC #elif defined(CLOCK_HIGHRES) #define CUSTOM_CLOCK_MONOTONIC CLOCK_HIGHRES +#define CUSTOM_CLOCK_MONOTONIC_IS_HIGHRES #else #define CUSTOM_CLOCK_MONOTONIC CLOCK_REALTIME +#define CUSTOM_CLOCK_MONOTONIC_IS_REALTIME #endif #endif diff --git a/lib/util/time.c b/lib/util/time.c index 8c01627e2a1..8a4d93d4ac1 100644 --- a/lib/util/time.c +++ b/lib/util/time.c @@ -60,7 +60,7 @@ _PUBLIC_ void clock_gettime_mono(struct timespec *tp) } #endif /* then try the monotonic clock: */ -#if CUSTOM_CLOCK_MONOTONIC != CLOCK_REALTIME +#ifndef CUSTOM_CLOCK_MONOTONIC_IS_REALTIME if (clock_gettime(CUSTOM_CLOCK_MONOTONIC,tp) == 0) { return; } |