Home Forums General Discussion 64-bit build for the Linux binary

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #156

    Hi there,

    I'd like to discuss the possibility of having a 64-bit build of the Linux included with the alphas. The current binary is compiled against 32-bit libraries; it's not an issue as such, since most distros let users install 32-bit libraries on 64-bit systems, but it can be quite bothersome for “average” users.

    As an example, KeeperRL alpha7 relies on the following libraries (on Mageia /lib symlinks to /usr/lib, which is the path for 32-bit libraries):

    Code:
    [akien@cauldron keeperRL_alpha7]$ ldd ./keeper
            linux-gate.so.1 (0xf778f000)
            libsfml-audio.so.2 => ./libsfml-audio.so.2 (0xf777e000)
            libsfml-graphics.so.2 => ./libsfml-graphics.so.2 (0xf7742000)
            libsfml-window.so.2 => ./libsfml-window.so.2 (0xf772e000)
            libsfml-system.so.2 => ./libsfml-system.so.2 (0xf7723000)
            libboost_serialization.so.1.54.0 => ./libboost_serialization.so.1.54.0 (0xf76bb000)
            libz.so.1 => /lib/libz.so.1 (0xf7677000)
            libm.so.6 => /lib/libm.so.6 (0xf7631000)
            libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7616000)
            libc.so.6 => /lib/libc.so.6 (0xf745e000)
            /lib/ld-linux.so.2 (0xf7790000)
            libpthread.so.0 => /lib/libpthread.so.0 (0xf7443000)
            libopenal.so.1 => /lib/libopenal.so.1 (0xf73ed000)
            libsndfile.so.1 => /lib/libsndfile.so.1 (0xf737b000)
            librt.so.1 => /lib/librt.so.1 (0xf7372000)
            libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7289000)
            libfreetype.so.6 => /lib/libfreetype.so.6 (0xf71f6000)
            libGLEW.so.1.7 => ./libGLEW.so.1.7 (0xf7195000)
            libjpeg.so.8 => /lib/libjpeg.so.8 (0xf713a000)
            libGL.so.1 => /lib/libGL.so.1 (0xf70d0000)
            libX11.so.6 => /lib/libX11.so.6 (0xf6f97000)
            libXext.so.6 => /lib/libXext.so.6 (0xf6f83000)
            libXrandr.so.2 => /lib/libXrandr.so.2 (0xf6f78000)
            libdl.so.2 => /lib/libdl.so.2 (0xf6f73000)
            libFLAC.so.8 => /lib/libFLAC.so.8 (0xf6f3c000)
            libvorbisenc.so.2 => /lib/libvorbisenc.so.2 (0xf6eb0000)
            libvorbis.so.0 => /lib/libvorbis.so.0 (0xf6e83000)
            libogg.so.0 => /lib/libogg.so.0 (0xf6e7b000)
            libbz2.so.1 => /lib/libbz2.so.1 (0xf6e69000)
            libpng16.so.16 => /lib/libpng16.so.16 (0xf6e0f000)
            libXmu.so.6 => /lib/libXmu.so.6 (0xf6df6000)
            libXi.so.6 => /lib/libXi.so.6 (0xf6de4000)
            libGLU.so.1 => /lib/libGLU.so.1 (0xf6d5d000)
            libglapi.so.0 => /lib/libglapi.so.0 (0xf6d3b000)
            libXdamage.so.1 => /lib/libXdamage.so.1 (0xf6d37000)
            libXfixes.so.3 => /lib/libXfixes.so.3 (0xf6d31000)
            libX11-xcb.so.1 => /lib/libX11-xcb.so.1 (0xf6d2d000)
            libxcb-glx.so.0 => /lib/libxcb-glx.so.0 (0xf6d14000)
            libxcb-dri2.so.0 => /lib/libxcb-dri2.so.0 (0xf6d0e000)
            libxcb-dri3.so.0 => /lib/libxcb-dri3.so.0 (0xf6d0a000)
            libxcb-present.so.0 => /lib/libxcb-present.so.0 (0xf6d06000)
            libxcb-sync.so.1 => /lib/libxcb-sync.so.1 (0xf6cfe000)
            libxcb.so.1 => /lib/libxcb.so.1 (0xf6cdb000)
            libxshmfence.so.1 => /lib/libxshmfence.so.1 (0xf6cd8000)
            libXxf86vm.so.1 => /lib/libXxf86vm.so.1 (0xf6cd2000)
            libdrm.so.2 => /lib/libdrm.so.2 (0xf6cc5000)
            libXrender.so.1 => /lib/libXrender.so.1 (0xf6cba000)
            libXt.so.6 => /lib/libXt.so.6 (0xf6c5c000)
            libXau.so.6 => /lib/libXau.so.6 (0xf6c58000)
            libXdmcp.so.6 => /lib/libXdmcp.so.6 (0xf6c51000)
            libSM.so.6 => /lib/libSM.so.6 (0xf6c48000)
            libICE.so.6 => /lib/libICE.so.6 (0xf6c2e000)
            libuuid.so.1 => /lib/libuuid.so.1 (0xf6c28000)

    So to run KeeperRL on a 64-bit system, one would need to install all those 32-bit libraries, or they would have to come bundled in the zip file, but I like the fact that KeeperRL relies mostly on system-wide libraries.
    So in my opinion the simplest way to rule out this issue would be to provide a 64-bit build as well (since all those libraries linked from /lib are quite common libraries on a live system).

    As a workaround for now, Mageia 64-bit users can install the needed libraries with:
    urpmi libopenal1 libfreetype6 libglew1.10 libjpeg8 libxrandr2 libxi6

    If the game still complains about missing libraries, e.g.

    Code:
    ./keeper: error while loading shared libraries: libfoobar.so.3: cannot open shared object file: No such file or directory

    you can find out which package contains this library with “urpmf /usr/lib/libfoobar.so.3” and install it.

    #502
    miki151
    Participant

    I'll supply a 64-bit binary in the next release. Meanwhile, if you don't have 32-bit compatibility libs installed, I think the best solution is to run it under wine, in my experience it works pretty well.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.