Skip to content

Lutris provides incorrect architecture library for the Flycast core in libretro #135

@DoktorSeven

Description

@DoktorSeven

libretro core "flycast" provided by lutris is a 32-bit library for 64-bit systems/libretro, causing an error.

Add a libretro game, select a Dreamcast chd/cue/etc.
Select "Sega Dreamcast/NAOMI (Flycast)" as its core.
Run and allow it to download the core.
Running the core after download will not start the game because of a "wrong ELF class: ELFCLASS32" error.

[INFO] Loading dynamic libretro core from: "/home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so"
[ERROR] Failed to open libretro core: "/home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so"
Error(s): /home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so: wrong ELF class: ELFCLASS32
[INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.

64bit Ubuntu 20.10. RetroArch is correctly pointing to a directory with the proper Dreamcast BIOS files which works with standalone RetroArch's Flycast core.

Removing the 32bit flycast_libretro.so file, manually running RetroArch from Lutris, downloading the flycast_libretro.so from the menu within Retroarch, exiting, and re-running the added game from the Lutris game list works properly.

Lutris downloaded file:
$ file flycast_libretro.so
flycast_libretro.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=e6f9ae0382a5fdba930b14eedda9e3c1ea819cef, stripped

Retroarch downloaded file:
$ file flycast_libretro.so
flycast_libretro.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=3b893ede7b1fb3b78beaed0a01c0666bcad0dbe6, stripped

Retroarch binary provided by Lutris:
$ file retroarch
retroarch: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=98d7259da319b89978812a77b008981ca84c2f8f, stripped

Note the 64 and 32 bit discrepancy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions