Не удается скомпилировать с помощью buildroot 2022.08.1

У меня проблемы с компиляцией buildroot 2022.08.1. Кажется, в Интернете нет ничего (что я все равно могу найти), что могло бы мне помочь, поэтому я обращаюсь к легендам Интернета.

В настоящее время на Linux Mint 20.3, Kernel 5.19-поверхность

Обычно я бы не спрашивал, но я не могу найти здесь много конкретных сообщений об ошибках, которые я могу понять. Раньше я скомпилировал buildroot на этом компьютере только с дефолтной конфигурацией по умолчанию для raspberry pi 3, но очевидно, что наличие дополнительной конфигурации в этом профиле открыло для него проблемы.

Сборка почти завершается, а затем выполняется следующее:

[ 26%] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f0a787a9-7.cpp.o
aarch64-buildroot-linux-gnu-g++.br_real: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[4]: *** [Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:1175: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp.o] Error 1
make[4]: *** Deleting file 'Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-23a5fd0e-6.cpp.o'
make[4]: *** Waiting for unfinished jobs....
In file included from assembler/MacroAssembler.h:46,
                 from jit/Reg.h:30,
                 from jit/RegisterAtOffset.h:30,
                 from jit/RegisterAtOffsetList.h:30,
                 from jit/JITCode.h:33,
                 from runtime/ExecutableBase.h:32,
                 from runtime/ScriptExecutable.h:28,
                 from runtime/FunctionExecutable.h:30,
                 from runtime/JSFunctionInlines.h:28,
                 from ./bytecode/AccessCase.h:33,
                 from ./bytecode/AccessCase.cpp:27,
                 from ../../JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f0a787a9-1.cpp:1:
assembler/MacroAssemblerARM64.h: In member function ‘JSC::ARM64Assembler::ExtendType JSC::MacroAssemblerARM64::indexExtendType(JSC::AbstractMacroAssembler<JSC::ARM64Assembler>::BaseIndex)’:
assembler/MacroAssemblerARM64.h:1523:5: warning: control reaches end of non-void function [-Wreturn-type]
 1523 |     }
      |     ^
make[3]: *** [CMakeFiles/Makefile2:769: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all] Error 2
make[2]: *** [Makefile:156: all] Error 2
make[1]: *** [package/pkg-generic.mk:293: /home/aussietanz/buildroot-2022.08.1/output/build/webkitgtk-2.36.7/.stamp_built] Error 2
make: *** [Makefile:84: _all] Error 2

Думал, что это могло быть связано с недостаточным объемом памяти, выделенной для файла .img (первоначально 300 МБ, потому что это очень простой образ raspi3 с только bash, графическими утилитами и python), но я добавил немного больше (дополнительный 200M) и у него все та же проблема.

Помощь приветствуется.

«На самом деле я не могу найти большую часть конкретного сообщения об ошибке здесь ...» — сообщение об ошибке указывает на проблему с чтением/анализом исходного кода JavaScriptCore, в частности файла assembler/MacroAssemblerARM64.h в строке 1523. Попробуйте вручную проверить этот файл на наличие повреждений.

sawdust 10.10.2022 22:53

... Это я понимаю." - Спасибо, что указали на ошибку. Я бы даже не заметил, если честно. Как мне вообще его осмотреть? Что мне искать?

AuzzieTanz 11.10.2022 10:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
158
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
aarch64-buildroot-linux-gnu-g++.br_real: fatal error: Killed signal terminated program cc1plus

Это типичный симптом OOM (Out-Of-Memory) — движок javascript v8 занимает много памяти. Проверьте журналы ядра на вашей сборочной машине (journalctl -ke или dmesg | less) сразу после возникновения этой ошибки.

Если это действительно OOM, иногда его можно обойти, уменьшив параллелизм. Вы можете сделать это, установив BR2_JLEVEL более низкое значение в конфигурации Buildroot.

Я не нашел много информации об установке этого значения в конфигурационных файлах, но оно появляется, если я добавляю "-j" к команде "make" с желаемым значением (в данном случае 1), оно должно переопределить BR2_JLEVEL, нет ?

AuzzieTanz 16.10.2022 00:47

Если вы говорите о внешней команде make, которую вы вводите для запуска buildroot — нет, buildroot переопределяет -j, указанную в командной строке. Вы можете просто установить JLEVEL в menuconfig (меню «Параметры сборки», 5-й параметр «Количество заданий для одновременного запуска»).

Arnout 17.10.2022 10:05

О, большое спасибо, чувак - это было решение. Просто установите его на 2, и компиляция заняла около 4 часов. Ты спасатель.

AuzzieTanz 19.10.2022 13:08

Другие вопросы по теме