diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-22 08:16:26 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-22 08:16:26 (GMT) |
commit | 4a8fbdb1b2172e1954e652be7dda74d188a00fa5 (patch) | |
tree | 8332714795b9aed78dac71751f9ac2e5462b9980 /configure.in | |
parent | d10a0f776602cc43491b77b7daa68d55bc340ad6 (diff) | |
download | cpython-4a8fbdb1b2172e1954e652be7dda74d188a00fa5.zip cpython-4a8fbdb1b2172e1954e652be7dda74d188a00fa5.tar.gz cpython-4a8fbdb1b2172e1954e652be7dda74d188a00fa5.tar.bz2 |
Fix %zd string formatting on Mac OS X so it prints negative numbers.
In addition to testing positive numbers, verify negative numbers work in configure.
In order to avoid compiler warnings on OS X 10.4, also change the order of the check
for the format character to use (PY_FORMAT_SIZE_T) in the sprintf format
for Py_ssize_t. This patch changes PY_FORMAT_SIZE_T from "" to "l" if it wasn't
defined at configure time. Need to verify the buildbot results.
Backport candidate (if everyone thinks this patch can't be improved).
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/configure.in b/configure.in index cff7194..3a27294 100644 --- a/configure.in +++ b/configure.in @@ -3352,14 +3352,28 @@ AC_TRY_RUN([#include <stdio.h> int main() { - char buffer[4]; + char buffer[256]; + +#ifdef HAVE_SSIZE_T +typedef ssize_t Py_ssize_t; +#elif SIZEOF_VOID_P == SIZEOF_LONG +typedef long Py_ssize_t; +#else +typedef int Py_ssize_t; +#endif if(sprintf(buffer, "%zd", (size_t)123) < 0) return 1; - if (strncmp(buffer, "123", 3)) + if (strcmp(buffer, "123")) return 1; - + + if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0) + return 1; + + if (strcmp(buffer, "-123")) + return 1; + return 0; }], [AC_MSG_RESULT(yes) |