Сборка приложений под старые дистрибутивы

Модератор: Модераторы разделов

Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Сборка приложений под старые дистрибутивы

Сообщение KonishchevDmitry »

Помогите, пожалуйста, даже не знаю в какую сторону копать.

Необходимо на Red Hat 7.2 (без обновлений, прямо из коробки) запустить GDB последней версии (6.6). Такое вообще возможно?
Пробовал скомпилировать у себя в Ubuntu статический бинарик. Принес на Red Hat 7.2, запустил, он мне выдал "FATAL: Kernel too old" и аварийно завершился.
На самом Red Hat 7.2 он компилироваться не хочет.

Подскажите, пожалуйста, можно ли как-нибудь все-таки получить рабочий бинарик, или, может быть, в сети есть сборки под очень старые дистрибутивы?
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Сборка приложений под старые дистрибутивы

Сообщение v04bvs »

На самом Red Hat 7.2 он компилироваться не хочет.

пилите шура, пилите :) имхо единственный способ.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Сборка приложений под старые дистрибутивы

Сообщение Uncle_Theodore »

А если взять старенький gdb из архива и попытаться собрать?
http://ftp.gnu.org/gnu/gdb/
Почему нужен именно 6.6? Из-за фичей?
Спасибо сказали:
Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Re: Сборка приложений под старые дистрибутивы

Сообщение KonishchevDmitry »

После уточнения, какая же минимальная версия подойдет, выяснилось, что достаточно любой версии 6.х. :blush: На Red Hat'e собралась 6.1.1 (хотя некоторые версии не собираются даже в Ubuntu).

Но все-таки я так и не понял, неужели это такая проблема - собрать программу под старый дистрибутив? В чем она вообще заключается? GCC при компиляции использует возможности нового ядра в ущерб совместимости? Но в таком случае неужели нет какой-нибудь опции, запускающей процесс компиляции в режиме максимальной совместимости?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Сборка приложений под старые дистрибутивы

Сообщение sergio »

KonishchevDmitry писал(а):
14.08.2007 19:34
Но все-таки я так и не понял, неужели это такая проблема - собрать программу под старый дистрибутив? В чем она вообще заключается? GCC при компиляции использует возможности нового ядра в ущерб совместимости? Но в таком случае неужели нет какой-нибудь опции, запускающей процесс компиляции в режиме максимальной совместимости?

Пальцем в небо:
Сам GCC - вряд ли. А вот GDB - очень даже может быть. И стдлиб - может быть.
Пробовал скомпилировать у себя в Ubuntu статический бинарик. Принес на Red Hat 7.2, запустил, он мне выдал "FATAL: Kernel too old" и аварийно завершился.

Гуру, ау! - как обстоит дело с бинарной совместимостью приложений и ядра?
На самом Red Hat 7.2 он компилироваться не хочет.

Почему? Что говорит?
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Сборка приложений под старые дистрибутивы

Сообщение Uncle_Theodore »

sergio писал(а):
14.08.2007 20:19
Сам GCC - вряд ли. А вот GDB - очень даже может быть. И стдлиб - может быть.

Да, похоже на то.
Гуру, ау! - как обстоит дело с бинарной совместимостью приложений и ядра?

Видимо, смотря каких приложений... ;)
gdb глубоко влазит в управление памяти, организации процессов, например, нити там всякие... :)
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: Сборка приложений под старые дистрибутивы

Сообщение Civil »

Но все-таки я так и не понял, неужели это такая проблема - собрать программу под старый дистрибутив

Со времён Red Hat 7.2 многое изменилось. Много багоф пофиксено, много нового привнесено. Многий софт просто требует nptl, многий мультимедийный софт на алсу перешёл, да и на ядро 2.6 некоторый завязан... Так что проблем много.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
Аватара пользователя
KonishchevDmitry
Сообщения: 92
ОС: Ubuntu

Re: Сборка приложений под старые дистрибутивы

Сообщение KonishchevDmitry »

sergio писал(а):
14.08.2007 20:19
KonishchevDmitry писал(а):
14.08.2007 19:34
На самом Red Hat 7.2 он компилироваться не хочет.
Почему? Что говорит?

Код:

gcc -c -g -O2 -I. -I.././gdb -I.././gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I.././gdb/../include/opcode -I.././gdb/../readline/.. -I../bfd -I.././gdb/../bfd -I.././gdb/../include -DMI_OUT=1 -DTUI=1 -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral -Wunused-label -Wunused-function -Wuninitialized prologue-value.c gcc -c -g -O2 -I. -I.././gdb -I.././gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I.././gdb/../include/opcode -I.././gdb/../readline/.. -I../bfd -I.././gdb/../bfd -I.././gdb/../include -DMI_OUT=1 -DTUI=1 -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral -Wunused-label -Wunused-function -Wuninitialized memory-map.c memory-map.c: In function `memory_map_end_element': memory-map.c:147: parse error before `char' memory-map.c:149: `end' undeclared (first use in this function) memory-map.c:149: (Each undeclared identifier is reported only once memory-map.c:149: for each function it appears in.) make[2]: *** [memory-map.o] Ошибка 1 make[2]: Выход из каталог `/tmp/gdb-6.6/gdb' make[1]: *** [all-gdb] Ошибка 2 make[1]: Выход из каталог `/tmp/gdb-6.6' make: *** [all] Ошибка 2
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Сборка приложений под старые дистрибутивы

Сообщение sergio »

KonishchevDmitry писал(а):
15.08.2007 18:08

Код:

gcc -c -g -O2 -I. -I.././gdb -I.././gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I.././gdb/../include/opcode -I.././gdb/../readline/.. -I../bfd -I.././gdb/../bfd -I.././gdb/../include -DMI_OUT=1 -DTUI=1 -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wformat-nonliteral -Wunused-label -Wunused-function -Wuninitialized memory-map.c memory-map.c: In function `memory_map_end_element': memory-map.c:147: parse error before `char' memory-map.c:149: `end' undeclared (first use in this function) memory-map.c:149: (Each undeclared identifier is reported only once memory-map.c:149: for each function it appears in.)


Надо смотреть, что в этих 147-149 в файле...
И еще вопрос, какой компилятор там в 7.1? Современный, или тоже из 7.1?
Если тамошний - так он очень старый... для Си это не критично, как для С++, но вобщем-то тоже - стандарт в 1999-ом году принимали, а 7.1 наверное не сильно моложе. Все же кое-что менялось.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали: