Я построил модуль ядра Linux с поддержкой SSP для архитектуры mips. Я добавил -fstack-protector-all для компиляции флагов. Но после загрузки этого модуля у меня есть неопределенные ссылки на __stack_chk_guard и __stack_chk_fail. Но я добавил libssp.so в компоновщик. Похоже, я должен экспортировать эти символы в ядре что-то вроде этого:символов в модуле ядра
EXPORT_SYMBOL(__stack_chk_guard);
Потому что мое ядро старо и не содержит их еще. Но, к сожалению, я должен использовать эту версию.
Мой вопрос: почему пространство пользователя может использовать эти символы из библиотеки toolchain, но пространства ядра нет?
Я думаю, что я пропустил некоторые основные функции ядра Linux.
+1 Я предполагаю, что теоретически вы можете загрузить код из файла, отобразить его, выполнить и перезагрузить :) – 2013-03-01 17:31:52