|
Lines 103-172
if test "$GCC" = "yes" || test "$GCC" =
Link Here
|
| 103 |
fi |
103 |
fi |
| 104 |
fi |
104 |
fi |
| 105 |
|
105 |
|
| 106 |
if test -z "$have_llong_max"; then |
|
|
| 107 |
AC_MSG_CHECKING([for max value of long long]) |
| 108 |
AC_RUN_IFELSE( |
| 109 |
[AC_LANG_SOURCE([[ |
| 110 |
#include <stdio.h> |
| 111 |
/* Why is this so damn hard? */ |
| 112 |
#ifdef __GNUC__ |
| 113 |
# undef __GNUC__ |
| 114 |
#endif |
| 115 |
#define __USE_ISOC99 |
| 116 |
#include <limits.h> |
| 117 |
#define DATA "conftest.llminmax" |
| 118 |
int main(void) { |
| 119 |
FILE *f; |
| 120 |
long long i, llmin, llmax = 0; |
| 121 |
|
| 122 |
if((f = fopen(DATA,"w")) == NULL) |
| 123 |
exit(1); |
| 124 |
|
| 125 |
#if defined(LLONG_MIN) && defined(LLONG_MAX) |
| 126 |
fprintf(stderr, "Using system header for LLONG_MIN and LLONG_MAX\n"); |
| 127 |
llmin = LLONG_MIN; |
| 128 |
llmax = LLONG_MAX; |
| 129 |
#else |
| 130 |
fprintf(stderr, "Calculating LLONG_MIN and LLONG_MAX\n"); |
| 131 |
/* This will work on one's complement and two's complement */ |
| 132 |
for (i = 1; i > llmax; i <<= 1, i++) |
| 133 |
llmax = i; |
| 134 |
llmin = llmax + 1LL; /* wrap */ |
| 135 |
#endif |
| 136 |
|
| 137 |
/* Sanity check */ |
| 138 |
if (llmin + 1 < llmin || llmin - 1 < llmin || llmax + 1 > llmax |
| 139 |
|| llmax - 1 > llmax) { |
| 140 |
fprintf(f, "unknown unknown\n"); |
| 141 |
exit(2); |
| 142 |
} |
| 143 |
|
| 144 |
if (fprintf(f ,"%lld %lld", llmin, llmax) < 0) |
| 145 |
exit(3); |
| 146 |
|
| 147 |
exit(0); |
| 148 |
} |
| 149 |
]])], |
| 150 |
[ |
| 151 |
llong_min=`$AWK '{print $1}' conftest.llminmax` |
| 152 |
llong_max=`$AWK '{print $2}' conftest.llminmax` |
| 153 |
AC_MSG_RESULT($llong_max) |
| 154 |
AC_DEFINE_UNQUOTED(LLONG_MAX, [${llong_max}LL], |
| 155 |
[max value of long long calculated by configure]) |
| 156 |
AC_MSG_CHECKING([for min value of long long]) |
| 157 |
AC_MSG_RESULT($llong_min) |
| 158 |
AC_DEFINE_UNQUOTED(LLONG_MIN, [${llong_min}LL], |
| 159 |
[min value of long long calculated by configure]) |
| 160 |
], |
| 161 |
[ |
| 162 |
AC_MSG_RESULT(not found) |
| 163 |
], |
| 164 |
[ |
| 165 |
AC_MSG_WARN([cross compiling: not checking]) |
| 166 |
] |
| 167 |
) |
| 168 |
fi |
| 169 |
|
| 170 |
AC_ARG_WITH(rpath, |
106 |
AC_ARG_WITH(rpath, |
| 171 |
[ --without-rpath Disable auto-added -R linker paths], |
107 |
[ --without-rpath Disable auto-added -R linker paths], |
| 172 |
[ |
108 |
[ |
|
Lines 1953-1958
if test "x$ac_cv_sizeof_long_long_int" =
Link Here
|
| 1953 |
ac_cv_sizeof_long_long_int=0 |
1889 |
ac_cv_sizeof_long_long_int=0 |
| 1954 |
fi |
1890 |
fi |
| 1955 |
|
1891 |
|
|
|
1892 |
# compute LLONG_MIN and LLONG_MAX if we don't know them. |
| 1893 |
if test -z "$have_llong_max"; then |
| 1894 |
AC_MSG_CHECKING([for max value of long long]) |
| 1895 |
AC_RUN_IFELSE( |
| 1896 |
[AC_LANG_SOURCE([[ |
| 1897 |
#include <stdio.h> |
| 1898 |
/* Why is this so damn hard? */ |
| 1899 |
#ifdef __GNUC__ |
| 1900 |
# undef __GNUC__ |
| 1901 |
#endif |
| 1902 |
#define __USE_ISOC99 |
| 1903 |
#include <limits.h> |
| 1904 |
#define DATA "conftest.llminmax" |
| 1905 |
int main(void) { |
| 1906 |
FILE *f; |
| 1907 |
long long i, llmin, llmax = 0; |
| 1908 |
|
| 1909 |
if((f = fopen(DATA,"w")) == NULL) |
| 1910 |
exit(1); |
| 1911 |
|
| 1912 |
#if defined(LLONG_MIN) && defined(LLONG_MAX) |
| 1913 |
fprintf(stderr, "Using system header for LLONG_MIN and LLONG_MAX\n"); |
| 1914 |
llmin = LLONG_MIN; |
| 1915 |
llmax = LLONG_MAX; |
| 1916 |
#else |
| 1917 |
fprintf(stderr, "Calculating LLONG_MIN and LLONG_MAX\n"); |
| 1918 |
/* This will work on one's complement and two's complement */ |
| 1919 |
for (i = 1; i > llmax; i <<= 1, i++) |
| 1920 |
llmax = i; |
| 1921 |
llmin = llmax + 1LL; /* wrap */ |
| 1922 |
#endif |
| 1923 |
|
| 1924 |
/* Sanity check */ |
| 1925 |
if (llmin + 1 < llmin || llmin - 1 < llmin || llmax + 1 > llmax |
| 1926 |
|| llmax - 1 > llmax) { |
| 1927 |
fprintf(f, "unknown unknown\n"); |
| 1928 |
exit(2); |
| 1929 |
} |
| 1930 |
|
| 1931 |
if (fprintf(f ,"%lld %lld", llmin, llmax) < 0) |
| 1932 |
exit(3); |
| 1933 |
|
| 1934 |
exit(0); |
| 1935 |
} |
| 1936 |
]])], |
| 1937 |
[ |
| 1938 |
llong_min=`$AWK '{print $1}' conftest.llminmax` |
| 1939 |
llong_max=`$AWK '{print $2}' conftest.llminmax` |
| 1940 |
|
| 1941 |
# snprintf on some Tru64s doesn't understand "%lld" |
| 1942 |
case "$host" in |
| 1943 |
alpha-dec-osf*) |
| 1944 |
if test "x$ac_cv_sizeof_long_long_int" = "x8" && |
| 1945 |
"x$llong_min" = "xld"; then |
| 1946 |
llong_min="-9223372036854775808" |
| 1947 |
llong_max="9223372036854775807" |
| 1948 |
fi |
| 1949 |
;; |
| 1950 |
esac |
| 1951 |
|
| 1952 |
AC_MSG_RESULT($llong_max) |
| 1953 |
AC_DEFINE_UNQUOTED(LLONG_MAX, [${llong_max}LL], |
| 1954 |
[max value of long long calculated by configure]) |
| 1955 |
AC_MSG_CHECKING([for min value of long long]) |
| 1956 |
AC_MSG_RESULT($llong_min) |
| 1957 |
AC_DEFINE_UNQUOTED(LLONG_MIN, [${llong_min}LL], |
| 1958 |
[min value of long long calculated by configure]) |
| 1959 |
], |
| 1960 |
[ |
| 1961 |
AC_MSG_RESULT(not found) |
| 1962 |
], |
| 1963 |
[ |
| 1964 |
AC_MSG_WARN([cross compiling: not checking]) |
| 1965 |
] |
| 1966 |
) |
| 1967 |
fi |
| 1968 |
|
| 1969 |
|
| 1956 |
# More checks for data types |
1970 |
# More checks for data types |
| 1957 |
AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int, [ |
1971 |
AC_CACHE_CHECK([for u_int type], ac_cv_have_u_int, [ |
| 1958 |
AC_TRY_COMPILE( |
1972 |
AC_TRY_COMPILE( |