The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов GCC 14, opennews (??), 07-Май-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


83. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (83), 07-Май-24, 21:03 
А, вот интересно, кто знает:
почему u-boot от 2017г., собраный (под armv7) gcc 6 работает, а gcc 11 не работает?
Хотя ошибок сборки нет.
Ответить | Правка | Наверх | Cообщить модератору

95. "Релиз набора компиляторов GCC 14"  –2 +/
Сообщение от Аноним (95), 07-Май-24, 22:51 
Потому что типичная кодовая база системного ПО на Си - UB, хаки, расширения компилятора. В этот раз UB звезды сложились по-другому, возможно, компилятор выкинул что-то нужное.

Неплохо бы проверить, заработает ли с -O0.

Ответить | Правка | Наверх | Cообщить модератору

139. "Релиз набора компиляторов GCC 14"  +1 +/
Сообщение от Аноним (138), 08-Май-24, 12:20 
>хаки, расширения компилятора

Если бы вот это вот поменялось, то тупо не скомпилировалось бы. А не то, что только не работает.

Ответить | Правка | Наверх | Cообщить модератору

114. "Релиз набора компиляторов GCC 14"  +1 +/
Сообщение от Аноним с Оболони (?), 08-Май-24, 06:21 
> не работает

Что ты имеешь ввиду? Мы не телепаты.

Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

131. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (131), 08-Май-24, 10:40 
А чего тут иметь в виду? Всё как обычно по мануалу, кросс-компиляция:  

    make clean  
    make defconfig  
    make all  
    dd бинарник на sd-карту  

После gcc 6 загрузка есть, после gcc 11 загрузки нет. Исходники одни и те же.  
(для rk3288 например это так)

Ответить | Правка | Наверх | Cообщить модератору

140. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (138), 08-Май-24, 12:36 
А что линкер одной и той же версии при разных GCC?
Ответить | Правка | Наверх | Cообщить модератору

121. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (-), 08-Май-24, 09:53 
> почему u-boot от 2017г., собраный (под armv7) gcc 6 работает, а gcc 11 не работает?

А у тебя новый тулчейн - того же triple'а? Т.е. например armhf -> armhf, none-eabi -> none-eabi, ... а иначе уже возможны варианты.

Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

133. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (131), 08-Май-24, 10:56 
Да, нее, gcc в стандартной поставке "из коробки".
На fedora 31-35 пробовал собирать, u-boot не стартует.
Специально старую fedora 25 поставил с gcc 6, u-boot стартует.

Более древние инструменты требуют более древних сред.
Не стал с этим заморачиваться.

Получается сам u-boot под древний инструмент писался?
Ну, просто, с последними версиями u-boot такая же ерунда -
новыми инструментами собирается, но не работает.

Ответить | Правка | Наверх | Cообщить модератору

167. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (-), 08-Май-24, 21:31 
> Более древние инструменты требуют более древних сред.
> Не стал с этим заморачиваться.
> Получается сам u-boot под древний инструмент писался?
> Ну, просто, с последними версиями u-boot такая же ерунда -
> новыми инструментами собирается, но не работает.

Ну хз, под мои железки 12-м GCC из Debian - нормуль билдуется. И работает. Но я знаю что делаю и таки более-менее трекаю состояние платформ и тулчейнов. А не так что раз - и через 5 версий прыгнули и гадай что, где и когда отпало.

По нормальному билды делаются по ходу пьесы, а когда что-то отваливается - апстрим информируется о баге и баг чинится. В таком режиме все просто, логично и понятно. И надо то - изредка билд пинать, раз в релиз тулчейна может.

А если вообще не стартит - ну печалька, смотреть чем-то типа JTAG или (если воспроизводится, в qemu с GDB дебаг хостом) где оно висит и делать выводы. Самое очевидное: у вас LTO не активен случайно по дефолту? С федористов станется а в бутлоадере и проч он могет и лишнего убить, в бутлоадере то.

Или как вариант посмотреть несколько версий тулчейна и понять где отвалилось. Если не лениво - bisect сделать. Благо это не особо долго и сложно. Если оно нужно.

Ответить | Правка | Наверх | Cообщить модератору

177. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (177), 09-Май-24, 18:17 
Спасибо, заработало!
Хм, в доке написано, что u-boot поддерживает LTO, но для девелоперских целей, можно указать NO_LTO=1 make. Старанно всё это.
Ответить | Правка | Наверх | Cообщить модератору

180. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (180), 09-Май-24, 18:36 
> Спасибо, заработало!

Офигеть :) попал пальцем в небо. Или что называется, системный скилл таки говорит за себя сам.

> Хм, в доке написано, что u-boot поддерживает LTO, но для девелоперских целей,
> можно указать NO_LTO=1 make. Старанно всё это.

Теоретиески, LTO может работать с кернелами, фирмварями, бутлоадерами и проч.

Практически, если кто-то что-то где-то проморгает или что-то пойдет не так, он может запросто убабахать якобы-unused код какого-нибудь interrupt (или чего там еще) handler'а, вызываемого ЖЕЛЕЗОМ - что компилеру не видно - как якобы-unusued. И вот тут можно малость обломаться если прошляпить этот момент. Мне LTO как-то выпилил таблицу векторов в фирмвари. Ну а что, ее никто из софта и правда не юзает. А то что она нужна железу... ээ... ну компилер то не телепат, грохнул dead code/data :)

Если что затыкается __attribute__((used)). А, да, к сожалению это нестандартный экстеншн. Ну вот нет в стандарте варианта как форсануть нужность энного объекта для оптимизера "потому что юзается железом".

Ответить | Правка | Наверх | Cообщить модератору

174. "Релиз набора компиляторов GCC 14"  +/
Сообщение от Аноним (48), 09-Май-24, 12:03 
Никогда такого не было и тут опять!
Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру