[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug#560105: autoconf: AC_TYPE_INT32_T generates broken test?
From: |
Ralf Wildenhues |
Subject: |
Re: Bug#560105: autoconf: AC_TYPE_INT32_T generates broken test? |
Date: |
Tue, 8 Dec 2009 23:59:26 +0100 |
User-agent: |
Mutt/1.5.20 (2009-10-28) |
tags upstream forwarded
thanks
[ This is <http://bugs.debian.org/560105> ]
Hello Pierre,
thanks for the bug report.
* Pierre Ynard wrote on Tue, Dec 08, 2009 at 11:42:02PM CET:
> AC_TYPE_INT32_T, and also AC_TYPE_INT16_T and AC_TYPE_INT64_T, output C
> code that looks like:
> static int test_array [1 - 2 * !(enum { N = $2 / 2 - 1 };
> 0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
> test_array [0] = 0
> which fails to compile with errors like:
>
> conftest.c: In function 'main':
> conftest.c:73: error: expected ')' before ';' token
> conftest.c:74: error: expected expression before ']' token
>
> Thus, the check always returns no. And then ./configure of project foo
> aborts because it can find its int types...
>
> This problem isn't there in autoconf 2.64-4.
What an ugly regression. Confirmed. bisect converges at:
15f8838bb6239ebc16beb8472de0217a10de3d5e is the first bad commit
commit 15f8838bb6239ebc16beb8472de0217a10de3d5e
Author: Eric Blake <address@hidden>
Date: Tue Oct 20 08:30:03 2009 -0600
Fix AC_TYPE_UINT64_T on Tru64 with gcc 3.4.4.
* lib/autoconf/types.m4 (_AC_TYPE_UNSIGNED_INT_BODY)
(_AC_TYPE_INT_BODY): Avoid undefined behavior of attempting shift
wider than type.
* NEWS: Document this.
Reported by Rainer Orth.
I think we need to start comparing test results against tables for at
least a couple of systems, in order to guard against such issues.
Cheers,
Ralf
- Re: Bug#560105: autoconf: AC_TYPE_INT32_T generates broken test?,
Ralf Wildenhues <=