Hello,
We're using msys2 (from 2015.05.12) as part of a front-end for a
build system.
With the original msys, we experienced crashes in the automatic
conversion of the command line from Windows to POSIX-style
arguments. Using MSYS2_ARG_CONV_EXCL="*" with msys2 to disable this
automatic conversion has allowed us to make steady progress for
seven months, but recently the command tail passed to the build
system has changed, and we're again seeing this crash issue.
The crash manifests itself as 'Bad Address' when attempting to launch
a program from the build process. This 'Bad Address' is a SEGV.
This crash is somewhat, but not entirely, related to the command
line that is used. The crash happens while processing a bash
command executed from a Makefile.
Examination of arg_heuristic_with_exclusions() and its use in
child_info_spawn::worker() yields strong suspicions -- for example,
modifying the data returned from getenv().
Modifying the sources that we are currently using would be ideal,
but they are controlled by another group. I needed to install the
source locally to investigate and test. However, using the newest
code that's committed yields a different problem:
Several programs are reporting that they are not receiving their
command line arguments.
For example, 'mkdir' reports 'missing operand'. However, as you
might expect, manually executing the Makefile command that failed
always succeeds. Given that code works in the code from 2015.05.12,
and that it requires the full infrastructure of the build process to
fail, I suspect other memory corruption issues.
Interestingly, by pre-populating the build output directories using
the msys2 tools from 2015.05.12, I can reproduce the bad address
failure with the newest code that I just installed. I have made
modifications to the newest code and I have been able to remove the
'Bad Address' problem (I think), but I'm now stuck with the
situation where programs that are run do not seem to be passed the
command line.
I'd like to get this resolved, but being new to looking at this
code, I have a few issues. I'm hoping you folks can point me to
documentation, or better workflows:
o How do I efficiently build?
Right now, I'm just modifying msys2-runtime. I can modify the
source code, and run 'makepkg -sLf', but this fetches the current
sources from git, overwriting my changes.
For now, I put my changes back while all the ./configure work is
being done, but this is really cumbersome and error prone. (It's
worked so far, but I don't trust it.)
What's the best way to build without having my changes overwritten
with each build?
o What is the preferred mechanism for contributing patches?
o Where is the source to 'mkdir'?
I'd like to modify it to output the full command like that is
actually passed.
o How can I see debug_printf output?
Is there a better way to see debug_printf() than running strace?
This is important, because the tools are being run from inside a
larger piece of code and needing to run everything under strace
will be very hard.
o How can I get & modify the sources from 2015.05.12?
At least that version had only one known issue -- the 'Bad
Address' and not two (losing arguments from invoked programs). If
I can modify that code, I have better confidence that the memory
corruption issue we see is resolved, and won't have to immediately
figure out why other issues are cropping up.
o How can I easily see the logs of what's changed in the past 7
months?
thanks,
thutt
--
------------------------------------------------------------------------------
_______________________________________________
Msys2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/msys2-users