Hello,
My company try to port an IDE to MacOSX with the help of Wine.
We only have problems when compiling a big project on MacOSX, the product use
GNU make and arm-gcc to compile this project.
The building process create cascaded process :
- 1 Process run Gnu Make
- 1 Sub make is created with -j3 (problem also with -j1)
- 3 Sub makes creates an OP_Gen.exe process that run gcc
- 1 and gcc run also cc1, collect ect...
- And make also create sub batch (.bat) scripts in all steps
And we get lot's of error in build process :
process_begin: CreateProcess(C:\windows\temp\make131-2.bat,
C:\windows\temp\make131-2.bat, ...) failed.
make (e=1359): Internal error
I identify the problem, and it's related to create cascaded process, I create
the project Test Project to Debug easyly.
I reproduced the problem on MacOSX 10.6.4 with CrossOver Mac 9.1.0
I investigate with traces with the source code of wine, I detect 2 part that cause the problems :
-
process_poll_events (server/process.c) on the server is called with argument
event at 11, before the child process begin (on the fork of create_process
(dlls/kernel32/process.c)) -
the child start at create_process (dlls/kernel32/process.c) and stop on
server_init_thread(dlls/ntdll/server.c) on wine_server_send_fd( reply_pipe[1]
);. And on wine_server_send_fd I get the EPIPE error with the sendmsg.
It seems the communication socket (create with socketpair) is closed somewhere
else.
I also tested my test project on Linux:
- Kubuntu 10.04
- Wine 1.2 (auto installed with apt-get)
- Dual Core cpu
- With a call to ulimit -n 10000
And the test project work. It seems to be a problem with the MacOS Porting
part.
We are disposed to debug ourselves the bug and make a patch for the community.
Could someone could help us to investigate the problem?
Where in the porting could be the problem?
Best Regards,
Guillaume ORTEGA.