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: Useful details about the Make SEGVs


You got my hopes up, only to see them dashed cruelly on the rocks of
flakey bugs :-).

I ran repeated "configure; make -j2" builds on the cygwin source tree.
I saw one success, then one Make hang (as described in another
message), then four successes, then a Make SEGV which looks pretty
much the same as the last one:

  #0  0x410792 in exec_command (argv=0x8, envp=0xa01f6b8)
      at /u/jik/systems-cvs-root/cygwin/make/job.c:2317
  #1  0x61085a6e in read (fd=8, buf=0xa01f6b8, cnt=200)
      at /u/jik/cygwin-cvs/src/newlib/libc/syscalls/sysread.c:15
  #2  0x40a60b in func_shell (o=0xa01f5e8 "", argv=0x24acf9c,
      funcname=0x40a81d "shell")
      at /u/jik/systems-cvs-root/cygwin/make/function.c:1448
  #3  0x40aa39 in expand_builtin_function (o=0xa01f5e8 "", argc=1,
      argv=0x24acf9c, entry_p=0x42f0b4)
      at /u/jik/systems-cvs-root/cygwin/make/function.c:1703
  #4  0x40ad20 in handle_function (op=0x24ad080, stringp=0x24ad07c)
      at /u/jik/systems-cvs-root/cygwin/make/function.c:1803
  #5  0x404b53 in variable_expand_string (line=0x0,
      string=0x24ad13c "${shell $(CC_FOR_TARGET) -print-libgcc-file-name}",
      length=-1) at /u/jik/systems-cvs-root/cygwin/make/expand.c:235
  #6  0x404ffe in variable_expand (
      line=0x24ad13c "${shell $(CC_FOR_TARGET) -print-libgcc-file-name}")
      at /u/jik/systems-cvs-root/cygwin/make/expand.c:415
  #7  0x4050d2 in variable_expand_for_file (
      line=0x24ad13c "${shell $(CC_FOR_TARGET) -print-libgcc-file-name}",
      file=0x0) at /u/jik/systems-cvs-root/cygwin/make/expand.c:457
  #8  0x405364 in allocated_variable_expand_for_file (
      line=0x24ad13c "${shell $(CC_FOR_TARGET) -print-libgcc-file-name}",
      file=0x0) at /u/jik/systems-cvs-root/cygwin/make/expand.c:535
  #9  0x4050ab in expand_argument (
      str=0xa01c28c "${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}",
      end=0xa01c2bd "}") at /u/jik/systems-cvs-root/cygwin/make/expand.c:442
  #10 0x40acdc in handle_function (op=0x24ad2a0, stringp=0x24ad29c)
      at /u/jik/systems-cvs-root/cygwin/make/function.c:1791
  #11 0x404b53 in variable_expand_string (line=0x0,
      string=0xa01c280 "${subst \\,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}", length=-1) at /u/jik/systems-cvs-root/cygwin/make/expand.c:235
  #12 0x404ffe in variable_expand (
      line=0xa01c280 "${subst \\,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}") at /u/jik/systems-cvs-root/cygwin/make/expand.c:415
  #13 0x4050d2 in variable_expand_for_file (
      line=0xa01c280 "${subst \\,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}", file=0x0) at /u/jik/systems-cvs-root/cygwin/make/expand.c:457
  #14 0x405364 in allocated_variable_expand_for_file (
      line=0xa01c280 "${subst \\,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}", file=0x0) at /u/jik/systems-cvs-root/cygwin/make/expand.c:535
  #15 0x426757 in try_variable_definition (flocp=0x24ad484,
      line=0xa01c278 "libgcc:=${subst \\,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}", origin=o_file, target_var=0)
      at /u/jik/systems-cvs-root/cygwin/make/variable.c:892
  #16 0x41a13d in read_makefile (
      filename=0xa01bd40 "/scratch/jik/testbuild/curl/winsup/doc/../Makefile.common", flags=10) at /u/jik/systems-cvs-root/cygwin/make/read.c:723
  #17 0x41a076 in read_makefile (filename=0xa01b368 "Makefile", flags=0)
      at /u/jik/systems-cvs-root/cygwin/make/read.c:702
  #18 0x41899e in read_all_makefiles (makefiles=0x0)
      at /u/jik/systems-cvs-root/cygwin/make/read.c:234
  #19 0x413e0c in main (argc=4, argv=0x614f5054, envp=0xa010008)
      at /u/jik/systems-cvs-root/cygwin/make/main.c:1503
  #20 0x61004294 in dll_crt0_1 ()
      at /u/jik/cygwin-cvs/src/winsup/cygwin/dcrt0.cc:770
  #21 0x61004565 in _dll_crt0 ()
      at /u/jik/cygwin-cvs/src/winsup/cygwin/dcrt0.cc:837
  #22 0x610045a4 in dll_crt0 (uptr=0x0)
      at /u/jik/cygwin-cvs/src/winsup/cygwin/dcrt0.cc:849
  #23 0x42e7d3 in cygwin_crt0 ()

It's interesting that the shell command that's causing the segv is the
same one that caused it the last time I caught this in the debugger,
and that it's a particularly long shell command.

BTW, I rememberd this time to check errno inside gdb, and gdb says
it's 0.  If execvp() fails (which of course it must have, since the
code after the execvp() is running, right?) but errno is 0, there's
definitely something fishy going on.

Any suggestions?

  jik


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