make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems with latest Cygwin make patch; builds OK but binary segfaults


From: William Sheehan
Subject: Problems with latest Cygwin make patch; builds OK but binary segfaults
Date: Thu, 24 Aug 2006 17:23:04 -0700

First, I know that this build is under a Cygwin environment, however it
appears that the problem I encountered was in the patched make sources
themselves.  Please let me know if there is a more appropriate venue for
this problem.  With that said...

I was interested in trying out Bill Hoffman's patch that would add DOS path
support to the Cygwin make binary.  I have a good amount of experience
building under Linux, however not as much building packages under Cygwin.
Here are the steps I followed to try out this latest patch (from
http://article.gmane.org/gmane.comp.gnu.make.windows/2136):

1) Download and untar the make-3.81 release sources
2) Apply the patch
3) Run autoheader and autoconf
4) ./configure CFLAGS=-g (afterthought to troubleshoot the segfault)
5) make

This process seems to work in that I don't receive any obvious problems
during.  However, when I try to use the final binary, it segfaults (or stack
overflow when invoked from cmd.exe).  I have attached a zip file containing
relevant files that will (hopefully) determine if I'm doing something
bizarre or if this is a legitimate problem.  Here are the contents:

make-build-process.script -- Verbatim copy of my shell session (is there a
script equivalent under Cygwin?).  This also includes all of the output from
gdb, including the stack trace.

cygwin-make-toplevel.patch -- Patches for job.c, make.h, and configure.in

cygwin-make-config.patch -- Patch for dospaths.m4 (as an aside, what patch
process recognizes subdirectories as a patch target?  Using sysinternals
filemon with all patches in a single file, it seemed that patch wasn't even
looking in the config subdir, so I had to separate them.  I'm thinking I'm
just naïve regarding how to use patch, but I couldn't find anything that
addressed this)

cygcheck.out -- Output of 'cygcheck -s -v -r'.  You will notice that the
version of 'make' says 3.81-1, however when I run /usr/bin/make --version,
it comes back as 3.80.  This is because I updated to make 3.81, and then
replaced the binary with the older 3.80 version for some testing and
compatibility issues.  Sloppy, yes, but I don't think this affects the issue
I'm reporting.  Replacing the binary with the original make 3.81-1 binary
did not change the results.


My own analysis of the problem is that there is an infinite recursion call
to construct_command_argv_internal with the line parameter; it keeps getting
called with more and more backslash characters.  Looking at the code seems
to indicate some oddities with the #ifdefs, but I wasn't able to pinpoint an
exact cause.  I saw an earlier post to this list that seemed to deal with
that exact function, however I inferred that it was dealt with with this
patch.

Thanks for any input!

William Sheehan
Builds Engineer / Network Administrator
Open Interface North America

Attachment: make-failure.zip
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]