Sublime Forum

Floating exception while starting on SLES10

#1

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).

  1. 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)
        ...
  1. 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!

0 Likes

#2

No reaction?

0 Likes

#3

I’ll add the flag for the next dev build

0 Likes

#4

Same problem here. It would be great also to have a statically linked version of the linux executable. I’m also on SLED10 and I had to manually install/upgrade in my $HOME/local the following libraries/tools:

autoconf-2.62
automake-1.11
libtool-2.2
m4-1.4.11
pkgconfig-0.18
gettext-0.17
gcc-4.6.2 (to get libstdc++)
gmp-4-1-4
mpfr-2.4.2
mpc-0.9.0
binutils-2.22
glibc-2.11.3
libpng-1.2.46

Only to get the floating point exception !. A statically linked version would save the trouble for a lot of people!

0 Likes