Bug #8881 2006-09-24 22:10

afb

Mac OS X: subcommands don't return on Intel

Seems that when you run Code::Blocks on an Intel mac, the various subcommands (like compile or link or such) do not return after completion ?

They do seem to generate the object files or program binary OK, but C::B is still showing "building" (but nothing in the build log) and the Abort command doesn't do anything - need to force-quit the program to exit

Category
Application::WrongBehaviour
Group
 
Status
Closed
Close date
2006-11-02 22:05
Assigned to
 
takeshimiya 2006-09-29 02:25

I can confirm this, it's a critical.

It also happens with Tools commands also.

When you click Build for example, this is the output:

-------------- Build: Release in MyApp ---------------

g++ -o ./MyApp obj/main.o

and then it seems to hang at that point, object file is generated but not binary.

Abort command doesn't do anything and needs a C::B restart.

Just in case I've tried changing the shell to bash, sh, tcsh, with same results.

Also, I've tried to run C::B with Rosetta, same results.

afb 2006-09-29 09:32

Yeah, but it does work fine with Mac OS X 10.4 PPC.

(i.e. the same Universal Binary that hangs on Intel)

So whatever it is, it's something with the OS itself...

afb 2006-10-27 07:22

It does work in wxGTK on Mac OS X 10.4 Intel, strangely...

afb 2006-10-30 07:30

This is a wxWidgets bug. It works in wx 2.7.1, doesn't in 2.6.3.

Probably related to this changelog entry from wxWidgets 2.7.0:

wxMac:

- Fixed non-detection of process termination on Intel Macs by

polling for process termination in a separate thread.

Will see about a) doing a backport/workaround b) using wx 2.7

(it's possible to use the old API with the newer library version)

afb 2006-10-30 07:35

to duplicate: run the "thread" sample from the wxWidgets 2.6.3 dist.

choose menu: "Execute > Launch a program from main thread (F5)"

afb 2006-10-30 07:53

This workaround they suggest in the thread sample "works":

#ifdef USE_EXECUTE

#define EXEC(cmd) wxExecute((cmd), wxEXEC_SYNC)

#else

#define EXEC(cmd) system(cmd)

#endif

So I guess we would have to fall back to fork, on wx2.6/Intel.

afb 2006-11-02 22:05

Fixed by backporting the code from wxWidgets 2.7.1 back to wx 2.6.3...

https://sourceforge.net/tracker/?func=detail&atid=309863&aid=1588883&group_id=9863