Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

kld: Undefined symbols IOUserClient::registerNotificationPort



Hi,

I'm migrating a PCI driver from Panther (gcc 3.3) to Tiger. It links
fine, but on kextload gives a:
kld(): Undefined symbols
__ZN34someUserClientSubClass24registerNotificationPortEjmm

My exported symbols file previously (from Panther) contained:
__ZN34someUserClientSubClass24registerNotificationPortEP8ipc_portmm

which matches the parameters to System.kext/Plugins/IOKit.kext/IOKit:
__ZN12IOUserClient24registerNotificationPortEP8ipc_portmm


However, an nm -g on the object files in my build folder gives:
__ZN34someUserClientSubClass24registerNotificationPortEjmm


Does anybody know why the symbols of my IOUserClient sub-class would
start having an Ejmm post-fix rather than the expected ipc_portmm
postfix which would match the symbols in the Tiger kernel?

(
 - Re-building with either gcc 3.3 or 4.0 doesn't seem to make a difference.
 - The signature of my sub-class member function matches that of IOUserClient:
virtual IOReturn registerNotificationPort(mach_port_t port, UInt32
type, UInt32 refCon );
 - If I remove the exported symbols file, the kext loads, despite the
mismatched parameters in the registerNotificationPort name...
)

Thanks in advance for any ideas,
 Rob.
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-drivers mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-drivers/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.