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
msg45042/pgp00000.pgp
Description: PGP signature