Return to BSD News archive
Xref: sserve comp.unix.bsd:7287 gnu.misc.discuss:6712
Newsgroups: comp.unix.bsd,gnu.misc.discuss
Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!zaphod.mps.ohio-state.edu!wupost!uunet!jclark!jjc
From: jjc@jclark.com (James Clark)
Subject: Re: troff's size!
In-Reply-To: alexk@otc.otca.oz.au's message of 29 Oct 92 22:40:32 GMT
Message-ID: <JJC.92Oct30133157@jclark.jclark.com>
Sender: jjc@jclark.com (James Clark)
Organization: None, London, England
References: <6633@otc.otca.oz>
Date: Fri, 30 Oct 1992 13:31:57 GMT
Lines: 43
In article <6633@otc.otca.oz> alexk@otc.otca.oz.au (Alex Kowalenko) writes:
I notcied when I recompiling csh that troff expanded out to 5MB! when processing the manual
page! Is this right? It certianly put a load on my 8MB 386BSD machine.
If you have a problem with groff, please submit a proper bug report.
See the file BUG-REPORT in the groff distribution.
I would guess that the problem is that your copy of groff was compiled
with g++ 1.39. This version of g++ has a bug that causes a serious
leak in GNU troff. The following patch for g++ fixes this:
*** cplus-decl.c.~1~ Mon Aug 6 05:28:59 1990
--- cplus-decl.c Wed Jun 5 08:55:04 1991
***************
*** 7951,7961 ****
/* At the end, call delete if that's what's requested. */
if (TREE_GETS_DELETE (current_class_type))
exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node),
get_identifier (OPERATOR_DELETE_FORMAT),
! build_tree_list (NULL_TREE, integer_zero_node),
NULL_TREE, LOOKUP_NORMAL);
else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0);
else
exprstmt = 0;
--- 7951,7961 ----
/* At the end, call delete if that's what's requested. */
if (TREE_GETS_DELETE (current_class_type))
exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node),
get_identifier (OPERATOR_DELETE_FORMAT),
! build_tree_list (NULL_TREE, current_class_decl),
NULL_TREE, LOOKUP_NORMAL);
else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0);
else
exprstmt = 0;
James Clark
jjc@jclark.com