tags:

views:

50

answers:

1

Hello,

with Snow Leopard 10.6.4 I am obtaining an unresolved symbol:

$ sudo kextutil KRPC.kext
(kernel) kxld[com.machackershandbook.kext.KRPC]: The following symbols are unresolved for this kext:
(kernel) kxld[com.machackershandbook.kext.KRPC]: _mig_buckets

I cannot find this symbol using kextfind, however this symbol is exported in the kernel:

$ kextfind -dsym _mig_buckets
$ nm -arch i386 /mach_kernel |grep _mig_buckets
00844b00 S _mig_buckets
$ nm -arch x86_64 /mach_kernel |grep _mig_buckets
ffffff8000672e40 S _mig_buckets

How can I find the kext library to link with this symbol using the OSBundleLibraries dict?

A: 

Have you tried running kextlibs on your kext? it may give you the correct dependency. Otherwise, it is likely one of the following:

  • com.apple.kpi.mach
  • com.apple.kpi.unsupported

see this apple Q&A for more information about the unsupported KPI

Hasturkun
Thank you, in addition to com.apple.kpi.mach and com.apple.kpi.unsupported I have added most of the kexts.
Freeman
I also used both methods that you propose and these methods share the same luck:$ sudo kextlibs rpc_server.kextFor all architectures: com.apple.kpi.libkern = 10.4For i386: 2 symbols not found in any library kext.$ /Developer/usr/bin/FindKPI.py _mig_buckets_mig_buckets not found
Freeman
There is something strange here because it seems that the symbol is actually exported in the kernel.$ nm -arch i386 /mach_kernel |grep _mig_buckets00844b00 S _mig_buckets
Freeman
I think mig_buckets is no longer exported, probably part of this ( http://developer.apple.com/mac/library/releasenotes/Darwin/RN-KernelExtensions/index.html#//apple_ref/doc/uid/TP40001023-CH1-DontLinkElementID_11 )
Hasturkun