]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Remove autoconf macros for time_t and alignment
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Wed, 10 May 2017 23:29:39 +0000 (01:29 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 16 May 2017 11:05:00 +0000 (13:05 +0200)
Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not
really correct, but is consistent with the old behavior.

aclocal.m4
configure.ac
lib/birdlib.h
sysdep/unix/timer.h

index c44751606ac1b6fb45240eb00e57d7e7625eb01c..365bfa81363d7ca8ae4d31f9db14bd3aca8b07ab 100644 (file)
@@ -1,94 +1,6 @@
 dnl ** Additional Autoconf tests for BIRD configure script
 dnl ** (c) 1999 Martin Mares <mj@ucw.cz>
 
-AC_DEFUN([BIRD_CHECK_STRUCT_ALIGN],
-[
-  AC_CACHE_CHECK(
-    [usual alignment of structures],
-    [bird_cv_c_struct_align],
-    [
-      AC_TRY_RUN(
-       [
-         #include <stdio.h>
-
-         struct { char x; long int y; } ary[2];
-
-         int main(void)
-         {
-           FILE *f = fopen("conftestresult", "w");
-           if (!f)
-             return 10;
-           fprintf(f, "%d", sizeof(ary)/2);
-           fclose(f);
-           exit(0);
-         }
-       ],
-       [bird_cv_c_struct_align=$(cat conftestresult)],
-       [
-         AC_MSG_RESULT([test program failed])
-         AC_MSG_ERROR([Cannot determine structure alignment])
-       ],
-       [bird_cv_c_struct_align=16]
-      )
-    ]
-  )
-
-  AC_DEFINE_UNQUOTED([CPU_STRUCT_ALIGN],
-    [$bird_cv_c_struct_align],
-    [Usual alignment of structures]
-  )
-])
-
-AC_DEFUN([BIRD_CHECK_TIME_T],
-[
-  AC_CACHE_CHECK(
-    [characteristics of time_t],
-    [bird_cv_type_time_t],
-    [
-      AC_TRY_RUN(
-       [
-         #include <stdio.h>
-         #include <sys/time.h>
-         #include <limits.h>
-
-         int main(void)
-         {
-           FILE *f = fopen("conftestresult", "w");
-           if (!f)
-             return 10;
-           fprintf(f, "%d-bit ", sizeof(time_t)*CHAR_BIT);
-           if ((time_t) -1 > 0)
-             fprintf(f, "un");
-           fprintf(f, "signed");
-           fclose(f);
-           exit(0);
-         }
-       ],
-       [bird_cv_type_time_t=$(cat conftestresult)],
-       [
-         AC_MSG_RESULT([test program failed])
-         AC_MSG_ERROR([Cannot determine time_t size and signedness.])
-       ],
-       [bird_cv_type_time_t="32-bit signed"]
-      )
-    ]
-  )
-
-  case "$bird_cv_type_time_t" in
-    *64-bit*)
-      AC_DEFINE([TIME_T_IS_64BIT], [1],        [Define to 1 if time_t is 64 bit])
-      ;;
-  esac
-
-  case "$bird_cv_type_time_t" in
-    *unsigned*)
-      ;;
-    *)
-      AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed])
-      ;;
-  esac
-])
-
 AC_DEFUN([BIRD_CHECK_PTHREADS],
 [
   bird_tmp_cflags="$CFLAGS"
index aac5679c2b04b3258e59937694def5c15b9d041f..7910c196d6aaf3bc4387d5829247cb330c779c0e 100644 (file)
@@ -320,9 +320,6 @@ AC_C_BIGENDIAN(
   [AC_MSG_ERROR([Cannot determine CPU endianity.])]
 )
 
-BIRD_CHECK_STRUCT_ALIGN
-BIRD_CHECK_TIME_T
-
 if test "$enable_debug" = yes ; then
   AC_DEFINE([DEBUGGING], [1], [Define to 1 if debugging is enabled])
   if test "$enable_memcheck" = yes ; then
index 37337078d4bb99fb909421fb16e876ab5cecbeef..d21cdf1f1b578cf24aac656c73a5cb988a96a621 100644 (file)
 
 /* Ugly structure offset handling macros */
 
+struct align_probe { char x; long int y; };
+
 #define OFFSETOF(s, i) ((size_t) &((s *)0)->i)
 #define SKIP_BACK(s, i, p) ((s *)((char *)p - OFFSETOF(s, i)))
 #define BIRD_ALIGN(s, a) (((s)+a-1)&~(a-1))
+#define CPU_STRUCT_ALIGN (sizeof(struct align_probe))
 
 /* Utility macros */
 
index 99d43932884b93c242c6df2dceeb6306078e06b6..ae5a27e80fe67003bced16893aea7a2007b04ab2 100644 (file)
@@ -77,14 +77,12 @@ bird_clock_t tm_parse_datetime(char *);     /* Convert date to bird_clock_t */
 void
 tm_format_datetime(char *x, struct timeformat *fmt_spec, bird_clock_t t);
 
-#ifdef TIME_T_IS_64BIT
-#define TIME_INFINITY 0x7fffffffffffffff
-#else
-#ifdef TIME_T_IS_SIGNED
-#define TIME_INFINITY 0x7fffffff
-#else
-#define TIME_INFINITY 0xffffffff
-#endif
-#endif
+#define TIME_T_IS_64BIT (sizeof(time_t) == 8)
+#define TIME_T_IS_SIGNED ((time_t) -1 < 0)
+
+#define TIME_INFINITY                                                  \
+  ((time_t) (TIME_T_IS_SIGNED ?                                                \
+            (TIME_T_IS_64BIT ? 0x7fffffffffffffff : 0x7fffffff):       \
+            (TIME_T_IS_64BIT ? 0xffffffffffffffff : 0xffffffff)))
 
 #endif