Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2017, 21:08   #1
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
Вопрос Портирование libc на х86 операционную систему.

Нашел на хабре цикл статей про запуск программ в protected mode. Решил попробовать портировать musl libc (так как там есть опция --disabled-shared, на выходе будет библиотека libc.a) и у меня пошли ошибки. Undefined reference to __udivdi3,__umoddi3 в файле vfprintf.c ( смотри скриншот), я открыл указанный файл и удивился, этих ссылок там нет. Библиотека сама нормально собралась а вот моё ядро нет. Динамическую линковку я не могу использовать, так как нужно придумать способ выгрузки её в память, и как вызвать эти функции из библиотеки. Ради интереса я все таки использовал файл libc.so, и у меня ошибка связана с dma (2-ой скриншот). Что я могу сделать?
Изображения
Тип файла: jpg Снимок экрана от 2017-11-09 20:00:00.jpg (98.3 Кб, 128 просмотров)
Тип файла: jpg Снимок экрана от 2017-11-09 19:39:28.jpg (81.0 Кб, 114 просмотров)
Кирилл_12 вне форума Ответить с цитированием
Старый 09.11.2017, 22:33   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
я открыл указанный файл и удивился, этих ссылок там нет
А они есть... Например, x / 3 может сгенерировать __udivdi3. Вы бы почиатли, что это за функции.
Добавьте libgcc.a линкеру после libc.a
p51x вне форума Ответить с цитированием
Старый 09.11.2017, 22:48   #3
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А они есть... Например, x / 3 может сгенерировать __udivdi3. Вы бы почиатли, что это за функции.
Добавьте libgcc.a линкеру после libc.a
А где взять libgcc.a?
Кирилл_12 вне форума Ответить с цитированием
Старый 09.11.2017, 22:55   #4
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
По умолчанию

Разобрался, нужно было поставить gcc-multilib package.
Кирилл_12 вне форума Ответить с цитированием
Старый 09.11.2017, 23:00   #5
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
По умолчанию

Но теперь другая проблема встала, код-то собрался, а вот работать не хочет. Отладчик ничего не говорит...
Кирилл_12 вне форума Ответить с цитированием
Старый 09.11.2017, 23:27   #6
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Кирилл_12 Посмотреть сообщение
Но теперь другая проблема встала, код-то собрался, а вот работать не хочет. Отладчик ничего не говорит...
Я кажется догадался из-за чего она не работает. На сколько я знаю в каждом ядре должен включаться x87-fpu (математический сопроцессор). Надо посидеть подумать как его включить, есть даже идейка. Я не уверен что она совсем правильна: портировать х86-emu и через него настроить что нужно.
Кирилл_12 вне форума Ответить с цитированием
Старый 09.11.2017, 23:34   #7
Кирилл_12
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 25
По умолчанию

Разобрался, нужно было поставить gcc-multilib package.
Кирилл_12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посоветуйте простую операционную систему pufystyj Операционные системы общие вопросы 11 19.07.2013 23:30
Определить операционную систему Shouldercannon Общие вопросы Delphi 6 03.12.2011 17:51
Какую операционную систему вы используете? NORS Операционные системы общие вопросы 129 10.04.2011 14:30
Чего стоит разработать свою операционную систему? panda88 Свободное общение 13 23.07.2010 19:43
Какую операционную систему вы предпочитаете? Delpher Операционные системы общие вопросы 45 28.03.2009 18:50