Re: edbi on 64 bit machines?
- Posted by egis Apr 26, 2012
- 4135 views
Is this a typo for /usr/share/euphoria/edbi/drivers/mysql/ ?
That is, euphoria with an i ?
That was a typo, it is in /usr/share/euphoria/edbi/drivers/mysql/
Are you sure /usr/share/lib is in the library path? That is, is it in /etc/ld.so.conf ?
I was wrong here (I did not have access to the machine when I wrote the previous post)
I should have said a copy of edbi_mysql.so was put into /usr/lib64/ not /usr/share/lib. I also tried putting edbi_mysql.so into /usr/lib/ but later removed it and re-ran ldconfig.
/etc/ld.so.conf contains
/usr/X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/lib64/Xaw3d /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/lib/Xaw3d /usr/x86_64-suse-linux/lib /opt/kde3/lib /opt/gnome/lib /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/kde3/lib64 /opt/gnome/lib64 include /etc/ld.so.conf.d/[astrix].conf
So you built the driver twice? Once for 32bit and once for 64bit?
Yes, although several times.
Are you sure that the 64bit library is really 64bit?
file gives:
file /usr/share/euphoria/edbi/drivers/mysql/edbi_mysql.so edbi_musql.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped file /usr/lib64/libmysqlclient.so.15.0.0 libmysqlclient.so.15.0.0: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
If it's really 64bit, then it should be identified as an "ELF 64-bit" but if it says that it is an "ELF 32-bit" then it is a 32bit library that can't be loaded by a 64bit euphoria.
If the library really is 64bit and it really is in the right place, then try running ldd on it. That might list some missing dependencies that need to be fixed before you can load the driver.
The results from ldd seems to make sense and all of the refrenced files exist.
ldd edbi_mysql.so gives:
/usr/share/euphoria/edbi/drivers/mysql # ldd edbi_mysql.so libdl.so.2 => /lib64/libdl.so.2 (0x00002aafe8c41000) libm.so.6 => /lib64/libm.so.6 (0x00002aafe8e45000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aafe909b000) libc.so.6 => /lib64/libc.so.6 (0x00002aafe92b7000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
ldd /usr/lib64/libmysqlclient.so.15.0.0 gives:
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002adc2d23b000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00002adc2d474000) libm.so.6 => /lib64/libm.so.6 (0x00002adc2d68b000) libz.so.1 => /lib64/libz.so.1 (0x00002adc2d8e2000) libc.so.6 => /lib64/libc.so.6 (0x00002adc2daf7000) /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
Would a reboot help? It is on a server so I dont like to do that if I can avoid it.
Any other suggestions?