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

Ice Embedded with mingw?

I think there is a case for Ice Embedded support for mingw. If there was support (or it sort of worked, at least), we could cross compile the windows releases from our linux build environment. This would ease the development cycle a lot for us.

ICE Embedded should also be more portable than ICE, right? I hacked together an ugly patch and managed to build Ice Embedded with a mingw cross toolchain. It took maybe an hour to do the evil hackery.


  • Obviously the missing imports could be solved a bit less messy by dynamically loading the offending DLL instead of resorting to archaic srand() and friends. But anyway... would be GREAT to get some response from the ICE powers that be on this topic.
  • matthew
    matthew NL, Canada
    Without commercial interest I don't think we would support such a build. If you are interested in commercially supporting a port to mingw, please contact us at
  • No, support, just kinda works then?

    Would you accept patches (assuming you like them, of course) to build IceE under Mingw? And it of works, just like you do not support building Ice 3.3 under Ubuntu 6.06, bit it also kind of works.

    If you don't accept patches it's not a showstopper for me, I'll just maintain the patch internally, but it would possibly be good for ZeroC to get more mindshare in the GPL community. It's a win-win situation and ICE just plain rocks. You kill other proprietary competitors and at the same time the GPL junkies get's an excellent RPC library. (Thanks for the Objective C mapping by the way.)
  • bernard
    bernard Jupiter, FL
    Hi Jakob,

    We occasionally accept and integrate small patches for unsupported platforms.

    Naturally, we would only accept a patch of good quality. I looked briefly at your patch and I see immediately a number of issues:
    - if you want to add support for a new platform, you need to add a new Make.rules.<platform> file, not hack an existing one.
    - if you want to add support for a new compiler on an existing platform, you should modify the Make.rules.<platform>. However don't "hack" it: the default compiler file for that platform should still work after applying the patch
    - likewise in the code, use proper ifdefs -- the code must continue to work with other platforms/compilers
    - if a new code path is needed, like the UUID generation in your patch, it needs to be very clean (e.g. no local statics) and explained/justified. BTW I don't think you can generate unique UUIDs using a pseudo random number generator.

  • Ok then

    Of course, my patch was called "evil hackery", and would have been very disappointed if you had accepted a patch resembling anything like it. ... :-)

    But then I will create a "good" patch and let you have a look at it. Should I just post it here when I am done, or is there some other accepted way of submitting patches?

    Thanks for the fast replies in this matter.
  • bernard
    bernard Jupiter, FL
    Hi Jakob,

    Please post your patch(es) on these forums. Depending on the patch, we may also contact you (by email) to get a copyright assignment before we incorporate the patch into Ice or Ice-E.

    Also, we will release soon a new version of Ice-E, with many improvements. It's very possible that other changes will be needed to compile this new Ice-E with mingw, so it would make sense to wait until after this release to create a proper patch.