Ошибка при установке grub (Решено)

anode
Пока это говорит о том, что линкер не нашел библиотеку libaio, может она у вас не установлена.
Да libaio не была установлена и device-mapper тут не причём всё тот же 0x00009074 адрес

Мысль только одна брать и всё пере собирать по второму билду может тогда что то то что коряво собралось соберётся по нормальному всего то 215 пакетов не считая тех которые нужны только для сборки
А как ты собираешь grub?
Команды
Lupus pilum mutat, non mentem.
jim945
А как ты собираешь grub?
Команды
Собираю по PKGBUIL пока только для mbr, (сейчас не дома все опции не помню) и просто с дефолтными настройками ./configure & make. Оно то всё собирается но почему-то в kernel.img приписывается неверный адрес точки входа, вначале думал что косяк в binutils, gcc, flex уже по третьему кругу пересобирал все программы и библиотеки от которых зависит grub ну может кроме python. Засада в том что grub раньше собирался и работал, а вот что то обновил и оно сломало сборку grub
Chips
Засада в том что grub раньше собирался и работал, а вот что то обновил и оно сломало сборку grub
Предположу, что стал использоваться другой линковщик - новый gold .... кстати, на это же напоминает и лог - ld.gold bug?
Проверь, какой в системе используется линковщик, посмотри вывод ld -v - в Arch пока используется обычный
ld -v
GNU ld (GNU Binutils) 2.35
если у тебя используется gold, то будет что то типа - GNU gold
Ошибки не исчезают с опытом - они просто умнеют
vasek
какой в системе используется линковщик
$ ld.gold -v
а какой использовать указывается на этапе компиляции, но наверно если в системе не будет ld то будет использован другой.
Ошибки в тексте-неповторимый стиль автора©
Я читал что сейчас ld это просто линк на ld.gold. Вечером посмотрю
Chips
линк на ld.gold
на ld.bfd (не линк, а копия)
Ошибки в тексте-неповторимый стиль автора©
indeviral
а какой использовать указывается на этапе компиляции, но наверно если в системе не будет ld то будет использован другой.
Все верно - ld.gold также интегрирован в binutils ... но по дефолту он не используется.
pacman -Ql binutils | grep '/bin/' | grep ld
binutils /usr/bin/ld
binutils /usr/bin/ld.bfd
binutils /usr/bin/ld.gold
И как пишет Wiki
чтобы увидеть что используется именно gold линковщик можно посмотреть на вывод версии утилиты ld(в новой сессии):
$ ld -v
GNU gold (GNU Binutils 2.24) 1.11
потому и предложил посмотреть ТС данный вывод, хотя и сам в это верю мало, но проверить то стоит.

Ну не понятно - почему у него все пакеты имеют другие точки входа???, наверное и gcc тоже ... они устанавливаются на этапе линковки/компиляции - или я не прав?

PS - indeviral, думал тебе сейчас не до компьютера - днюешь и ночюешь на митингах .... )))
Ошибки не исчезают с опытом - они просто умнеют
Все вы всё правильно пишете, но забываете одно
Chips
за основу взял старенькую слаку выкинув всё по максимум и вот её "насилую"
vasek
Ну не понятно - почему у него все пакеты имеют другие точки входа???, наверное и gcc тоже … они устанавливаются на этапе линковки/компиляции - или я не прав
да вы правы, при смене линковщика на ld.gold.
[email protected] ~/src/grub $ objdump -d ./pkg/grub/usr/lib/grub/i386-pc/kernel.img | head -15

./pkg/grub/usr/lib/grub/i386-pc/kernel.img:     формат файла elf32-i386
Дизассемблирование раздела .text:

00009074 <.text>:
    9074:       89 8e 41 00 00 00       mov    %ecx,0x41(%esi)
    907a:       89 be 45 00 00 00       mov    %edi,0x45(%esi)
    9080:       89 86 64 01 00 00       mov    %eax,0x164(%esi)
    9086:       b9 30 70 00 00          mov    $0x7030,%ecx
    908b:       bf 74 90 00 00          mov    $0x9074,%edi
    9090:       f3 a4                   rep movsb %ds:(%esi),%es:(%edi)
    9092:       be 99 90 00 00          mov    $0x9099,%esi
    9097:       ff e6                   jmp    *%esi
я что-то думал что нужно сам gcc пересобрать что-бы так получилось...
vasek
днюешь и ночюешь на митингах
за оптимизация и приватизацию, не я пас... вот пообещали бы зарплату поднять)))
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.