CopperSpice Yotco Layer
Posted: Wed Jan 01 2025 1:08 am
Hello,
I am trying to add a CopperSpice Yocto Layer. I am partially able to get the build working however the build fails during the link step. The link step takes a few hours to fail on a fairly recent processor - Ryzen 5950x. I am assuming trying to resolve symbols in all of the object files because when the build does finally fail the following output is produced (full output here https://gist.github.com/ablaylock/6ad11f0f759e0d532a385728101ba94e):
I have examined these threads to get the basic build off the ground:
https://forum.copperspice.com/viewtopic.php?f=9&t=1605&p=3773
https://forum.copperspice.com/viewtopic.php?f=11&t=1976&p=4959
The meta layer along with basic build instructions can be found here:
https://github.com/ablaylock/meta-copperspice.git
Initially I was trying to build this for an ARM target, however I thought there might be something specific to the architecture going on so I switched to use the main upstream poke yocto distribution targeting x86_64 which still exhibits the issue.
Another issue to be aware of for anyone attempting to reproduce this issue is the build takes a significant amount of RAM per thread. My system doesn’t have issues if I allocate 4GB of RAM per build thread (or limit the number of threads to avaliable RAM).
I am trying to add a CopperSpice Yocto Layer. I am partially able to get the build working however the build fails during the link step. The link step takes a few hours to fail on a fairly recent processor - Ryzen 5950x. I am assuming trying to resolve symbols in all of the object files because when the build does finally fail the following output is produced (full output here https://gist.github.com/ablaylock/6ad11f0f759e0d532a385728101ba94e):
I have gotten CopperSpice to be built if only the core is enabled, as soon as the QtGui is enabled (no other modules) the linker error occurs./home/dev/yocto/poky/build/tmp/work/core2-64-poky-linux/copperspice/1.0.10+gitAUTOINC+036ae96b22-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/11.3.0/ld: src/gui/CMakeFiles/CsGui.dir/platform/qplatform_systemtrayicon.cpp.o: in function `QMetaObject_T<QPlatformSystemTrayIcon>::superClass() const':
qplatform_systemtrayicon.cpp:(.text._ZNK13QMetaObject_TI23QPlatformSystemTrayIconE10superClassEv[_ZNK13QMetaObject_TI23QPlatformSystemTrayIconE10superClassEv]+0x1): undefined reference to `QObject::staticMetaObject()'
/home/dev/yocto/poky/build/tmp/work/core2-64-poky-linux/copperspice/1.0.10+gitAUTOINC+036ae96b22-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/11.3.0/ld: src/gui/CMakeFiles/CsGui.dir/platform/qplatform_systemtrayicon.cpp.o:(.data.rel.ro._ZTC23QPlatformSystemTrayIcon0_7QObject[_ZTV23QPlatformSystemTrayIcon]+0x20): undefined reference to `QObject::metaObject() const'
/home/dev/yocto/poky/build/tmp/work/core2-64-poky-linux/copperspice/1.0.10+gitAUTOINC+036ae96b22-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/11.3.0/ld: src/gui/CMakeFiles/CsGui.dir/platform/qplatform_themeplugin.cpp.o:(.data.rel.ro._ZTC20QPlatformThemePlugin0_7QObject[_ZTV20QPlatformThemePlugin]+0x20): undefined reference to `QObject::metaObject() const'
/home/dev/yocto/poky/build/tmp/work/core2-64-poky-linux/copperspice/1.0.10+gitAUTOINC+036ae96b22-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/../../libexec/x86_64-poky-linux/gcc/x86_64-poky-linux/11.3.0/ld: src/gui/CMakeFiles/CsGui.dir/styles/qstyleplugin.cpp.o:(.data.rel.ro._ZTC12QStylePlugin0_7QObject[_ZTV12QStylePlugin]+0x20): undefined reference to `QObject::metaObject() const'
I have examined these threads to get the basic build off the ground:
https://forum.copperspice.com/viewtopic.php?f=9&t=1605&p=3773
https://forum.copperspice.com/viewtopic.php?f=11&t=1976&p=4959
The meta layer along with basic build instructions can be found here:
https://github.com/ablaylock/meta-copperspice.git
Initially I was trying to build this for an ARM target, however I thought there might be something specific to the architecture going on so I switched to use the main upstream poke yocto distribution targeting x86_64 which still exhibits the issue.
Another issue to be aware of for anyone attempting to reproduce this issue is the build takes a significant amount of RAM per thread. My system doesn’t have issues if I allocate 4GB of RAM per build thread (or limit the number of threads to avaliable RAM).