Bug 14921

Summary: wpewebkit build fails because of internal build order
Product: buildroot Reporter: Michael Nosthoff <buildroot>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: normal CC: buildroot
Priority: P5    
Version: 2022.02.3   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Host: Target:
Build:

Description Michael Nosthoff 2022-07-22 10:24:17 UTC
Hi,

since wpewebkit was bumped to 2.36.x (which is the case for 2022.05 as well as 2022.02.3) the build fails with my config. This bug was already briefly mentioned on the ML but I file it here for visibility.

This bug happens depending on the defconfig and the configuration of the buildsystem (I'm building on a 24-core machine). When I restart the build it succeeds because the missing dependency was then already build.

Two traces I recorded:

Scanning dependencies of target jsc
[ 39%] Building CXX object Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/__/jsc.cpp.o
[ 39%] Linking CXX executable ../../../bin/jsc
/builds/chp/bsp/buildroot/build/per-package/wpewebkit/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/../../../../arm-none-linux-gnueabihf/bin/ld: ../CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-6e4525b9-1.cpp.o: in function `JSC::LLInt::CLoop::initialize()':
UnifiedSource-6e4525b9-1.cpp:(.text+0x2f4): undefined reference to `JSC::LLInt::CLoop::execute(JSC::OpcodeID, void*, JSC::VM*, JSC::ProtoCallFrame*, bool)'
/builds/chp/bsp/buildroot/build/per-package/wpewebkit/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/../../../../arm-none-linux-gnueabihf/bin/ld: ../CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-6e4525b9-1.cpp.o: in function `vmEntryToJavaScript':
UnifiedSource-6e4525b9-1.cpp:(.text+0xb40): undefined reference to `JSC::LLInt::CLoop::execute(JSC::OpcodeID, void*, JSC::VM*, JSC::ProtoCallFrame*, bool)'
/builds/chp/bsp/buildroot/build/per-package/wpewebkit/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabihf/10.3.1/../../../../arm-none-linux-gnueabihf/bin/ld: ../CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-6e4525b9-1.cpp.o: in function `vmEntryToNative':
UnifiedSource-6e4525b9-1.cpp:(.text+0xbc0): undefined reference to `JSC::LLInt::CLoop::execute(JSC::OpcodeID, void*, JSC::VM*, JSC::ProtoCallFrame*, bool)'
collect2: error: ld returned 1 exit status


[ 39%] Built target JavaScriptCore_CopyPrivateHeaders
Scanning dependencies of target jsc
make[4]: *** No rule to make target 'Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/llint/LowLevelInterpreter.cpp.o', needed by 'bin/jsc'.  Stop.
make[4]: *** Waiting for unfinished jobs....
[ 39%] Building CXX object Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/__/jsc.cpp.o
make[3]: *** [CMakeFiles/Makefile2:775: Source/JavaScriptCore/shell/CMakeFiles/jsc.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
Scanning dependencies of target LowLevelInterpreterLib
[ 39%] Building CXX object Source/JavaScriptCore/CMakeFiles/LowLevelInterpreterLib.dir/llint/LowLevelInterpreter.cpp.o
[ 39%] Built target LowLevelInterpreterLib
[ 39%] Built target WebInspectorUI
make[2]: *** [Makefile:152: all] Error 2
make[1]: *** [package/pkg-generic.mk:293: /home/mheinemann/buildroot/build/build/wpewebkit-2.36.3/.stamp_built] Error 2
make: *** [Makefile:23: _all] Error 2


So it seems JSC is depending on LowLevelInterpreterLib which is built in parallel and thus not (always) finished in time.

Defconfig with which I can reproduce this but it might depend on the system you are building on:

BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_COG=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi4/config_4.txt"
BR2_PACKAGE_WPEWEBKIT=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
Comment 1 Michael Nosthoff 2022-09-27 06:58:39 UTC
fixed in 2022.08