On Tue, Oct 22, 2002 at 05:29:29PM +0300, Ruslan Ermilov wrote:
> On Mon, Oct 21, 2002 at 02:10:01PM -0400, Andrew Gallatin wrote:
> > 
> > Ruslan,
> > 
> > Can you help with this, please?  I think you're the best candidate
> > since you know so much about the build system and you are the groff 
> > maintainer.
> > 
> > I've found that if I just cd to /usr/src/share/doc and 
> > do a 'make' groff works like a charm.  But from inside
> > make buildworld, groff 
> > 
> > a) emits 'out of memory warnings' on each file processed
> > b) produces empty output files
> > c) eventually dies, killing the build
> > 
> > Assuming that I installed the version of groff made by buildworld,
> > along with libc.so, libm.so, and libstdc++.so (all built by
> > buildworld) prior to running make in /usr/src/share/doc, can you please
> > explain what's different about groff in the buildworld case?
> > 
> > I'm tearing my hair out trying to figure out what broke.
> > 
> Well, I tried this on beast.  It is easily reproduceable.
> 
> It turned out that if you build groff with -DNO_CPU_CFLAGS
> (the way it is built during the bootstrap-tools stage of
> buildworld), it fails with the `out of memory' error in
> contrib/groff/src/libs/libgroff/new.cc.  To reproduce, it
> is only necessary to build the following dirs, in order,
> with -DNO_CPU_CFLAGS:
> 
> gnu/usr.bin/groff/src/libs/libgroff
> gnu/usr.bin/groff/src/roff/groff
> 
> And then run groff from the latter as follows:
> 
> groff -V
> 
> More fun.  Groff is built with -fno-rtti and -fno-exceptions:
> 
> : RCS file: /home/ncvs/src/gnu/usr.bin/groff/Attic/Makefile.cfg,v
> : Working file: Makefile.cfg
> : head: 2.13
> : branch:
> : locks: strict
> : access list:
> : keyword substitution: kv
> : total revisions: 36;    selected revisions: 1
> : description:
> : ----------------------------
> : revision 2.7
> : date: 1999/04/04 16:44:33;  author: obrien;  state: Exp;  lines: +2 -1
> : This is old C++ code -- no need for rtti or exceptions.
> 
> If you remove -fno-exceptions from gnu/usr.bin/groff/Makefile.inc and
> recompile libgroff and groff, it seems to work (I did not check it
> thoroughly).  But I think this only has a side effect, because Groff
> does not seem to have any exception code (please correct me if I am
> wrong), and why the hell it should depend on -mcpu, if any?
> 
> I am Cc:ing our GCC gurus in a hope they can shed a light on this.
> 
Yeah, it only "seems" to work if you remove -fno-exceptions.
It only makes ``groff -V'' work, but full groff invocations
continue to fail with ``out of memory'' during the buildworld.
So we apparently need to compile Groff with -mcpu=ev56, as
Andrew suggested (I did not check will it help or not, and
I do not have any more time today for this).

But removing -fno-exceptions has a good impact on rtld(1)
issue.


Cheers,
-- 
Ruslan Ermilov          Sysadmin and DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

Attachment: msg45042/pgp00000.pgp
Description: PGP signature

Reply via email to