avr-gcc -mmcu=atmega8535 -Wall -Werror -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -I/usr/include/avr -I. -mcall-prologues -fmerge-constants -mint8 -DPINCONF_H=\"pinconf.h\" -DALL_H=\"all.h\" -DF_CPU=8000000ll -c -o main.o main.c <built-in>:0:0: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Перекомпилировать нужно.
В бранче 5.1 работает нормально
Это дуп #24565, нет?
*** Bug 24565 has been marked as a duplicate of this bug. ***
Падение связано с опцией -mint8, читаем ниже... http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46261 avr-libc doesn't support that option (-mint8) https://bugzilla.redhat.com/show_bug.cgi?id=626889 This switch is no longer maintained, see the link of my previous post. Предлагаю не использовать данную опцию, т.к. ее поддержка для платформы AVR прикрыта.
(В ответ на комментарий №4) > Падение связано с опцией -mint8, читаем ниже... > Предлагаю не использовать данную опцию, т.к. ее поддержка для платформы AVR > прикрыта. Вы можете работающую версию в бранче 5.1 как-то отфоркнуть в отдельный пакет? Без этой опции оператор if и всё с ним связанное (while,for,switch,?:) совсем криво транслируются. И это не программирование получается, а разгадка ребусов.
Честно говоря, не совсем понимаю, что там криво транслируется. Судя по получаемому asm коду, там все вполне корректно транслируется. Я бы хотел понять, что же не так без -mint8?
без -min8 компилятор по умолчанию везде использует 16 битные конструкции и сразу вылезают в разных, труднопредсказемых местах ошибки вида #22884.