У меня проблемы с компиляцией 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) и у него все та же проблема.
Помощь приветствуется.
... Это я понимаю." - Спасибо, что указали на ошибку. Я бы даже не заметил, если честно. Как мне вообще его осмотреть? Что мне искать?
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, нет ?
Если вы говорите о внешней команде make
, которую вы вводите для запуска buildroot — нет, buildroot переопределяет -j
, указанную в командной строке. Вы можете просто установить JLEVEL в menuconfig (меню «Параметры сборки», 5-й параметр «Количество заданий для одновременного запуска»).
О, большое спасибо, чувак - это было решение. Просто установите его на 2, и компиляция заняла около 4 часов. Ты спасатель.
«На самом деле я не могу найти большую часть конкретного сообщения об ошибке здесь ...» — сообщение об ошибке указывает на проблему с чтением/анализом исходного кода JavaScriptCore, в частности файла assembler/MacroAssemblerARM64.h в строке 1523. Попробуйте вручную проверить этот файл на наличие повреждений.