This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cygwin 1.3.3 announcment -- extra words solicited


Christopher Faylor wrote:

> On Mon, Sep 03, 2001 at 01:22:41AM -0400, Charles Wilson wrote:
> 
>>Charles Wilson wrote:
>>
>>
>>>cgf wrote:
>>>
>>>>I did a reconfigure and a 'make clean all' without error.
>>>>
>>>*while using a development kernel as your active cgywin1.dll* ?  Or just 
>>>the released 1.3.2 kernel?
>>>
>>
>>cgf wrote:
>>
>>
>>>I always use the latest CVS DLL for everything.  Are you actually doing
>>>a "make install" while running cygwin?  I can see how that could cause
>>>strange problems.
>>>
>>>
>>No, not really.  'make install prefix=$inst/usr exec_prefix=$inst/usr 
>>bindir=$inst/usr/bin libdir=$inst/usr/lib sysconfdir=$inst/etc 
>>includedir=$inst/usr/include tooldir=$inst/usr'
>>
>>But the oops happens during the make, ('make CFLAGS=-O2 tooldir=/usr') 
>>not make install.
>>
>>Thanks for clarifying that you, at least, *are* able to bootstrap (build 
>>a new cygwin while running a devel cygwin).  It's probably just me.
>>
> 
> I'd still like to see exactly where this is dying.  You're saying "make"
> but that doesn't really mean much.  Have you verified that you're dying
> in actual make code as opposed to cygwin1.dll code?


Okay, here's the error message:

make[2]: Leaving directory `/usr/src/cygwin/obj/i686-pc-cygwin/winsup/mingw'
       0 [main] make 1016 open_stackdumpfile: Dumping stack trace to 
make.exe.stackdump
Signal 11
make[1]: *** [bz2lib] Error 139
make[1]: Leaving directory `/usr/src/cygwin/obj/i686-pc-cygwin/winsup'
make: *** [all-target-winsup] Error 2

And the stackdump:

Exception: STATUS_ACCESS_VIOLATION at eip=00410732
eax=00000005 ebx=6141294C ecx=6109A350 edx=610950A0 esi=FFFFFFFF 
edi=00000000
ebp=0022D404 esp=0022D3D4 program=D:\cygwin\bin\make.exe
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame     Function  Args
0022D404  00410732  (00000005, 0A01C9C8, 000000C8, 610950A0)
0022D424  61081E8A  (00000005, 0A01C9C8, 000000C8, 0040A5A5)
0022D4D4  0040A5CB  (0A01CB38, 0022D52C, 0040A7DD, 70203B2E)
0022D514  0040A9F9  (0A01CB38, 00000001, 0022D52C, 0042F0B4)
0022D584  0040ACE0  (0022D610, 0022D60C, 00000000, 00404A3D)
0022D624  00404B53  (00000000, 0A01C1F8, FFFFFFFF, 6102BC04)
0022D644  00404FFE  (0A01C1F8, 0A01CB38, 0022D694, 61089BC3)
0022D684  004050D2  (0A01C1F8, 00000000, 0022D6D4, 6107FE5C)
0022D6B4  00405338  (0A01C1F8, 00000000, 00000006, 004264F1)
0022D724  00426617  (0022D7F4, 0A01C1F0, 00000002, 00000000)
0022D834  0041A09D  (0A01BCB8, 0000000A, 00000010, 00000000)
0022D944  00419FD6  (0A01B200, 00000000, 00000058, 00000004)
0022D994  00418912  (00000000, 00000000, 0022FEB4, 00413D37)
0022FEB4  00413D6C  (00000004, 61401DA4, 0A010008, 00000000)
0022FF10  61003E5A  (00000000, 61407DD4, 00000004, 80DE2848)
0022FF40  6100403D  (00412D40, 61407DD4, 81288140, 8046CB60)
End of stack trace (more stack frames may be present)

Decoded (complete version attached).

00410732   job.c:2317 (exec_command)
61081E8A   winsup/cygwin/uinfo.cc:284 (cuserid)
0040A5CB   function.c:1448 (func_shell)
0040A9F9   function.c:1703 (expand_builtin_function)
0040ACE0   function.c:1803 (handle_function)
00404B53   expand.c:253 (variable_expand_string)
00404FFE   expand.c:415 (variable_expand)
004050D2   expand.c:457 (variable_expand_for_file)
00405338   expand.c:535 (allocated_variable_expand_for_file)
00426617   variable.c:888 (try_variable_definition)
0041A09D   read.c:723 (read_makefile)
00419FD6   read.c:702 (read_makefile)
00418912   read.c:234 (read_all_makefiles)
00413D6C   main.c:1503 (main)
61003E5A   winsup/cygwin/dcrt0.cc:863 (dll_crt0_1)
6100403D   winsup/cygwin/dcrt0.cc:929 (_dll_crt0)

Well, I don't think I can really figure out what the problem is unless I 
know what program make is trying to execute in the exec_command() 
function -- but that data doesn't show up in the stackdump.  OTOH, I 
can't just step through the entire build waiting for the crash -- it 
does not appear deterministic.

Should I build dumper.exe and try the JIT functionality?  would that help?

--Chuck
(gdb) l *0x00410732
0x410732 is in exec_command (/usr/src/make/src/job.c:2317).
2312		  perror_with_name ("execvp: ", shell);
2313		break;
2314	      }
2315	
2316	    default:
2317	      perror_with_name ("execvp: ", argv[0]);
2318	      break;
2319	    }
2320	
2321	  _exit (127);

(gdb) l *0x61081e8a
0x61081e8a is at /usr/src/cygwin/cygwin/winsup/cygwin/uinfo.cc:284.
279	cuserid (char *src)
280	{
281	  if (src)
282	    {
283	      strcpy (src, getlogin ());
284	      return src;
285	    }
286	  else
287	    {
288	      return getlogin ();

(gdb) l *0x0040a5cb
0x40a5cb is in func_shell (/usr/src/make/src/function.c:1448).
1443		      maxlen += 512;
1444		      buffer = (char *) xrealloc (buffer, maxlen + 1);
1445		    }
1446	
1447		  errno = 0;
1448		  cc = read (pipedes[0], &buffer[i], maxlen - i);
1449		  if (cc > 0)
1450		    i += cc;
1451		}
1452	      while (cc > 0 || EINTR_SET);

(gdb) l *0x0040a9f9
0x40a9f9 is in expand_builtin_function (/usr/src/make/src/function.c:1703).
1698	
1699	  if (!entry_p->func_ptr)
1700	    fatal (reading_file, _("Unimplemented on this platform: function `%s'"),
1701	           entry_p->name);
1702	
1703	  return entry_p->func_ptr (o, argv, entry_p->name);
1704	}
1705	
1706	/* Check for a function invocation in *STRINGP.  *STRINGP points at the
1707	   opening ( or { and is not null-terminated.  If a function invocation

(gdb) l *0x0040ace0
0x40ace0 is in handle_function (/usr/src/make/src/function.c:1803).
1798	      p = next + 1;
1799	    }
1800	  *argvp = NULL;
1801	
1802	  /* Finally!  Run the function...  */
1803	  *op = expand_builtin_function (*op, nargs, argv, entry_p);
1804	
1805	  /* Free memory.  */
1806	  if (entry_p->expand_args)
1807	    for (argvp=argv; *argvp != 0; ++argvp)

(gdb) l *0x00404b53
0x404b53 is in variable_expand_string (/usr/src/make/src/expand.c:235).
230		    char *op, *begp;
231		    char *end, *colon;
232	
233		    op = o;
234		    begp = p;
235		    if (handle_function (&op, &begp))
236		      {
237			o = op;
238			p = begp;
239			break;

(gdb) l *0x404ffe
0x404ffe is in variable_expand (/usr/src/make/src/expand.c:415).
410	
411	char *
412	variable_expand (line)
413	     char *line;
414	{
415	  return variable_expand_string(NULL, line, (long)-1);
416	}
417	^L
418	/* Expand an argument for an expansion function.
419	   The text starting at STR and ending at END is variable-expanded

(gdb) l *0x004050d2
0x4050d2 is in variable_expand_for_file (/usr/src/make/src/expand.c:457).
452	{
453	  char *result;
454	  struct variable_set_list *save;
455	
456	  if (file == 0)
457	    return variable_expand (line);
458	
459	  save = current_variable_set_list;
460	  current_variable_set_list = file->variables;
461	  if (file->cmds && file->cmds->fileinfo.filenm)

(gdb) l *0x00405338
0x405338 is in allocated_variable_expand_for_file (/usr/src/make/src/expand.c:535).
530	  char *obuf = variable_buffer;
531	  unsigned int olen = variable_buffer_length;
532	
533	  variable_buffer = 0;
534	
535	  value = variable_expand_for_file (line, file);
536	
537	#if 0
538	  /* Waste a little memory and save time.  */
539	  value = xrealloc (value, strlen (value))

(gdb) l *0x00426617
0x426617 is in try_variable_definition (/usr/src/make/src/variable.c:888).
883	    case f_simple:
884	      /* A simple variable definition "var := value".  Expand the value.
885	         We have to allocate memory since otherwise it'll clobber the
886		 variable buffer, and we may still need that if we're looking at a
887	         target-specific variable.  */
888	      value = alloc_value = allocated_variable_expand (p);
889	      break;
890	    case f_conditional:
891	      /* A conditional variable definition "var ?= value".
892	         The value is set IFF the variable is not defined yet. */

(gdb) l *0x0041a09d
0x41a09d is in read_makefile (/usr/src/make/src/read.c:723).
718		  /* Restore state.  */
719		  conditionals = save;
720		  reading_file = &fileinfo;
721		}
722	#undef	word1eq
723	      else if (try_variable_definition (&fileinfo, p, o_file, 0))
724		/* This line has been dealt with.  */
725		;
726	      else if (lb.buffer[0] == '\t')
727		{

(gdb) l *0x00419fd6
0x419fd6 is in read_makefile (/usr/src/make/src/read.c:702).
697	              int r;
698	
699		      free ((char *)files);
700		      files = next;
701	
702	              r = read_makefile (name, (RM_INCLUDED | RM_NO_TILDE
703	                                        | (noerror ? RM_DONTCARE : 0)));
704		      if (!r)
705	                {
706	                  if (!noerror)

(gdb) l *0x00418912
0x418912 is in read_all_makefiles (/usr/src/make/src/read.c:234).
229	      while (*p != 0 && !file_exists_p (*p))
230		++p;
231	
232	      if (*p != 0)
233		{
234		  if (! read_makefile (*p, 0))
235		    perror_with_name ("", *p);
236		}
237	      else
238		{

(gdb) l *0x00413d6c
0x413d6c is in main (/usr/src/make/src/main.c:1503).
1498	
1499	  /* Read all the makefiles.  */
1500	
1501	  default_file = enter_file (".DEFAULT");
1502	
1503	  read_makefiles
1504	    = read_all_makefiles (makefiles == 0 ? (char **) 0 : makefiles->list);
1505	
1506	#ifdef WINDOWS32
1507	  /* look one last time after reading all Makefiles */

(gdb) l *0x61003e5a
0x61003e5a is in dll_crt0_1(void) (/usr/src/cygwin/cygwin/winsup/cygwin/dcrt0.cc:863).
858	  set_errno (0);
859	
860	  MALLOC_CHECK;
861	  cygbench (__progname);
862	  if (user_data->main)
863	    exit (user_data->main (__argc, __argv, *user_data->envptr));
864	}
865	
866	/* Wrap the real one, otherwise gdb gets confused about
867	   two symbols with the same name, but different addresses.

(gdb) l *0x6100403d
0x6100403d is in _dll_crt0 (/usr/src/cygwin/cygwin/winsup/cygwin/dcrt0.cc:929).
924		    if ((fork_info->type & PROC_MAGIC_MASK) == PROC_MAGIC_GENERIC)
925		      api_fatal ("conflicting versions of cygwin1.dll detected.  Use only the most recent version.\n");
926		    break;
927		}
928	    }
929	  dll_crt0_1 ();
930	}
931	
932	void
933	dll_crt0 (per_process *uptr)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]