[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Interrupt/Exception caught (code = 0xc0000005, addr = 0x77c478ac)
From: |
duanec |
Subject: |
Re: Interrupt/Exception caught (code = 0xc0000005, addr = 0x77c478ac) |
Date: |
Tue, 1 Sep 2009 11:43:12 -0700 (PDT) |
The patch seems to have worked flawlessly. Thank You!
I would love to see a new distribution asap (as I prefer to use distribution
built binaries when reasonable) :)
So, I'd appreciate it if you could let me know if/when/where you publish a
new
version.
Below:
- Rough sketch of what I tested. I'm entirely convinced this bug is gone.
(Examining the change: it looks very unlikely any new bugs were
introduced).
- Details on how I built it (thanks! for the details in the distribution
readme)
- Alternate patch (functionally identical; minor code simplification)
.duanec.
----------------------------------------------------------------
Rough sketch of what I tested:
Note: I test (almost) nothing other than the fixing of the
Interrupt/Exception
caused by the $(shell) function. That said, I feel I tested this
limited scope quite thoroughly.
With PATH not set in the environment
For 0 to 1025 envvars in the environment
For 25 different makefiles
each with a different command line length
- some with cmd.exe built-in commands
- some with filename.exe commands
- some with filename (no .exe extension) commands
- some with commands that existed
- some with commands that did not exist
run newly patched make & check results
Repeated above WITH path set in environment (with 1 to 1026 envvars).
Ran similar (limitted) tests checking the return value of the $(shell)
function.
----------------------------------------------------------------
----------------------------------------------------------------
Alternate patch (functionally identical; minor code simplification):
diff -du new/function.c old/function.c
--- new/function.c 2009-09-01 11:50:50.984839900 -0500
+++ old/function.c 2009-09-01 11:51:14.781714900 -0500
@@ -1429,7 +1429,7 @@
void
-windows32_openpipe (int *pipedes, int *pid_p, char **command_argv)
+windows32_openpipe (int *pipedes, int *pid_p, char **command_argv, char
**envp)
{
SECURITY_ATTRIBUTES saAttr;
HANDLE hIn;
@@ -1476,7 +1476,7 @@
/* make sure that CreateProcess() has Path it needs */
sync_Path_environment();
- if (!process_begin(hProcess, command_argv, environ, command_argv[0],
NULL)) {
+ if (!process_begin(hProcess, command_argv, envp, command_argv[0], NULL))
{
/* register process for wait */
process_register(hProcess);
@@ -1634,7 +1634,7 @@
#ifdef WINDOWS32
- windows32_openpipe (pipedes, &pid, command_argv);
+ windows32_openpipe (pipedes, &pid, command_argv, envp);
/* Restore the value of just_print_flag. */
just_print_flag = j_p_f;
----------------------------------------------------------------
----------------------------------------------------------------
How I built it:
Installed MinGW per
http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite.
// gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Used my existing cygnus install with above MinGW/bin pre-pended to the
path.
Then
# get clean source
cd /c/temp/mingw32-make-3.81-20080326-src.tar
rm -rf make-3.81-patched
tar -xzvf ../mingw32-make-3.81-20080326-src.tar.gz
#
# apply the patch
cd ./make-3.81-patched
mv function.c function.c.ORIGINAL
cp ../function.c function.c
diff -du function.c.ORIGINAL function.c
#
# put MinGW/bin first on the path
export PATH=/c/MinGW/bin:$PATH
#
#- build per this readme:
mingw32-make-3.81-20080326-3.tar/doc/mingw32-make/README.mingw
../make-3.81-patched/configure \
--disable-dependency-tracking \
--disable-nls \
--enable-case-insensitive-file-system \
--disable-job-server \
--disable-rpath \
--program-prefix=mingw32- \
--host=i386-pc-mingw32 \
--build=i386-pc-mingw32 \
--target=i386-pc-mingw32 \
--prefix=/mingw
mv config.h config.orig ; sed -e 's/:/;/' config.orig > config.h
make CFLAGS="-s -O2 -mms-bitfields -mtune=i686"
for i in `find . -type f -iname dir`; do rm $i; done
#- did not do this: make prefix=`cd ../dist;pwd` install
----------------------------------------------------------------
--
View this message in context:
http://www.nabble.com/Interrupt-Exception-caught-%28code-%3D-0xc0000005%2C-addr-%3D-0x77c478ac%29-tp25214756p25244276.html
Sent from the Gnu - Make - W32 mailing list archive at Nabble.com.
- Re: Interrupt/Exception caught (code = 0xc0000005, addr = 0x77c478ac),
duanec <=