bug-autoconf
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]