On Wed, Oct 08, 2008 at 02:06:28AM +0200, Bruno Haible wrote: > Eric Blake wrote: > > > Indeed, we're in a maze of twisty little HP cc compiler bugs: > > > <http://lists.gnu.org/archive/html/bug-gnulib/2008-04/msg00179.html> > > > <http://lists.gnu.org/archive/html/bug-gnulib/2008-08/msg00000.html> > > > > minus_zerol is miscompiled on at least Irix 6.2. So until we hear > > feedback from Jonathan on what DOES allow us to compile -0.0L on > > HP-UX/hppa ... > > I just happened to get access to a HP-UX 10.20 machine today. It was > installed in 1997, i.e. 11 years ago! That counts as museumware to me, > not as a reasonable portability target any more. We are putting into gnulib > code for Windows that will not work on Windows98 and WindowsME, released > in 1998 and 2000, respectively. Then why should we care about systems that > were put together in 1996 and shipped in 1997? > > The test programs from > <http://lists.gnu.org/archive/html/bug-gnulib/2008-09/msg00118.html> > yield the following results, after replacing 0.1L with LDBL_MIN (otherwise > the y may be a negative denormalized number rather than a minus zero). > The '?' mean that signbit() is not available natively on that platform. > <snip> > > So, to get a negative 'long double' zero, neither of > long double minus_zerol = -0.0L; > -0.0L > -zerol > are usable. Instead, only expressions like (-0.1L * LDBL_MIN) and > (-0.1L / LDBL_MAX) work. > > For 'double', the situation is more relaxed, the only form we need to > avoid is the literal -0.0; using a global variable works. (I don't want > to divide by ±0.0 to test its sign; this relies on IEEE and is outside > ISO C.) > > I'm applying this: > <snip> I noticed gnulib test failures in the m4 1.4.12 testsuite and after some investigation I believe this change is what caused the breakage.
I created a testdir for frexpl and vasprintf-posix from commit ea0f5bf and this is the results from IRIX 6.5.30 with MIPSPro 7.4.4m: gmake[4]: Entering directory `/usr/people/tgc/work/ea0f5b/gltests' PASS: test-alloca-opt PASS: test-errno PASS: test-frexp test-frexpl.c:124: assertion failed /bin/sh[9]: 45131149 Abort(coredump) FAIL: test-frexpl test-frexpl.c:124: assertion failed /bin/sh[9]: 43955535 Abort(coredump) FAIL: test-frexpl PASS: test-isnand-nolibm PASS: test-isnanf-nolibm PASS: test-isnanl-nolibm PASS: test-math PASS: test-printf-frexp PASS: test-printf-frexpl PASS: test-signbit PASS: test-stdint PASS: test-stdio PASS: test-vasnprintf test-vasprintf-posix.c:526: assertion failed /bin/sh[9]: 45212598 Abort(coredump) FAIL: test-vasprintf-posix PASS: test-vasprintf PASS: test-wchar ==================== 3 of 18 tests failed ==================== gmake[4]: *** [check-TESTS] Error 1 gmake[4]: Leaving directory `/usr/people/tgc/work/ea0f5b/gltests' The same testdir done with commit 61776a0 passes all tests. -tgc