Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Mar 2002 22:56:44 +0900
From:      Munehiro Matsuda <haro@h4.dion.ne.jp>
To:        bde@zeta.org.au
Cc:        current@freebsd.org, green@freebsd.org
Subject:   Re: zlib breakage(was cvs commit: src/share/man/man4 ng_pptpgre.4)
Message-ID:  <20020318225644D.haro@h4.dion.ne.jp>
In-Reply-To: <20020318134712.O1222-100000@gamplex.bde.org>
References:  <20020317134715.U35416-100000@gamplex.bde.org> <20020318134712.O1222-100000@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This problem also affects the ports/archivers/rpm, which dumps core 
while trying to install ports/emulators/linux_base.
If it's not fixed, we'd loose linux emulation and mose linux based
applications from 5-CURRENT-DP1.

I reported this problem last week with:
  Message-Id: <20020316162135C.haro@h4.dion.ne.jp>
  Subject: problem with libz 1.1.4 when installing linux_base ports
  Date: Sat, 16 Mar 2002 16:21:35 +0900

From: Bruce Evans <bde@zeta.org.au>
Date: Mon, 18 Mar 2002 13:49:55 +1100 (EST)
::
::This bug affects everything that uses libz of course.  It also breaks
::zgrep.  Try "cd /home/ncvs/C*/*logs; zgrep foo *".
::
::On Sun, 17 Mar 2002, Bruce Evans wrote:
::
::> On Sun, 17 Mar 2002, I wrote:
::>
::> > That may be, but ispell is not man's best friend:
::> >
::> >     $ man ispell
::> >     Segmentation fault (core dumped)
::> >
::> > The bug seems to be in libz.  Upgrading to the previous version of libz
::> > fixes it.
::>
::> The following patch (obtained from the upgrade) fixes "man ispell"
::> (but may break libz).
::>
::> %%%
::> Index: infcodes.c
::> ===================================================================
::> RCS file: /home/ncvs/src/lib/libz/infcodes.c,v
::> retrieving revision 1.3
::> diff -u -2 -r1.3 infcodes.c
::> --- infcodes.c	11 Mar 2002 22:36:26 -0000	1.3
::> +++ infcodes.c	17 Mar 2002 02:41:53 -0000
::> @@ -201,5 +201,5 @@
::>      case COPY:          /* o: copying bytes in window, waiting for space */
::>        f = q - c->sub.copy.dist;
::> -      while (f < s->window)             /* modulo window size-"while" instead */
::> +      if (f < s->window)                /* modulo window size-"while" instead */
::>          f += s->end - s->window;        /* of "if" handles invalid distances */
::>        while (c->len)
::> %%%
::>
::> The while loop caused some pointer to become invalid.  I think the bug
::> is really in gcc.  The register hildng 's' seemed to get clobbered to
::> (s->end - s->window) so 's' was invalid after 1 iteration.  With an
::> "if" instead of a "while", gcc generates simpler code with line numbers
::> that are actually correct and without the register clobber.  Compiling
::> the unpatched version with -O0 also unbreaks "man ispell".
::>
::> Bruce
::
::Bruce
::
::
::To Unsubscribe: send mail to majordomo@FreeBSD.org
::with "unsubscribe freebsd-current" in the body of the message
::
::

Haro
=------------------------------------------------------------------------------
           _ _    Munehiro (haro) Matsuda
 -|- /_\  |_|_|   Business Incubation Dept., Kubota Corp.
 /|\ |_|  |_|_|   1-3 Nihonbashi-Muromachi 3-Chome
                  Chuo-ku Tokyo 103-8310, Japan
                  Tel: +81-3-3245-3318  Fax: +81-3-3245-3315
                  Email: haro@kubota.co.jp


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020318225644D.haro>