Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com From: "Gerrit P. Haase" Organization: Esse keine toten Tiere To: Date: Mon, 24 Sep 2001 09:11:15 +0200 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: RE: new 'temp' directory in CVS cinstall contains dependency WIP Reply-to: gp AT familiehaase DOT de Message-ID: <3BAEF8B3.1419.46100EBC@localhost> In-reply-to: X-mailer: Pegasus Mail for Win32 (v3.12cDE) X-Hops: 1 X-Sender: 320081107336-0001 AT t-dialin DOT net Robert Collins schrieb am 2001-09-24, 13:23: > > >> -----Original Message----- >> From: Gerrit P. Haase [mailto:gp AT familiehaase DOT de] >> The bug: >> ======== >> (gdb) run >> Starting program: >> /cygdrive/d/ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors >> /cygnus/setup.exe >> warning: LOG: 2 2001/09/23 21:52:50 Starting cygwin install, >> version 2.98 >> warning: LOG: 0 Current Directory: d:\ >> warning: LOG: 0 source: from cwd >> warning: LOG: 0 Selected local directory: >> D:\ftp.uni-erlangen.de\pub\pc\gnuwin32\cygwin\mirrors\cygnus >> warning: LOG: 0 mbox yesno: Warning: we recommend you do NOT >> use the root of your hard drive as the cygwin root. >> Proceed anyway? >> warning: LOG: 0 root: H:\ binary system >> warning: LOG: 1 get_url_to_string ./setup.ini >> warning: setup_version is 2.78.2.9, our_version is 2.98 >> >> Program received signal SIGSEGV, Segmentation fault. >> strcasecmp (sz1=0x563cf0 "ash", sz2=0x563cf0 "ash") > >can you do a bt here please? > >If the calling fn is choose.cc:903, please try the attached patch. (gdb) bt #0 strcasecmp (sz1=0x5696f0 "ncurses", sz2=0x5696f0 "ncurses") at ../../../../winsup/winsup/mingw/string_old.c:33 #1 0x00402edf in _view::insert_under (this=0x56ffd0, linen=2, line= {pkg = 0x1068cd8, cat = 0x0}) at /winsup/src/winsup/cinstall/choose.cc:903 #2 0x00402bda in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:806 #3 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 #4 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 #5 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 #6 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 #7 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 [...] #3326 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 #3327 0x00402c00 in _view::insert_pkg (this=0x56ffd0, pkg=0x1068cd8) at /winsup/src/winsup/cinstall/choose.cc:813 [...] It seems to loop at choose.cc 813. void _view::insert_pkg (Package *pkg) { pick_line line; if (pkg->exclude) return; line.set_line (pkg); if (view_mode != VIEW_CATEGORY) { if (lines == NULL) { lines = (pick_line *) calloc (npackages + ncategories, sizeof (pick_line)); nlines = 0; insert_at (0, line); } else insert_under (0, line); } else { // assert (lines); /* protect against a coding change in future */ for (Category *cat = pkg->category; cat; cat = cat->next) { /* insert the package under this category in the list. If this category is not visible, add it */ int n=0; while (n < nlines) { /* this should be a generic call to list_sort_cmp */ if (lines[n].get_category () && cat->name == lines[n].get_category ()->name) insert_under (n, line); n++; } if (n == nlines) { /* the category wasn't visible - insert at the end */ insert_category (cat, CATEGORY_COLLAPSED); insert_pkg (pkg); <===============================813 } } } } Does that mean that pkg = '' ? Or is it damaged in insert_pkg? >If that fixes it, you have a bug in strcasecmp where it won't compare >the same string. This is _bad_. However my patch should be ok to apply >regardless. I will aplly it and try to build setup again. Gerrit -- =^..^=