1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# $Id: sequence.ac,v 12.3 2005/11/24 00:49:24 bostic Exp $
# Try and configure sequence support.
AC_DEFUN(AM_SEQUENCE_CONFIGURE, [
AC_MSG_CHECKING([for 64-bit integral type support for sequences])
db_cv_build_sequence="yes"
# Have to have found 64-bit types to support sequences. If we don't
# find the native types, we try and create our own.
if test "$ac_cv_type_int64_t" = "no" -a -z "$int64_decl"; then
db_cv_build_sequence="no"
fi
if test "$ac_cv_type_uint64_t" = "no" -a -z "$u_int64_decl"; then
db_cv_build_sequence="no"
fi
# Figure out what type is the right size, and set the format.
AC_SUBST(INT64_FMT)
AC_SUBST(UINT64_FMT)
db_cv_seq_type="no"
if test "$db_cv_build_sequence" = "yes" -a\
"$ac_cv_sizeof_long" -eq "8"; then
db_cv_seq_type="long"
db_cv_seq_fmt='"%ld"'
db_cv_seq_ufmt='"%lu"'
INT64_FMT='#define INT64_FMT "%ld"'
UINT64_FMT='#define UINT64_FMT "%lu"'
else if test "$db_cv_build_sequence" = "yes" -a\
"$ac_cv_sizeof_long_long" -eq "8"; then
db_cv_seq_type="long long"
db_cv_seq_fmt='"%lld"'
db_cv_seq_ufmt='"%llu"'
INT64_FMT='#define INT64_FMT "%lld"'
UINT64_FMT='#define UINT64_FMT "%llu"'
else
db_cv_build_sequence="no"
fi
fi
# Test to see if we can declare variables of the appropriate size
# and format them. If we're cross-compiling, all we get is a link
# test, which won't test for the appropriate printf format strings.
if test "$db_cv_build_sequence" = "yes"; then
AC_TRY_RUN([
main() {
$db_cv_seq_type l;
unsigned $db_cv_seq_type u;
char buf@<:@100@:>@;
buf@<:@0@:>@ = 'a';
l = 9223372036854775807LL;
(void)snprintf(buf, sizeof(buf), $db_cv_seq_fmt, l);
if (strcmp(buf, "9223372036854775807"))
return (1);
u = 18446744073709551615ULL;
(void)snprintf(buf, sizeof(buf), $db_cv_seq_ufmt, u);
if (strcmp(buf, "18446744073709551615"))
return (1);
return (0);
}],, [db_cv_build_sequence="no"],
AC_TRY_LINK(,[
$db_cv_seq_type l;
unsigned $db_cv_seq_type u;
char buf@<:@100@:>@;
buf@<:@0@:>@ = 'a';
l = 9223372036854775807LL;
(void)snprintf(buf, sizeof(buf), $db_cv_seq_fmt, l);
if (strcmp(buf, "9223372036854775807"))
return (1);
u = 18446744073709551615ULL;
(void)snprintf(buf, sizeof(buf), $db_cv_seq_ufmt, u);
if (strcmp(buf, "18446744073709551615"))
return (1);
return (0);
],, [db_cv_build_sequence="no"]))
fi
if test "$db_cv_build_sequence" = "yes"; then
AC_SUBST(db_seq_decl)
db_seq_decl="typedef int64_t db_seq_t;";
AC_DEFINE(HAVE_64BIT_TYPES)
AH_TEMPLATE(HAVE_64BIT_TYPES,
[Define to 1 if 64-bit types are available.])
else
# It still has to compile, but it won't run.
db_seq_decl="typedef int db_seq_t;";
fi
AC_MSG_RESULT($db_cv_build_sequence)
])
|