I need help for the problem of compiling and using a newer version of Glibc than the one installed.
szept wrote: Fri Jan 05, 2024 9:07 pmDoes any1 know if the latest EasyOS release includes GLIBC update to 2.36? Cannot play my favourite game since they updated it few days ago and this is my crash error:
Code: Select all
# ./medivia ./medivia: /usr/lib/libc.so.6: version `GLIBC_2.36' not found (required by ./medivia)
After this bug has been spotted, they've added:
Dear players
Due to certain upgrades the Linux version of the game client does now require glibc version of 2.36 to run properly.Forum users advise to either update linux distro, or do the following steps:
1) Download the files:
Go to http://ftp.gnu.org/gnu/glibc/ and download glibc-2.36.tar.gz or wget it (http://ftp.gnu.org/gnu/glibc/glibc-2.36.tar.gz)
2) Unpack:
tar zxvf glibc-2.36.tar.gz
3) Create temporary build directory:
cd glibc-2.36
mkdir build
cd build
4) run configure script from there:
../configure --prefix=/opt/glibc-2.36
5) Make, & install:
make -j4
sudo make install
6) You can now start medivia as follows:
LD_PRELOAD='/opt/glibc-2.36/lib/libm.so.6' ./medivia
I recommend creating a "start.sh" script with this command and then run that everytime.
In some answers of this message (first answer : viewtopic.php?p=107643#p107643) I tried the method explained in the message.
In summary, I compiled glibc-2.36 (in Easy 5.6.3) (compiled as explained in the message), shared it as a pet with @szept. He tested with the recommended command (LD_PRELOAD='/opt/glibc-2.36/lib/libm.so.6' ./medivia) (and variants) without success.
I only understand now that the problem is with my compilation.
(EDIT : In fact, the compilation do not work with the recommanded command (LD_PRELOAD='/opt/glibc-2.36/lib/libm.so.6')./medivia. A method that works is to pass the location of glibc-2.36 as parameter to the binary ld-linu-x86-64.so.2. See the message viewtopic.php?p=111312#p111312)
Output of the command ldd :
Code: Select all
# ldd /opt/glibc-2.36/lib/libc.so.6
/opt/glibc-2.36/lib/ld-linux-x86-64.so.2 => /usr/lib/ld-linux-x86-64.so.2 (0x00007fc3c9224000)
linux-vdso.so.1 (0x00007ffc7b28d000)
Code: Select all
# ldd /opt/glibc-2.36/lib/ld-linux-x86-64.so.2
statically linked
Does anyone understand why a file from glibc-2.36 is statically linked to the installed glibc and especially how to prevent that ?
Thanks in advance