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

Reply via email to