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 Wed, 27 Jun 2007 08:16:48 GMT
> I've applied your patch from HARMONY-4287 at r551075 to start
> building//testing new snapshot right now. I hope you'll have no
> objections.

Of course not. Thanks Stepan!

2007/6/27, Stepan Mishura <stepan.mishura@gmail.com>:
> On 6/27/07, Alexei Zakharov <alexei.zakharov@gmail.com> wrote:
> > > 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...
>
> Alexei,
>
> I've applied your patch from HARMONY-4287 at r551075 to start
> building//testing new snapshot right now. I hope you'll have no
> objections.
>
> Thanks,
> Stepan.
>
> >
> > 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 \
>


-- 
Alexei Zakharov,
Intel ESSD

Mime
View raw message