LINUX.ORG.RU

Вышел GCC версии 3.2


0

0

Основная цель релиза стабилизация интерфейса и библиотеки С++ компилятора. Других изменений по сравнению с 3.1.1 нет. Да и учтите, что С++ код компилированный версией 3.2 не совместим с предыдущими версиями компилятора.

>>> Сайт GCC



Проверено: maxcom

Главное, чтобы RedHat Не успела перенести на новую бету компилятора дистрибутив...

Shadow ★★★★★
()

Несовместим наверное со старой библиотекой C++, а не с самим компилятором.
Это разные вещи, поскольку далеко не все программы на C++ эту библиотеку используют.

anonymous
()
Ответ на: комментарий от anonymous

Ну, если я не ошибаюсь - практически все. Вроде, ::new берется из нее.

Кстати, а если он поменяли манглинг опять? Тогда будет абсолютная несовместимость объектных файлов от разных компиляторов. А вот чтобы РХ взял именно 3.2 - очень хочется!

svu ★★★★★
()

он его и взял

anonymous
()

Типично по линуксоидски. Новая версия - пиздец бинарной совместимости. Я в Win XP все еще пользую пару прог из Win 3.11. :0)

anonymous
()
Ответ на: комментарий от anonymous

> Новая версия - пиздец бинарной совместимости. Я в Win XP все еще
> пользую пару прог из Win 3.11. :0)

Уважаемый аноним, Вы в порыве страсти, по-моему, кое-что не заметили.
Утверждается, что код, сгенерированный более поздней версией (3.2) не
будет работать с более ранними (<3.2). Попробуйте запустить пару прог
из Win XP под Win 3.11.

BarD
()

>Типично по линуксоидски. Новая версия - пиздец бинарной совместимости. Я
>в Win XP все еще пользую пару прог из Win 3.11. :0)

Кто тебе это сказал?
Для виндузячих мозгов поясняю, в линуксе нет проблем с бинарной совместимостью, так как всегда есть компатибл либы, говоря маздайным
языком - нужные dll'ки... Я в RH-7.3 легко запускаю pkzip, собранный
еще во времена libc-5.

McMCC ★★★
()

>Главное, чтобы RedHat Не успела перенести на новую бету компилятора
>дистрибутив...

2Shadow: Именно благодаря RH GCC-3.2 и вышел, они в своих бетах
будущего дистрибутива давно использую gcc-3.2, а сейчас его
просто зарелизили...

McMCC ★★★
()

Для нервных анонимов поясняю, что значит "бинарная несовместимость". Это значит то, что код, покомпиляный версией 3.2 не слинкуется с кодом, покомпиляным версией меньше 3.2. Это значит, что нельзя мешать объектные файлы, покомпиляные разными версиями, только и всего. То, что скомпилилось и слинковалось - будет работать без проблем.

2svu: Да, именно манглинг они и поменяли.

Agweb
()
Ответ на: комментарий от svu

> Ну, если я не ошибаюсь - практически все. Вроде, ::new берется из нее.

Ну вот и ошибаешься. А вот тебе и примеры из жизни: icewm, mysql.
Не самые маленькие проекты на c++, а либу libstdc++ не пользуют совсем.

anonymous
()

2anonymous (*) (2002-08-16 14:36:45.54): Там было сказано - практически. 2 проекта - не показатель (если 2 из 100 не используют, а остальые 98 - используют, то утверждение "практически все" очень даже верно), вот 50 - да, опровержение. Причем размер роли не играет. Так что ошиблись лишь вы - читайте те постинги на которые отвечаете...

anonymous
()
Ответ на: комментарий от anonymous

Будем считать, что он меня почти уел. Точнее, мне действительно стало интересно, какие же функции экспортирует libstdc++. И где лежит :new? Эй, любители С++, расскажите серому, не дайте дураком помереть. Самому лезть в объектник лень:)))

svu ★★★★★
()

2svu (*) (2002-08-17 01:04:10.699):

Чтобы узнать, какие функции экспортирует libstdc++ - берещь mc, ищешь
libstdc++.a (static версия) или libstdc++.so, выделяешь, нажимаешь F3 и
наслаждаешься. Далее, оператор new, насколько я сейчас выяснил,
находится в библиотеке libgcc. По крайней мере без нее new не работает.

Методика - пишется программа с new и только:
main()
{
int *x = new int[10]; // Цикл для проверки (д.быть segfault)
for(unsigned int i = 0; i < 1000000; i++) x[i] = 0;
}

И по шагам выполняется то, что делает gcc (это смотрится с помощью
$gcc 1.cpp -v). На этапе collect отрубаются библиотеки. На какой ld
споткнется - та наша. (да, ругается он так:

/home/const/cpp/1.o: In function `main':
/home/const/cpp/1.o(.text+0xc): undefined reference to `__builtin_vec_new'
collect2: ld returned 1 exit status

)

anonymous
()
Ответ на: комментарий от anonymous

Спасибо. Хотя несколько странно - почему же это в libgcc? Ведь чисто сишным прогам это не нужно...

svu ★★★★★
()

2svu (*) (2002-08-17 15:55:47.375):

Видимо для того, чтобы не делать две библиотеки libgcc и libgcc-c++. В конце-концов в последней функций почти бы не было, а загрузку C++ программ это как-то замедляло бы. Хотя...

anonymous
()
Ответ на: комментарий от anonymous

> 2 проекта - не показатель

А их всего от силы 3 ;-) Если считать из тех, которые заслуживают хоть
какого-то внимания...

anonymous
()

2anonymous (*) (2002-08-18 05:41:06.381): А вот это бред или IMHO (насчет 3-х)- for instance in addition к вышеназваным KDE, blackbox/fluxbox, perl и учет того, что KDE - это не одна программа и не часть ядра, как считают некоторые :-)!

anonymous
()
Ответ на: комментарий от anonymous

> KDE, blackbox/fluxbox, perl и учет того, что KDE - это не одна программа

Не знаю, что там у тебя за perl, но версия 5.6.0 точно еще была написана на ANSI C.
Из всего оставшегося ни одной заслуживающей внимания программы. А я имел в виду именно такие.
Лично меня KDE волнует точно так же, как и ГНОМ, то есть вообще никак.
Я наверное даже погорячился, когда сказал, что их три ;) Третью так и не подобрал...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.