On Wed, 23 Jul 2025 19:40:43 +0000 Mike Gabriel <sunwea...@debian.org> wrote: > On Mi 23 Jul 2025 19:08:30 CEST, tshah wrote: > > > Tried reproducing the issue of ciborium build failure on ppc64el. On > > checking the logs minutely, got to know that the issue is in one of > > the source file /cdata.go/. There is a function declared with no > > definition: f/unc Addrs() (uintptr, uintptr)./ > > > > This patch fixes a build failure of the Ciborium package on the > > ppc64el architecture. The /qml.v1/cdata/cdata.go/ file defines the > > /Addrs() /function, which appears to rely on architecture-specific > > logic that is not supported on ppc64el. Attempting to compile on > > ppc64el results in an error due to this missing implementation. > > > > To resolve this, I have: > > > > * > > > > Added a Go build tag to |cdata.go| to exclude it from |ppc64el| builds. > > > > * > > > > Created a new file |cdata_stub.go|, which is only built on > > |ppc64el|, and provides a stub |Addrs()| function returning default > > zero values. > > > > This allows the package to compile successfully on |ppc64el|, while > > retaining the original behavior for other platforms. > > > > The stub ensures compatibility without introducing functional > > changes or affecting other architectures. I have attached the patch > > in this mail. > > Maybe your patch needs to be extended for other architectures, too? It > seems most of them suffer the same issue.
The patch is actually not necessary. The original go-qml-Project required architecture-specific hacks to obtain pointers to the runtime- and go-main functions for its tests. However, the tests have long been removed from the bundled go-qml and the method of obtaining the pointers would not work with any newer Go versions anyway so the correct fix is to just remove this code. I've done this upstream now: https://gitlab.com/ubports/development/core/ciborium/-/merge_requests/20 -- Guido Berhoerster