Какую версию gx 4.x следует использовать? - PullRequest
6 голосов
/ 28 августа 2008

В группе продуктов, в которой я работаю, в настоящее время используется gcc 3.4.6 (мы знаем, что он древний) для большой низкоуровневой базы c-кода, и мы хотим перейти на более позднюю версию. Мы видели преимущества в производительности при тестировании различных версий gcc 4.x на всех аппаратных платформах, на которых мы его тестировали. Мы, однако, очень боимся ошибок c-компилятора (по уважительной причине в прошлом) и задаемся вопросом, есть ли у кого-нибудь понимание, до какой версии мы должны обновиться.

Люди используют 4.3.2 для больших баз кода и считают, что он работает нормально?

Ответы [ 6 ]

4 голосов
/ 01 сентября 2008

Лучший контроль качества для gcc - это ядро ​​linux. GCC является предпочтительным компилятором для всех основных программ на C / C ++ с открытым исходным кодом. Выпущенный GCC, особенно такой, как 4.3.X, который находится в основных дистрибутивах Linux, должен быть довольно хорошим.

GCC 4.3 также имеет лучшую поддержку для оптимизации на более новых процессорах.

4 голосов
/ 29 августа 2008

Когда я перенес проект из GCC 3 в GCC 4, я провел несколько тестов, чтобы убедиться, что поведение было одинаковым до и после. Можете ли вы просто запустить набор (надеюсь, автоматизированных) тестов, чтобы подтвердить правильное поведение? В конце концов, вам нужно «правильное» поведение, а не поведение GCC 3.

1 голос
/ 02 февраля 2013

Используйте последнюю версию, но выследите и поймите каждое предупреждение -Wall. Для дополнительного удовольствия, есть еще несколько предупреждающих флагов. У вас до имеется обширный набор регрессионных (и других) тестов, запустите их все и проверьте их.

GCC (в частности, C ++, но также и C) сильно изменился. Он намного лучше анализирует и оптимизирует код, а также обрабатывает код, который, как оказывается, вызывает неопределенное поведение по-разному. Так что код, который «работал нормально», но действительно полагался на какую-то конкретную интерпретацию недопустимых конструкций, вероятно, сломается. Будем надеяться, что компилятор выдаст предупреждение или ошибку, но не гарантирует такой удачи.

1 голос
/ 28 августа 2008

У меня нет конкретной версии для вас, но почему бы не установить 4.X и 3.4.6? Тогда вы можете попытаться сохранить код для обеих версий, и если вы столкнетесь с ошибкой остановки показа в 4, у вас будет политика выхода.

0 голосов
/ 23 сентября 2008

Я ничего не могу сказать о 4.3.2, но мой ноутбук - это система Gentoo Linux, созданная с GCC 4.3. {0,1} (в зависимости от того, когда был собран каждый пакет), и я не видел проблем , Хотя это в основном просто стандартное использование на рабочем столе. Если у вас есть какой-то странный код, ваш пробег может отличаться.

0 голосов
/ 28 августа 2008

Если вы заинтересованы в OpenMP, вам нужно будет перейти на gcc 4.2 или выше. Мы используем 4.2.2 на основе кода длиной около 5 миллионов строк и не испытываем никаких проблем с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...