harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov" <alexei.zakha...@gmail.com>
Subject Re: [classlib][build] difference between classlib 'debug' and 'release' build modes
Date Tue, 26 Jun 2007 17:57:37 GMT
> 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 <alexei.zakharov@gmail.com>:
> 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 <alexei.zakharov@gmail.com>:
> > 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 <t.p.ellison@gmail.com>:
> > > 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 \

Mime
View raw message