Closed irixxxx closed 4 months ago
This is a platform define problem in zstd code or makefile, it tries to open a x86_64 assembly-built object which does not exists since we're on aarch64
Just a question: why is it compiling on other aarch64 targets? Also, picodrive isn't using the sub-Makefile, it has a file list in its master Make. Should I exclude this file when not on aarch64?
I took a glance at the asm file, and as it looks it should assemble everywhere. If it's not x86_64, it comes down to an empty file, with some special handling for aarch64 to set the right properties for an empty file. I think that's ok. It also compiles fine for mips and ppc targets. The big question is, why is this not working for libnx? What kind of dependency file is the compiler expecting here?
Yeah I share the same analysis of the assembly file. And I have no idea of what .d it expects, but I do the rule in the sub-dir Makefile : https://github.com/rtissera/libchdr/blob/master/deps/zstd-1.5.6/lib/Makefile Please note this is vanilla zstd-1.5.6 from facebook, no local changes
Le sam. 15 juin 2024 à 16:14, irixxxx @.***> a écrit :
I took a glance at the asm file, and as it looks it should assemble everywhere. If it's not x86_64, it comes down to an empty file, with some special handling for aarch64 to set the right properties for an empty file. I think that's ok. It also compiles fine for mips and ppc targets. The big question is, why is this not working for libnx? What kind of dependency file is the compiler expecting here?
— Reply to this email directly, view it on GitHub https://github.com/rtissera/libchdr/issues/127#issuecomment-2169738814, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAW4WBM4SYHAX734ZUU7WRLZHRD2RAVCNFSM6AAAAABJLSLKYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRZG4ZTQOBRGQ . You are receiving this because you commented.Message ID: @.***>
I'll just exclude it for any architecture not including the substring x86 then. That's probably the best thing to do here. However, I reckon anyone doing meson builds might hit the same problem, as the meson build file apparently isn't looking at the arch.
Yeah I agree especially if you want to make a release soon. Actually you might also use some zstd define to disable asm
Le sam. 15 juin 2024 à 16:24, irixxxx @.***> a écrit :
I'll just exclude it for any architecture not including the substring x86 then. That's probably the best thing to do here. However, I reckon anyone doing meson builds might hit the same problem, as the meson build file apparently isn't looking at the arch.
— Reply to this email directly, view it on GitHub https://github.com/rtissera/libchdr/issues/127#issuecomment-2169768097, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAW4WBOEFXETF5WIZ3CQC6DZHRFDHAVCNFSM6AAAAABJLSLKYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRZG43DQMBZG4 . You are receiving this because you commented.Message ID: @.***>
Taking out the asm file from the build solves the issue. FYI, from notaz I got the info that devkitpro's switch_rules reference a DEPSDIR variable which needs to be set in Makefile.libretro.
I get this from the lr-picodrive buildbot run for the libretro-build-libnx-aarch64 job:
Other aarch64 targets seem to compile fine though.