Расширение ядра не загружено из-за ошибки компоновки __antimain и __realmain - PullRequest
0 голосов
/ 25 марта 2019

У меня есть расширение ядра (kext), которое я скомпилировал с Xcode 9.4.1. Оно работало нормально. Таким образом, я смог загрузить его с отключенным SIP на машине HighSierra. Теперь я обновился до Мохаве и XCode. Поэтому я перекомпилировал его с Xcode 10, который работал нормально. Но когда я загружаю kext с kextutuil, как и раньше, но в Мохаве (SIP отключен), он не работает из-за ошибок компоновки. Я получаю следующую ошибку:

(kernel) Allocated link buffer for kext org.mydriver.kext at 0xffffff7f9753b000 (81920 bytes).
(kernel) kxld[org.mydriver.kext]: The following symbols are unresolved for this kext:
(kernel) kxld[org.mydriver.kext]:   __antimain
(kernel) kxld[org.mydriver.kext]:   __realmain
(kernel) Can't load kext org.mydriver.kext - link failed.
(kernel) Failed to load executable for kext org.mydriver.kext.
(kernel) Kext org.mydriver.kext failed to load (0xdc008016).
(kernel) Failed to load kext org.mydriver.kext (error 0xdc008016).
(kernel) Kext org.mydriver.kext removing all personalities naming it from the IOCatalogue.
Kernel error handling kext request - (libkern/kext) link error.
Failed to load /tmp/mydriver.kext - (libkern/kext) link error.
Failed to load /tmp/mydriver.kext - (libkern/kext) link error.

Примечание: необходимо, чтобы SIP был отключен, поскольку мне нужно загрузить его только на тестовом компьютере. У кого-нибудь есть подсказка или знаете что настроить чтобы он загружался?

...