[oi-dev] tcl and 64-bit modules

Alexander Pyhalov alp at rsu.ru
Wed Oct 30 13:07:22 UTC 2013


Hello.

It seems our 64-bit tcl don't know where to look for modules. And it is 
64-bit by default in /hipster. So, it's broken by default.

Does it work in /dev?

For example,
/usr/bin/amd64/tclsh
% package require Pgtcl
couldn't load file "/usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so": ld.so.1: 
tclsh8.5: fatal: /usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so: wrong ELF 
class: ELFCLASS32
% package require sqlite3
couldn't load file "/usr/lib/tcl8.5/sqlite3.7.17/libsqlite3.7.17.so": 
ld.so.1: tclsh8.5: fatal: 
/usr/lib/tcl8.5/sqlite3.7.17/libsqlite3.7.17.so: wrong ELF class: ELFCLASS32


Related issue https://www.illumos.org/issues/1066 is marked as resolved. 
Is it a separate bug or is there any patch in /dev which fixes this?

$ truss -t open  tclsh
open("/var/ld/64/ld.config", O_RDONLY)          Err#2 ENOENT
open("/usr/lib/amd64/libc.so.1", O_RDONLY)      = 3
open("/usr/lib/amd64/libtcl8.5.so", O_RDONLY)   = 3
open("/usr/lib/amd64/libm.so.2", O_RDONLY)      = 3
open("/usr/lib/amd64/libpthread.so.1", O_RDONLY) = 3
open("/usr/lib/locale//en_US.UTF-8/LC_CTYPE/LCL_DATA", O_RDONLY) = 3
/1:     open("/var/run/name_service_door", O_RDONLY)    = 5
/1:     open("/usr/lib/tcl8.5/init.tcl", O_RDONLY)      = 6
/1:     open("/export/home/alp/.tclshrc", O_RDONLY)     Err#2 ENOENT
% package require Pgtcl
/1:     open("/usr/lib/tclIndex", O_RDONLY)             Err#2 ENOENT
/1:     open("/usr/lib/tcl8.5/tclIndex", O_RDONLY)      = 6
/1:     open("/usr/lib/amd64/tclIndex", O_RDONLY)       Err#2 ENOENT
   ^ do we need to provide separate index here or patch existing one???

/1:     open("/usr/lib/tcl8.5/history.tcl", O_RDONLY)   = 6
/1:     open("/usr/lib/tcl8.5/tm.tcl", O_RDONLY)        = 6
/1:     open("/usr/lib/tcl8/8.4/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 6
/1:     open("/usr/lib/tcl8/8.5/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 6
/1:     open("/usr/lib/tcl8.5/package.tcl", O_RDONLY)   = 6
/1:     open("/usr/lib/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 6
/1:     open("/usr/lib/tk8.5/pkgIndex.tcl", O_RDONLY)   = 6
/1:     open("/usr/lib/expect5.45/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/rrdtool/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/tcl8.5/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 6
/1:     open("/usr/lib/tcl8.5/sqlite3.7.17/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/tcl8.5/opt0.4/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/tcl8.5/http1.0/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/tcl8.5/pgtcl1.9/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/amd64/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 6
/1:     open("/usr/lib/amd64/tk8.5/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/amd64/expect5.45/pkgIndex.tcl", O_RDONLY) = 6
/1:     open("/usr/lib/amd64/libdl.so.1", O_RDONLY)     = 6
/1:     open("/usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so", O_RDONLY) = 6
/1:     open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES/SUNW_OST_SGS.mo", 
O_RDONLY) Err#2 ENOENT
/1: 
open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES/SUNW_OST_OSLIB.mo", 
O_RDONLY) Err#2 ENOENT
/1:     open("/usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so", O_RDONLY) = 6
couldn't load file "/usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so": ld.so.1: 
tclsh8.5: fatal: /usr/lib/tcl8.5/pgtcl1.9/libpgtcl1.9.so: wrong ELF 
class: ELFCLASS32
-- 
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University




More information about the oi-dev mailing list