Archived

This forum has been archived. Please start a new discussion on GitHub.

Ice on Panther (with Patch!)

Man, after three days of struggle with Mac OS X's broken Pthread and linker option, I finally get Ice to compiled and pass allTests.py!!! SWEET!!! :)

Patch for Ice 1.2.0 on Panther (Mac OS X 10.3)

Note on this patch:

1. Mac OS X's Pthread implementation is not complete. Several of the cancel point method for pthread_cancel is not implemented. The most notable one is sigwait. The CtrlHandler used by Application object use sigwait to handle signal and is join after cancel during the clean up. The thread never gets cancel and clean up hangs on pthread_join. The hack is not to call pthread_join during the cleanup. This would works ok for dedicated Ice Application but may not be good for system embeds Ice Application. Will have to wait until Apple fix their pthread implementation or get a implmenentation of CtrlHandler using Mach's native thread.

2. The compilation has a variable called ICE_ROOT in the Ice/conf/Make.rules.Darwin. This should be pointing to the root of the Ice source tree. This is also a hack to get absolute dynamic lib path while building. A ugly hack.

3. This patch only works for Panther (Mac OS X 10.3) because it depends on wstring, pthread and new linker in Panther. Won't be able to support previous version.

Comments

  • Congratulations! It's good to see that Ice now also runs on the Mac.