Сборка grub из srcrpm в CENTOS 6 x86_64

Пытаюсь собрать из исходников grub, чтобы наложить вот этот патч
— grub-0.97/stage2/common.c 2008-02-07 07:56:16.000000000 -0800
+++ grub-0.97/stage2/common.c.new 2008-02-07 07:59:06.000000000 -0800
@@ -142,7 +142,8 @@
init_bios_info (void)
{
#ifndef STAGE1_5
— unsigned long cont, memtmp, addr;
+ unsigned long memtmp, addr;
+ volatile unsigned long cont;
int drive;
#endif

Для начала просто пытаюсь собрать rpm из вот єтого пакета без изменений
ftp.muug.mb.ca/pub/centos/6.0/os/SRPMS/Packages/grub-0.97-68.el6.src.rpm
Пробовл делать и под простым пользователем и под рутом. Вот последовательность действий
~ cd
~ wget ftp.muug.mb.ca/pub/centos/6.0/os/SRPMS/Packages/grub-0.97-68.el6.src.rpm
~ rpm -ivh grub-0.97-68.el6.src.rpm
~ cd rpmbuild
После этого правлю grub.cpec, заменяю строку
BuildRequires: autoconf /usr/lib/crt1.o automake
на

%ifarch %{sparc} x86_64
BuildRequires: autoconf /usr/lib64/crt1.o automake
%else
BuildRequires: autoconf /usr/lib/crt1.o automake
%endif

~ rpmbuild -ba SPECS/grub.spec

И в результате получаю ошибку

configure:3331: error: in `/root/rpmbuild/BUILD/grub-0.97':
configure:3334: error: C compiler cannot create executables
See `config.log' for more details.

вот вывод config.log
pastebin.com/raw.php?i=NKFgNbtW
  • Вопрос задан
  • 2770 просмотров
Пригласить эксперта
Ответы на вопрос 3
@YourChief
фраза C compiler cannot create executables возникает и когда компилятор Си действительно не может создавать исполняемые файлы (например при компиляции в неподдерживаемую архитектуру процессора), и когда его попросту нет. установите его
Ответ написан
Casufi
@Casufi Автор вопроса
Установлен, находится в /usr/lib64/ я правил spec файл, чтобы он искал зависимость не в /usr/lib а в /usr/lib64
Интересно, а можно собрать rpm для 64 битной системы на 32х битной, и каким образом разработчики CentOS собирают rpmки для 64 битной системы
Ответ написан
Комментировать
@platerx
Он 32-х битный не смотря на название пакета:
$ rpm2cpio grub-0.97-68.el6.x86_64.rpm |cpio -id
$ file sbin/grub
sbin/grub: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.18, stripped

Соответственно для сборки ему нужны 32-х битные библиотеки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы