Hi Simon, > The code reads: > > x = 1.73205L; > y = ldexpl (x, 0); ASSERT (y == x); > > Printing the values yield: > > x 1.732050 y -0.000000
Interesting... > configure:63967: checking whether ldexpl works > configure:64002: gcc -std=gnu99 -o conftest -g -O2 -I/opt/local/include > conftest.c >&5 > configure:64006: $? = 0 > configure:64012: ./conftest > configure:64016: $? = 0 > configure:64034: result: yes This patch should make the test fail. Committed. Bruno --- m4/ldexpl.m4.orig 2008-12-09 12:56:13.000000000 +0100 +++ m4/ldexpl.m4 2008-12-09 12:55:03.000000000 +0100 @@ -1,5 +1,5 @@ -# ldexpl.m4 serial 2 -dnl Copyright (C) 2007 Free Software Foundation, Inc. +# ldexpl.m4 serial 3 +dnl Copyright (C) 2007-2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -60,7 +60,8 @@ AC_SUBST([LDEXPL_LIBM]) ]) -dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1). +dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1 +dnl and MacOS X 10.4/PowerPC). AC_DEFUN([gl_FUNC_LDEXPL_WORKS], [ AC_REQUIRE([AC_PROG_CC]) @@ -72,9 +73,11 @@ extern long double ldexpl (long double, int); int main() { - volatile long double x = 1.0; - volatile long double y = ldexpl (x, -1); - return (y != 0.5L); + volatile long double x1 = 1.0; + volatile long double y1 = ldexpl (x1, -1); + volatile long double x2 = 1.73205L; + volatile long double y2 = ldexpl (x2, 0); + return (y1 != 0.5L) || (y2 != x2); }], [gl_cv_func_ldexpl_works=yes], [gl_cv_func_ldexpl_works=no], [case "$host_os" in aix*) gl_cv_func_ldexpl_works="guessing no";; 2008-12-09 Bruno Haible <[EMAIL PROTECTED]> * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Add another check, that fails on MacOS X 10.4/PowerPC. Reported by Simon Josefsson.