So the reason is that recent Linux distros decided to build with -fno-omit-frame-pointer by default. Apparently both the riscv64 and the ppc64el implementations cannot cope with that.
The issue can be reproduce by adding -fno-omit-frame-pointer to the build flags.
greenlet 3.0.3 fails to build on riscv64 and ppc64el:
complete build logs at /launchpad. net/ubuntu/ +source/ python- greenlet/ 3.0.3-0ubuntu2
https:/
riscv64- linux-gnu- gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack- protector- strong -Wformat -Werror= format- security -g -O2 -fno-omit- frame-pointer -ffile- prefix- map=/<> =. -fstack- protector- strong -Wformat -Werror= format- security -fdebug- prefix- map=/<> =/usr/src/ python- greenlet- 3.0.3-0ubuntu2 -Wdate-time -D_FORTIFY_SOURCE=3 -fPIC -I/usr/ include/ python3. 11 -c /<>/src/ greenlet/ greenlet. cpp -o build/temp. linux-riscv64- cpython- 311/<>/ src/greenlet/ greenlet. o -Os
So the reason is that recent Linux distros decided to build with -fno-omit- frame-pointer by default. Apparently both the riscv64 and the ppc64el implementations cannot cope with that.
The issue can be reproduce by adding -fno-omit- frame-pointer to the build flags.