lmi
[Top][All Lists]
Advanced

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

[lmi] fork failed: no error [464]


From: Greg Chicares
Subject: [lmi] fork failed: no error [464]
Date: Wed, 19 Apr 2006 03:11:56 +0000
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

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")

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

  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//bin/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.





reply via email to

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