Closed Hyenadae closed 3 years ago
I've gotten 'ido' and the main libraries + cc recompiled for aarch64 but it's failing at a different error now. I wasn't able to recompile the error message library? as it wasn't an ELF file though, not sure if it being x86_64? is still causing the failures.
https://cdn.discordapp.com/attachments/793267277859520563/886917064835608576/aarch64-ido.tar.gz Is both sets of recompiled IDOs from https://github.com/Emill/ido-static-recomp/tree/per-function for aarch64 if any other crazy person has a Pi 3/4 with Raspbian 64 and wants to give it a look at.
`as1: ERROR MESSAGE 8ERROR MESSAGE 64 as1: main.c:157: Assertion 'FALSE' failed. Fatal error in: /usr/lib/as1 child died due to signal 6. Fatal error in: /usr/lib/as1 Signal 6 Failed to compile file src/code/mtxuty-cvt.c. Command line:
tools/ido_recomp/linux/7.1/cc -c -G 0 -non_shared -Xfullwarn -Xcpluscomm -Iinclude -Isrc -Iassets -Ibuild -Wab,-r4300_mul -woff 649,838,712 -mips2 -O2 -I /home/pi/src/oot-decomp/oot/src/code -o build/src/code/mtxuty-cvt.o /tmp/preprocessednu8qbp6k.c
make: *** [Makefile:217: build/src/code/mtxuty-cvt.o] Error 55`
Another interesting note, it seems that '5.3' aarch64 is working fine, but there's something about as1? in 7.1 that doesn't work. I've managed to get a couple hundred '.o' output compiled files from switching between 5.3 and 7.1 when make hangs up, and then reverting it depending on what is working with the mismatched as1 (5.3) to cc (7.1) lol.
src/overlays/actors/ovl_End_Title/z_end_title_gfx.c:455:5: note: in expansion of macro ‘gsDPLoadTextureTile’ 455 | gsDPLoadTextureTile(D_80B69060, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 16, 0, 0, 95, 15, 0, G_TX_NOMIRROR | src/overlays/actors/ovl_End_Title/z_end_title_gfx.c:455:5: warning: missing initializer for field ‘w1’ of ‘Gwords’ [-Wmissing-field-initializers]
Being the common errors, but always ending in "Error 1" from the Makefile.
After a bunch of work with other actors not being compiled for one reason or another, I managed to get a ROM spit out. So it's possible, with a lot of work and various compilation errors to get Zelda OOT Decomp on aarch64.
closing cause building on other archs isnt necessarily supported here. glad you got it working anyway though (as reported in discord) :D
How did you got it working? I got no x86 devices anymore I only got arm64 devices.
I'm currently trying to see if a ROM can be compiled on a raspberry pi (or any other mostly-normal ARM / Aarch64 system) but compilation fails at when I assume it tries to actually make the N64-MIPS native libraries and code using ido, which can't be executed as it's an x86_64 binary for linux.
Python is v3.9 GCC is 10.2 (Using a frakendebian 'Raspbian 64bit' with more native-64bit programs, but anyways)
Below I am using Revo's GCC9_1 fork in an attempt to see how much further it gets, but for now it is impossible to build. I worked on porting the Super Mario 64 PC Port (April/May2020) 'beta' code to ARM & Pi last year with success, but that project was nearer to completion than this one it seems. llcvt may potentially be failing because of the... whatever it has inside of it (redefinitions?), but even after changing the MIPS-GCC compiler options to '-mabicalls' the ido 5.3 (or 7.1) errors continue as it's x86_64.
`mips-linux-gnu-gcc src/code/mtxuty-cvt.c -c -c -G 0 -nostdinc -Iinclude -Isrc -Iassets -Ibuild -I. -DNON_MATCHING=1 -DNON_EQUIVALENT=1 -DMODDING=1 -DNORMAL_GAMEPLAY=1 -DAVOID_UB=1 -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -mno-abicalls -fno-strict-aliasing -fno-inline-functions -fno-inline-small-functions -fno-toplevel-reorder -ffreestanding -fwrapv -Wall -Wextra -Wno-format-security -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-variable -Wno-missing-braces -Wno-int-conversion -g -mno-explicit-relocs -mno-split-addresses -funsigned-char -I src/code -mips3 -O2 -o build/src/code/mtxuty-cvt.o
tools/ido_recomp/linux/5.3/cc: 1: tools/ido_recomp/linux/5.3/cc: Syntax error: ")" unexpected make: [Makefile:293: build/src/libultra_code_O1/llcvt.o] Error 2 make: Waiting for unfinished jobs.... cc1: error: position-independent code requires ‘-mabicalls’ make: [Makefile:282: build/src/code/mtxuty-cvt.o] Error 1 cc1: error: position-independent code requires ‘-mabicalls’ make: [Makefile:282: build/src/libultra_code_O1/osStopTimer.o] Error 1`
Apparently there's a decompiled? IDO that this linux x86_64 recompiled version comes from, so I'll look at compiling it for aarch64 and armhf