Closed bkeys closed 1 year ago
Related to https://github.com/godotengine/godot/issues/49225 and https://github.com/godotengine/godot/issues/55192.
This happens because the version of Embree, OpenImageDenoise and WebM used in Godot are x86-only. Adding module_embree_enabled=no module_raycast_enabled=no module_webm_enabled=no
to the SCons command line should make it possible to build Godot on ARM and PowerPC.
Now the build is successful, but the linker fails with:
/usr/bin/ld: drivers/libdrivers.x11.opt.tools.64.llvm.a(pngrutil.x11.opt.tools.64.llvm.o): in function `png_init_filter_functions': /home/bkeys/Devel/Software/godot/thirdparty/libpng/pngrutil.c:4304: undefined reference to `png_init_filter_functions_vsx'
At which point I question if that is a ppc64le/arm specific issue
@bkeys Did you try adding arch=ppc64
in the scons command?
It should auto-detect the architecture from this list but since your filename contains .64.
then it looks like it's not detecting it. What is the output of import platform
then platform.machine()
in Python on your system?
Yes I did a clean build and scons gave me the same linker error from before. As for python, it gave me the output of 'ppc64le'
@bkeys Sorry for sending you on a wild goose chase, I've figured out the problem. It's in 3.5 but not 3.4.
Well I have tried to build on master and I still get the error about the undefined reference to libpng, so what are the next steps for me to try to build Godot?
@q66
if you want a patch for stable releases: https://github.com/void-linux/void-packages/blob/master/srcpkgs/godot/patches/ppc.patch
the current workaround for libpng issues is to build with system libpng, another workaround is to get -DPNG_POWERPC_VSX_OPT=0
into your compiler flags
actual out of box solution would be to import the vsx intrinsics sources from https://github.com/glennrp/libpng/tree/libpng16/powerpc into the bundled libpng
and add them into the build
How do I go about using the system libpng?
builtin_libpng=false
?
I get the same linker error, I even went into SConstruct and changed it, the error persists
You should do a clean build (or at least remove .o
and .a
files in drivers/png
and thirdparty/libpng
). Note that freetype depends on libpng so if you use system libpng, it's advised to also use system freetype (and system zlib).
@akien-mga I removed the .a and .o files in those directories and I got the same linker error.
I did a complete rebuild making png, zlib, and freetype all system and I got a successful build.
@bkeys Is this resolved then? If so, we can close this issue.
I tried a fresh build with the current alpha and got the following error
[100%] Linking Program bin/godot.linuxbsd.opt.tools.ppc64.llvm ...
platform/linuxbsd/libudev-so_wrap.linuxbsd.opt.tools.ppc64.llvm.o: file not recognized: file format not recognized
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
Not sure if you wanna keep this issue open or not.
This issue has resurfaced into the 4.0 version of Godot. Any advice on getting it built with ppc64le?
@bkeys @q66 What are you using to run Godot on PowerPC? Physical hardware? VMs? If VM, what software, Qemu? What's the correct setup to get graphics support in Qemu PPC? If hardware, is it something cheap I could buy?
@aaronfranke I am using a Talos workstation available from raptorcs. Unfortunately it is not cheap hardware at all. I have an amdgpu in here, with a mainline Fedora installation. It's nothing too special other than the fact it's ppc64le.
Fixed by #78325.
Godot version
3.4
System information
Fedora, ppc64le
Issue description
I tried to build godot on this platform, and I get the following error, I can replicate this on version 3.4.2 as well:
It looks like it is trying to use x86 specific instructions.
Steps to reproduce
clone the godot repo, and check into the 3.4 branch, run the following command:
scons use_llvm=yes target=release_debug p=linuxbsd
Minimal reproduction project
No response