I had some problems when I tried to run latest SublimeText Linux/x64 builds on SLES machines supported by our corporate IT (SLES10.3 WFIW).
- There are plenty of packages missing from default SLES config:
user/Sublime Text 2> ldd sublime_text
./sublime_text: /usr/lib64/libpng12.so.0: no version information available (required by ./sublime_text)
./sublime_text: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./sublime_text)
./sublime_text: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./sublime_text)
linux-vdso.so.1 => (0x00002aaaaaac6000)
libgtk-x11-2.0.so.0 => /opt/gnome/lib64/libgtk-x11-2.0.so.0 (0x00002aaaaabc7000)
libgdk-x11-2.0.so.0 => /opt/gnome/lib64/libgdk-x11-2.0.so.0 (0x00002aaaab001000)
libatk-1.0.so.0 => /opt/gnome/lib64/libatk-1.0.so.0 (0x00002aaaab198000)
libgio-2.0.so.0 => not found
libpangoft2-1.0.so.0 => /opt/gnome/lib64/libpangoft2-1.0.so.0 (0x00002aaaab2b7000)
libpangocairo-1.0.so.0 => /opt/gnome/lib64/libpangocairo-1.0.so.0 (0x00002aaaab3df000)
libgdk_pixbuf-2.0.so.0 => /opt/gnome/lib64/libgdk_pixbuf-2.0.so.0 (0x00002aaaab4e7000)
libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00002aaaab5ff000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00002aaaab75a000)
libpango-1.0.so.0 => /opt/gnome/lib64/libpango-1.0.so.0 (0x00002aaaab897000)
...
Fortunately I was able to resolve these missing packages via specially tweaked LD_LIBRARY_PATH, thanks to nice “common tools” mechanism our IT supports. And now there is no missing packages:
[user@mssiag100:~/v/Sublime Text 2]> ldd sublime_text
linux-vdso.so.1 => (0x00002aaaaaac6000)
libgtk-x11-2.0.so.0 => /opt/gnome/lib64/libgtk-x11-2.0.so.0 (0x00002aaaaabc7000)
libgdk-x11-2.0.so.0 => /opt/gnome/lib64/libgdk-x11-2.0.so.0 (0x00002aaaab001000)
libatk-1.0.so.0 => /opt/gnome/lib64/libatk-1.0.so.0 (0x00002aaaab199000)
libgio-2.0.so.0 => /usr/common-tools/pkgs/glib/2.24.2/lib64/libgio-2.0.so.0 (0x00002aaaab2b7000)
libpangoft2-1.0.so.0 => /opt/gnome/lib64/libpangoft2-1.0.so.0 (0x00002aaaab466000)
libpangocairo-1.0.so.0 => /opt/gnome/lib64/libpangocairo-1.0.so.0 (0x00002aaaab58f000)
libgdk_pixbuf-2.0.so.0 => /opt/gnome/lib64/libgdk_pixbuf-2.0.so.0 (0x00002aaaab696000)
libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00002aaaab7ae000)
libpng12.so.0 => /usr/common-tools/pkgs/libpng/1.2.40-64/lib/libpng12.so.0 (0x00002aaaab90a000)
...
- But here is another problem to come - this executable is not loaded by local ld, and producing SIGFPE:
[user@mssiag100:~/v/Sublime Text 2]> ./sublime_text
Floating exception
if we load this under debugger we see that the problem is in the loader itself, not executable:
Failed to read a valid object file image from memory.
Program received signal SIGFPE, Arithmetic exception.
0x00002aaaaaab368f in do_lookup_x () from /lib64/ld-linux-x86-64.so.2
(gdb) bt
#0 0x00002aaaaaab368f in do_lookup_x () from /lib64/ld-linux-x86-64.so.2
#1 0x00002aaaaaab3a77 in _dl_lookup_symbol_x () from /lib64/ld-linux-x86-64.so.2
#2 0x00002aaaaaab5028 in _dl_relocate_object () from /lib64/ld-linux-x86-64.so.2
#3 0x00002aaaaaaae633 in dl_main () from /lib64/ld-linux-x86-64.so.2
#4 0x00002aaaaaabcfc2 in _dl_sysdep_start () from /lib64/ld-linux-x86-64.so.2
#5 0x00002aaaaaaac247 in _dl_start () from /lib64/ld-linux-x86-64.so.2
#6 0x00002aaaaaaaba88 in _start () from /lib64/ld-linux-x86-64.so.2
#7 0x0000000000000001 in ?? ()
#8 0x00007fffffffdf1b in ?? ()
#9 0x0000000000000000 in ?? ()
I’ve googled around (google.com/search?q=SIGFPE+do_lookup_x) and apparently the trick is in using linker option to use both styles of hash sections via -Wl,--hash-style=both
.
Could you please rebuild execuables apprpriately and publish new build? Thanks!