MBR (mbr) wrote,
MBR
mbr

Category:

gcc

Блядь, ну вот почему так? У всех нормальных людей пятничный пост про сиськи там, ну или выпивку на худой конец.

Я же вам расскажу, как знатно поебался с gcc.

Словил очень интересный нежданчик:

appears to be a bug with 64-bit integer division (int64_t, long long) for the Cortex-M0. GCC does a C code long long int division by calling the built-in AEABI helper function __aeabi_ldivmod which performs the division calculation. It does the calculation correctly but doesn't push/pop R6 and R7 which consequently corrupts the stack and scrambles the local variables.
via

Похоже ошибка кочующая и имеет свойство проявляться в разных сборках. Ошибка редкая, потому как никому в нормальном уме не понадобится int64 на m0. Никому, при условии что это не прописано в ТЗ и уже не выпущен миллион совместимых устройств. Вероятно, ручная правильная сборка кросс-gcc из исходников решит проблему, но я ленив.


Однако приятным бонусом было наткнуться на столь чудесную либу:

https://github.com/bobbl/libaeabi-cortexm0

Код столь компактен, что я подумываю над заменой всех остальных built-in.
Tags: embed, it
Subscribe

  • Май 2022

    Все как-то ни времени ни желания писать о стройке не было. Надо исправляться. Из глобального - купил полупромышленный измельчитель на 20 лошадей.…

  • С ценами странное

    Традиционный уже обзор по поводу финансовых изменений в стране. Доллар на сейчас 59. Глобально по продуктовой корзине я не заметил изменений. Может…

  • ru_radio_electr

    Мое мнение касательно произошедшего срача в сабжевой конференции. Я много раз говорил и еще раз повторюсь - мы все живем в информационных пузырях.…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments