TECHNICAL SUPPORT / WEB APPs BUGS


64bit client

As a side note: On linux, if someone wants to find out the names of all shared library an executable requires, one can enter (into a terminal window or command line shell):  ldd <filename>

ldd is a tool that takes an executable and tries to load it like the operating system would do in order to start it, and prints out all the shared libraries found (with path name) and those names that could not be found.

This would allow e.g. Rashiid to test with which shared libraries an executable would run.

On my 64 bit linux, with the standard Ryzom client, and an NVidia gfx card in use, the output looks like this:

$ ldd ryzom_client
    linux-gate.so.1 =>  (0xf7756000)
    libGL.so.1 => /usr/lib32/nvidia-313-updates/libGL.so.1 (0xf7648000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7511000)
    libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf750a000)
    libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf74ff000)
    libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf74f5000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf74f0000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf74e7000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74cb000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf73e2000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf739f000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71eb000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf71ce000)
    libnvidia-tls.so.313.30 => /usr/lib32/nvidia-313-updates/tls/libnvidia-tls.so.313.30 (0xf71c9000)
    libnvidia-glcore.so.313.30 => /usr/lib32/nvidia-313-updates/libnvidia-glcore.so.313.30 (0xf5487000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5475000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf5453000)
    /lib/ld-linux.so.2 (0xf7757000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf544e000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf5447000)

As there's only "lib" and "lib32" shared libraries being referenced, it is relatively safe to assume that this is a 32bit executable and runs without any dedicated 64bit libs.

A different test would be to just ask the OS:
$ file ryzom_client
ryzom_client: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped

A static executable would not need any loaded libraries and this ldd would print out a message to that regard and the file command would print "statically linked".

So, if you're on linux and ever in doubt what kind of client you have, you can use these two to check.
Show topic
Last visit Thursday, 25 April 00:03:10 UTC
P_:

powered by ryzom-api