[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [lmi] fork failed: no error [464]
From: |
Boutin, Wendy |
Subject: |
RE: [lmi] fork failed: no error [464] |
Date: |
Thu, 11 May 2006 07:49:15 -0400 |
Greg Chicares wrote:
>
> Using an ancient native msw port of ash for portability testing
> (it's the closest thing I've found to the original bourne shell),
> I ran into this problem. It occurs only when invoking 'wx-config'
> this way:
> wx_config_libs := $(shell $(wx_config_script) --libs)
> but not this way:
> wx_config_libs := $(shell sh -c "$(wx_config_script) --libs")
That change causes us to not compile skeleton. In 'workhorse.make'
I restored:
wx_config_cxxflags := $(shell $(wx_config_script) --cxxflags)
wx_config_libs := $(shell $(wx_config_script) --libs)
and can now compile skeleton as expected. That's the only change we
had to make to get this to work. I understand you were doing portability
testing when you reported this issue on the mailing list, but I don't
understand why you changed it and how your change can still work for
you if you're using the same shell as us. It could be that I don't
understand the portability aspect of this, but I don't feel this is
truly complete until we can understand what this change really is
and why it made a difference.
> I would guess that it has something to do with other things in the
> environment, because I found that passing a definition with one
> character more or less makes the difference between success and
> failure:
>
> C:/lmi/src/skeleton[0]$make wx_config_check
> build_type=so_test foo=w123456
> Omitted from wx-config --cxxflags:
>
> Omitted from wx-config --libs:
> -Wl,--subsystem,windows -mwindows
Reverting your change gives me the same output:
c:/opt/lmi/src/skeleton[0]$make wx_config_check
Omitted from wx-config --cxxflags:
Omitted from wx-config --libs:
-Wl,--subsystem,windows -mwindows
> C:/lmi/src/skeleton[130]$make wx_config_check
> build_type=so_test foo=w1234567
>
> c:/wx20060323/wxWidgets/gcc342/lib/wx/config/msw-ansi-debug-2.
> 7: fork failed: no error [464]
> make.EXE: *** [../build/skeleton/msw_generic/gcc/so_test] Error 130
>
> Using 'make -d', and comparing other uses of make's $(shell)
> function, I saw a difference in the first parameter of
> CreateProcess():
>
> gcc_version = $(shell $(CXX) -dumpversion)
>
> CreateProcess(C:\MinGW-20050120\bin\g++.exe,/MinGW-20050120//b
> in/g++ -dumpversion,...)
>
> wx_config_libs := $(shell $(wx_config_script) --libs)
> CreateProcess(NULL,sh
> C:\wx20060323\wxWidgets\gcc342\wx-config --libs,...)
>
> c:/wx20060323/wxWidgets/gcc342/lib/wx/config/msw-ansi-debug-2.
> 7: fork failed: no error [464]
>
> whereas the rewritten $(shell) command above does pass a
> non-null first parameter:
>
> wx_config_libs := $(shell sh -c "$(wx_config_script) --libs")
> CreateProcess(C:\usr\bin\sh.exe,sh.exe -c "sh -c
> \"/wx20060323/wxWidgets/gcc342/wx-config --libs\"",...)
>
> It works, so I've committed this strange change to cvs. While I
> dislike such voodoo, I'm not inclined to spend more time on it
> unless this thing crawls out of its grave again.
This comment makes me think you were pretty apprehensive to making
such a change; now I'd claim that this thing crawled out of its
grave.
---------------------------------------------------------
This e-mail transmission may contain information that is proprietary,
privileged and/or confidential and is intended exclusively for the person(s) to
whom it is addressed. Any use, copying, retention or disclosure by any person
other than the intended recipient or the intended recipient's designees is
strictly prohibited. If you are not the intended recipient or their designee,
please notify the sender immediately by return e-mail and delete all copies.
---------------------------------------------------------
- RE: [lmi] fork failed: no error [464],
Boutin, Wendy <=