Investigating...
Done.
Tim Ellison wrote:
The fdlibm code we depend upon is already tweaked to use "-O0", so for
now I'd just try the same override for the LUNI natives to see if that
is where the problem lies.
The reason of these failures lies in fdlibm indeed. Yes, it was
tweaked to use "-O0" but there was a typo in this tweak and it does
not affect the compilation. As a result fdlibm was compiled with "-O1"
as all other natives. I has created HARMONY-4287 and attached a patch
for this issue. The patch itself is trivial:
<--- H4287.patch
Index: src/main/native/fdlibm/unix/makefile
===================================================================
--- src/main/native/fdlibm/unix/makefile (revision 550787)
+++ src/main/native/fdlibm/unix/makefile (working copy)
@@ -45,7 +45,7 @@
$(FDLIBM_DIST)w_scalb.o $(FDLIBM_DIST)w_sinh.o $(FDLIBM_DIST)w_sqrt.o
# OPTS is overriden
-OPTS := -O0 -ffloat-store -fpic
+OPT = -O0 -ffloat-store -fpic
DEFINES += -D_IEEE_LIBM
LIBNAME = $(LIBPATH)libhyfdlibm.a
<---
So I suggest to commit it and include into our M2 build. Waiting for
other committer's vote...
Thanks,
Alexei
2007/6/26, Alexei Zakharov <[EMAIL PROTECTED]>:
Oops, please discard my previous message. The real matrix is (as
Vladimir has said):
Classlib (debug) + DRLVM (any) = StrictMathTest passes
Classlib (release) + DRLVM (any) = StrictMathTest fails
Investigating...
2007/6/26, Alexei Zakharov <[EMAIL PROTECTED]>:
> I also see these failures of StrictMathTest (as well as MathTest) on
> Linux 32bit. And it can be only reproduced if tests are run on the
> release build of DRLVM. I.e.
>
> Classlib(Debug) + DRLVM(Debug) = tests pass
> Classlib(Release) + DRLVM(Debug) = tests pass
> Classlib(Release) + J9VM = tests pass
> Classlib(Release) + DRLVM(Release) = tests fail
>
> So this looks like a DRLVM issue.
>
> Regards,
>
> 2007/6/26, Tim Ellison <[EMAIL PROTECTED]>:
> > Vladimir Ivanov wrote:
> > > Fwd it from the '[general][M2] Code frozen' thread
> > > ===========================
> > > OK, looking through the federated build I found the difference between
> > > my 'DRLVM' build and federated one. In the first case 'classlib' was
> > > built in the 'debug' mode.
> > > When classlib was rebuilt with -Dhy.cfg=release option the
> > > StrictMathTest failed on this build too.
> > > So we should look at the differences between classlib 'debug' and
> > > 'release' build modes to find the reason of these test failure.
> >
> > The most pertinent difference is that the natives are compiled with "-g"
> > in debug mode, and "-O1" in release mode.
> >
> > There are a bunch of natives in StrictMath. Could you try reducing the
> > optimization level of the native code compile for them separately and
> > see if that fixes the problem?
> >
> > The fdlibm code we depend upon is already tweaked to use "-O0", so for
> > now I'd just try the same override for the LUNI natives to see if that
> > is where the problem lies.
> >
> > Something like this (untested), below.
> >
> > Regards,
> > Tim
> >
> >
> > Index: src/main/native/luni/unix/makefile
> > ===================================================================
> > --- src/main/native/luni/unix/makefile (revision 550526)
> > +++ src/main/native/luni/unix/makefile (working copy)
> > @@ -22,6 +22,9 @@
> > # CFLAGS += -fpic -Wall -Werror
> > CFLAGS += -fpic -Wall
> >
> > +# Override OPTS to remove optimizations
> > +OPTS := -O0
> > +
> > BUILDFILES = \
> > $(SHAREDSUB)luni_copyright.o $(SHAREDSUB)file.o procimpl.o \
> > $(SHAREDSUB)oos.o $(SHAREDSUB)nethelp.o \