Closed Bug 682873 Opened 13 years ago Closed 6 years ago

Fix IPC compilation for iOS

Categories

(Core :: IPC, defect)

ARM
iOS 4
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: ted, Assigned: ted)

References

(Blocks 1 open bug)

Details

(Whiteboard: [iOS])

Attachments

(1 file, 1 obsolete file)

My iOS build is currently dying in ipc: In file included from /Users/luser/build/mozilla-central/ipc/chromium/src/base/message_pump_mac.h:36, from /Users/luser/build/mozilla-central/ipc/chromium/src/base/message_loop.cc:17: ../../dist/system_wrappers/IOKit/IOKitLib.h:3:33: error: IOKit/IOKitLib.h: No such file or directory It looks like IOKit is not a public framework on iOS. I'm not sure what the best way to fix this is. I'm currently building with the first 5 patches from here applied: http://hg.mozilla.org/users/tmielczarek_mozilla.com/mq/file/9c1d4391a0a8 on top of: http://hg.mozilla.org/projects/build-system/rev/80b591f7b135
It looks IO Kit is being used here just to receive notifications of power-state changes. I think we can get by without these for the initial port, and we may want to rework how this happens anyway. Ted or Doug: it looks like we can just ifdef the IO Kit usage out of these files. The actual IPC transport code uses general POSIX APIs that google claims iOS supports, so that should work out of the box. Either way, I won't have time to hack on this in the near future, unassigning myself.
Assignee: jones.chris.g → nobody
if we can just use posix, that would make the world happy.
BTW, in case comment 1 was unclear, the two takeaways are (1) Mac IPC just uses POSIX primitives already, which are supposedly available on iOS. IPC should work out of the box. (2) The IO Kit bustage here comes from chromium using it to listen to changes in power state. It can be safely ifdef'd out for iOS without breaking anything. That should be all that's needed to fix this problem. (We'll of course want power-state monitoring for iOS, but the impl will likely look very different.) Fixing (2) should be a matter of a few minutes for someone with an iOS build env, which I don't and won't have time to set up for a while.
power-state monitoring can come way later. need to get the port up and running. if we ifdef it out, you'll review?
I'm partway to fixing this, but the build blows up on bug 685927 before I get through ipc/chromium.
Depends on: 685927
This is a very hack-and-slash approach. This compiles all the way through ipc, but I'm sure it'll fail to link eventually.
Assignee: nobody → ted.mielczarek
Blocks: 1163827
I redid this work recently to get things building again: http://hg.mozilla.org/users/tmielczarek_mozilla.com/gecko-ios/rev/a5ba3152b4f5 This is pretty terrible, and most of it is just copying files wholesale from upstream Chromium. I'm pretty sure my piecemeal approach here breaks non-iOS builds, though, so I probably need to revisit this and be a bit more careful. The upstream Chromium code actually supports iOS, but our stuff is so forked we can't just take a new code drop.
Attachment #559706 - Attachment is obsolete: true
I need this patch as well to allow MessageLoop to work on a run loop that we don't control (such as the main UI one)
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: