Concorde 0 17 октября, 2016 Опубликовано 17 октября, 2016 · Жалоба Хотел бы поинтересоваться у людей - использует ли кто-нибудь GCC 5 при полной оптимизации в проектах ? В gcc 5 (последний от launchpad) полно багов. Вот ссылка на баг-репорт. Есть ли смысл пробывать 4ю версию (или, может, другую 5ю ?). Переехал недавно с IAR - просто в шоке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 17 октября, 2016 Опубликовано 17 октября, 2016 · Жалоба arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160609 (release) [ARM/embedded-5-branch revision 237715] Собирал ряд проектов для Cortex-M3/M4 и ARM926EJ. Всюду оптимизация -O2, багов нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 17 октября, 2016 Опубликовано 17 октября, 2016 (изменено) · Жалоба Использую последнюю ланчпадовскую сборку и с -Os и c -Ofast, cortex M3, M7, A9 (с TDM7 давно тестировал). Везде проект ведёт себя предсказуемо... arm-none-eabi-gcc -c -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototypes - DNDEBUG=1 -DCPUSTYLE_STM32F7XX=1 -DSTM32F746xx=1 -MD -MP -MF ./dep/bandfilters.o.d -I../../CMSIS-SP-00300-r4p5-00rel0/CMSIS/Include -I../ ../bandfilters.c -o bandfilters.o arm-none-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototype s -DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/bandfilters.o.d -I../ -I../rza1x_inc ../bandfilters.c -o bandfilters.o Например так вызывается. Изменено 17 октября, 2016 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Concorde 0 17 октября, 2016 Опубликовано 17 октября, 2016 · Жалоба Собирал ряд проектов для Cortex-M3/M4 и ARM926EJ. Всюду оптимизация -O2, багов нет. Не могли бы Вы протестить 'gcc_bug2.tar' (с баг-репорта) у себя ? Собственно, это я баг-репорты запостил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 17 октября, 2016 Опубликовано 17 октября, 2016 · Жалоба Не могли бы Вы протестить 'gcc_bug2.tar' (с баг-репорта) у себя ? Собственно, это я баг-репорты запостил. Уже :) Таки да, воспроизводятся оба. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Concorde 0 17 октября, 2016 Опубликовано 17 октября, 2016 · Жалоба Уже :) Таки да, воспроизводятся оба. Мне на этой неделе продукцию отгружать. С виду все работает (опустился до -O1), но коленки дрожат. Если ли смысл в срочном порядке переходить на 4.9 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба 5й GCC такой профит мощный даёт, что не можете на 4.9 откатиться? Просто интересно. Сам сижу на GCC 4.9 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 232 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба В 4.9 есть регрессии по размеру. В 5-ке не проверял, возможно вылечили. Кроме того в 5-ке есть поддержка ARMv8-M, хотя не очень понятно зачем это может быть нужно сейчас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба Я использую 4.8 (в основном потому, что 4.9 немного раздувает размер кода, там и библиотека местами раздулась). Жду, когда смелые и безбашенные вроде вас найдут все глюки в новых версиях Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Concorde 0 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба Оказался сам дурак (давненько не было проблем с оптимизацией). Смотрите ответы. Придется весь сторонний код как-то тестить и проверять и самому быть гораздо аккуратнее (оптимизация очень жесткой оказалась). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба Качество кода lwip во всей красе, UB на UB и UB погоняет. ЗЫ А варнинги это тоже пропустили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба Качество кода lwip во всей красе, UB на UB и UB погоняет. ЗЫ А варнинги это тоже пропустили? Я бы не стал вот так огульно. Этот баг был исправлен 3 мая 2012 года, то есть после выхода версии 1.4.0, но перед выходом 1.4.1. Кроме того, в обсуждении было сказано, что этот баг может вылезти только в том случае, если лёгкий выход за границу массива вдруг попадёт в защищённую область памяти и вызовет срабатывание защиты. Кто же мог предположить, что компилятор, увидев такое, воспримет это как индульгенцию генерировать чудо-юдо код? Я бы сказал, что это минус авторам gcc - в такой ситуации неплохо было бы хотя бы предупреждение выдать. Кроме того, это говорит о пользе обновления до последнего релиза. В конце концов, есть надежда, что будет исправлено больше старых багов, чем добавлено новых :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба UB ж и есть индульгенция, по стандарту, так что gcc'шники полностью в своём праве. Впрочем раз исправили, значит отчасти и правда огульно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 18 октября, 2016 Опубликовано 18 октября, 2016 · Жалоба UB ж и есть индульгенция, по стандарту, так что gcc'шники полностью в своём праве. Если не выдали при этом предупреждение - это свинство. За такое в приличном обществе в харю трескают. А так да. Допускаю, что алгоритмы оптимизации могут быть такими, что там непросто прицепить предупреждение. Но надо хотя бы попытаться :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k000858 0 19 октября, 2016 Опубликовано 19 октября, 2016 (изменено) · Жалоба Опишите подробней плиз по-русски о чем речь (я так понимаю, какие то баги по части DHCP в lwip) И что есть UB? Сам пользую lwip 1.4.1 и GCC 5 с максимальной оптимизацией и как раз наблюдаю странное поведение ПО. Изменено 19 октября, 2016 пользователем k000858 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться