32/64 bit user/kernel space compatibility and forcing execution of 32 bit binary from 32/64/32bit PPC 3-way universal binary.
32/64 bit user/kernel space compatibility and forcing execution of 32 bit binary from 32/64/32bit PPC 3-way universal binary.
- Subject: 32/64 bit user/kernel space compatibility and forcing execution of 32 bit binary from 32/64/32bit PPC 3-way universal binary.
- From: "Paul Surma" <email@hidden>
- Date: Wed, 23 Sep 2009 15:46:46 -0700
- Thread-topic: 32/64 bit user/kernel space compatibility and forcing execution of 32 bit binary from 32/64/32bit PPC 3-way universal binary.
Issue:
The 64 bit Snow Leopard kernel requires 64 bit drivers. User
space programs that communicate with kernel space user clients must do so in a
binary compatible way. Our plan was to have a Universal app (Intel 32 and Intel
64) that talked to its corresponding kernel space user clients. Unfortunately
for our plan, Mac OS X 10.5 and 10.6 always run 64 bit capable apps on 64 bit
capable hardware, meaning our 64 bit app often attempts to communicate to 32
bit drivers leading to failed communication.
Questions:
1 – Is it true that user space apps that communicate
directly with kernel space user clients must share the same data model (ILP32
or LP64)?
2 – Is it possible for a 64 bit user space app to talk
to a 32 bit (IOUserClient subclass) driver? Note: we have control over our
custom method signatures, but methods inherited from the IOUserClient seem to
change their signature (i.e. stack frame layout) based on the data model
it’s compiled for…
3 - Is there a way we can force our Universal app to always
run in 32 bit mode, except when running on a 64 bit kernel?
Thanks,
Paul Surma
Data Robotics, Inc.
|
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden