Отправляет email-рассылки с помощью сервиса Sendsay

Старые версии gcc

Привет всем!!!! :)

Недавно обсуждался вопрос о том, как подключить более старые версии gcc, чем
те, что установлены в системе. А у меня есть вопрос о том, как вообще
установить эти старые версии. Говорилось, что есть некие пакеты совместимости
(compat). Что это такое и как работает? Раньше старые версии я просто
компилировал целиком, но этот трюк не проходит, если нужно получить версию
ниже 2.95 компиляцией на версии 4.

Спасибо.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28367; Возраст листа: 1186; Участников: 1704
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/603221

Ответить   Mon, 23 Oct 2006 20:02:13 +0400 (#603221)

 

Ответы:

23 октября 2006 20:02, Роман написал:

Если у вас штатный компилятор версии 4, то у вас вероятно Fedora. там есть
пакеты совместимости с именами compat-* Их и надо поставить. Для их
использования в большинстве случаев (там где используются autotools)
достаточно установить в среде нужные значения CC и CXX, которые просто задают
имена компиляторов c и c++. Этого обычно достаточно.

Если вы собирали компилятор сами, то вы наверное должны уметь подружить
несколько версий :-)

В любом случае, единственная причина использовать старый компилятор - наличие
двоичных библиотек, собранных им, и без возможности их пересобрать из
исходных текстов. А уж желание использовать пре-релизы версии 3 (а они
достаточно глючные) очень подозрительно.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28371; Возраст листа: 1186; Участников: 1704
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/603282

Ответить   "Serguei B. Khvatov" Mon, 23 Oct 2006 22:22:47 +0400 (#603282)

 

Спасибо, что ответили. Думал, что после моих высказываний мало кто захочет
отвечать на мои вопросы.

У меня не Fedora, а SuSE 10.0. В нем штатная версия gcc 4.0.1. Также есть
compat, который содержит старые библиотеки libstdc++, и compat-libstdc++, в
котором есть libc и libgcc, но только версии не ниже 3.0.

Вообще это нужно для компиляции достаточно старого проекта (название не скажу,
т. к. стыдно :) - это любимая игрушка из детства). При его компиляции в
версиях gcc 3.4.6 и 4.0 выдается такое сообщение:

/usr/include/bits/waitstatus.h:80: error: declaration of `unsigned int
wait::<anonymous struct>::__w_retcode'
/usr/include/bits/waitstatus.h:75: error: conflicts with previous declaration
`unsigned int wait::<anonymous struct>::__w_retcode'

Правильно ли я понимаю, что это проблема совместимости?

Изначально пакет писался под версию gcc 2.95.2.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28417; Возраст листа: 1188; Участников: 1686
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/603847

Ответить   Wed, 25 Oct 2006 23:19:47 +0400 (#603847)

 

On Wed, 25 Oct 2006 23:19:47 +0400
Роман <shipilovr***@m*****.ru> wrote:

Попробуйте прописать где-нибудь в исходниках программы:

#include <endian.h>

Правда я не уверен, что это поможет собрать вашу программу.

Ответить   "Dmitry V. Balabanov" Thu, 26 Oct 2006 01:48:46 +0600 (#603949)

 

Здравствуйте, Роман
Ответ на Ваше письмо от 26.10.2006 01:19

Проблема не в совместимости, gcc 4.0 строг следует последнему стандарту
ANSI C++, в котором запрещено дважды декларировать одну и ту же
переменную. Поэтому компилятор и выдаёт ошибку. Более старые версии gcc
не требовали столь строго следования стандарту ANSI C++.