Loading ...
Sorry, an error occurred while loading the content.

Re: gvim segfaulting on Solaris 10

Expand Messages
  • Bram Moolenaar
    ... Smells like a problem in the GUI libraries. Or it could be a compiler optimizer bug again, try compiling without -O2. But I guess it s the libraries.
    Message 1 of 16 , Oct 1, 2006
    • 0 Attachment
      Laurent Blume wrote:

      > I built vim 7.0.110 on Solaris 10 U1 x86, fully patched, using Sun Studio
      > 11 or Solaris' GCC 3.4.3.
      > Building went fine, however, test 16 failed (no output). What happens is
      > that gvim fails on startup with a segfault:
      >
      > $ gvim
      > GTK Accessibility Module initialized
      > Bonobo accessibility support initialized
      > Vim: Caught deadly signal SEGV
      > Vim: Finished.
      > Segmentation Fault (core dumped)
      >
      > Just running vim works:
      >
      > $ vim
      >
      > ~ VIM - Vi IMproved
      > ~
      > ~ version 7.0.110

      Smells like a problem in the GUI libraries. Or it could be a compiler
      optimizer bug again, try compiling without -O2. But I guess it's the
      libraries.

      Does it always print those two lines when gvim starts? I don't know
      what this accessibility stuff does, but it might be worth looking into
      whether it is related to the crash.

      > I built it using a very simple configuration:
      >
      > export PATH=/usr/bin:/usr/ccs/bin:/opt/SUNWspro/bin
      >
      > LDFLAGS='-L/usr/sfw/lib -R/usr/sfw/lib' \
      > ./configure --prefix=/opt/vim-7.0.110 \
      > --enable-multibyte

      Is "/usr/sfw" a standard place for something? Then perhaps configure
      should be adjusted to check it.

      > And here's the pstack of the core if it can be useful:
      > $ pstack core.vim.14541
      > core 'core.vim.14541' of 14541: gvim
      > fd1b0557 kill (82ba9cc, 815c0b0, 1, 82bd2e8, 0, 0) + 7
      > 081c183a mch_exit (1) + 8a
      > 0815c0b0 getout (1) + 210
      > 08185884 preserve_exit (8, 82ba9fc, fd1afd8f, b, 0, 82baa8c) + c4
      > 081bfa19 ???????? (b, 0, 82baa8c)
      > fd1afd8f __sighndlr (b, 0, 82baa8c, 81bf880) + f
      > fd1a6355 call_user_handler (b, 0, 82baa8c) + 22b
      > fd1a64d5 sigacthandler (b, 0, 82baa8c) + bb
      > --- called from signal handler with signal 11 (SIGSEGV) ---
      > fcfdf908 FcHideFont (83ff0e8, 8429280, 8429268, 80468e0) + d8
      > fcfe0979 FcFontSetSort (83f8be0, 804695c, 1, 83f5d58, 1, 0) + 1c9
      > fcfe0d1a FcFontSort (83f8be0, 83f5d58, 1, 0, 80469a8, 83f5d58) + ca
      > fd6e8043 pango_fc_font_map_get_patterns () + 157
      >
      >
      > Any idea what's going wrong? Would it be a vim or a Solaris GNOME issue?
      >
      > Thanks in advance for any hint!

      I don't see a Vim function in the stack trace. It might be something in
      Pango. I've seen pango crash before. You would have to dig into this
      to find out if we can work around it.

      --
      BEDEVERE: Why do you think she is a witch?
      SECOND VILLAGER: She turned me into a newt.
      BEDEVERE: A newt?
      SECOND VILLAGER: (After looking at himself for some time) I got better.
      "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ download, build and distribute -- http://www.A-A-P.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
    • Laurent Blume
      ... Yes, you were right. After I found out that the very same binary worked on my Solaris Express install (the -dev branch of Solaris), I had a harder look at
      Message 2 of 16 , Oct 1, 2006
      • 0 Attachment
        Bram Moolenaar a écrit :
        > Smells like a problem in the GUI libraries. Or it could be a compiler
        > optimizer bug again, try compiling without -O2. But I guess it's the
        > libraries.

        Yes, you were right. After I found out that the very same binary worked
        on my Solaris Express install (the -dev branch of Solaris), I had a
        harder look at the most recently installed patches.
        There was one for fontconfig, and the last functions called were for
        fontconfig, the evidence was overwhelming, it was the culprit. Once I
        had it backed out, the binary worked.

        FWIW, tt's that one, out 3 days ago:
        123495-02 X11 6.6.2_x86: fontconfig patch

        I'm back to -01, which works.

        > Does it always print those two lines when gvim starts? I don't know
        > what this accessibility stuff does, but it might be worth looking into
        > whether it is related to the crash.

        Yes, it's a JDS thing, it's also displayed for other GNOME apps on Solaris.

        > Is "/usr/sfw" a standard place for something? Then perhaps configure
        > should be adjusted to check it.

        On Solaris 10, it's where freetype and Xrender live, so it's needed at
        build time, IIRC, because else, some dependencies won't link correctly.
        Actually, I did that a while ago, and didn't try again since them, so
        maybe it's not needed anymore (the .pc files should provide the correct
        paths). If you want, I'll build again to confirm that.

        > I don't see a Vim function in the stack trace. It might be something in
        > Pango. I've seen pango crash before. You would have to dig into this
        > to find out if we can work around it.

        Definitely not a vim issue, sorry for bothering you, I'll be sure to
        open a case with Sun about that on Monday.

        Thanks for your answer!

        Laurent
      • Ali Akcaagac
        Hello, For what reasons does gVIM require Bonobo on Solaris ? mfg, Ali Akcaagac
        Message 3 of 16 , Oct 1, 2006
        • 0 Attachment
          Hello,

          For what reasons does gVIM require Bonobo on Solaris ?

          mfg,

          Ali Akcaagac
        • Laurent Blume
          ... It s not gvim asking for it, but the JDS/GNOME libs (modified by Sun for the accessibility stuff). Laurent
          Message 4 of 16 , Oct 1, 2006
          • 0 Attachment
            Ali Akcaagac a écrit :
            > For what reasons does gVIM require Bonobo on Solaris ?

            It's not gvim asking for it, but the JDS/GNOME libs (modified by Sun for
            the accessibility stuff).

            Laurent
          • A.J.Mechelynck
            ... It s not only on Solaris. On SuSE Linux 9.3, when I build gvim for Gnome2, I get [...] -I/opt/gnome/include/libbonobo-2.0 [...]
            Message 5 of 16 , Oct 1, 2006
            • 0 Attachment
              Ali Akcaagac wrote:
              > Hello,
              >
              > For what reasons does gVIM require Bonobo on Solaris ?
              >
              > mfg,
              >
              > Ali Akcaagac
              >
              >
              >

              It's not only on Solaris. On SuSE Linux 9.3, when I build gvim for Gnome2, I
              get [...] -I/opt/gnome/include/libbonobo-2.0 [...]
              -I/opt/gnome/include/bonobo-activation-2.0 [...] on the compilation line and
              [...] -lbonoboui-2 [...] -lbonobo-2 [...] -lbonobo-activation [...] on the
              link line. I think it's GNOME stuff, seeing where the include files are
              located. Now gvim does not require GNOME either, it's just one of the
              compile-time options you can turn on.


              Best regards,
              Tony.
            • Ali Akcaagac
              ... Actually readelf -d gvim will tell you exactly what libraries are linked against it. I seriously doubt that bonobo is required for gvim, regardless
              Message 6 of 16 , Oct 1, 2006
              • 0 Attachment
                On Sun, 2006-10-01 at 18:00 +0200, A.J.Mechelynck wrote:
                > It's not only on Solaris. On SuSE Linux 9.3, when I build gvim for Gnome2, I
                > get [...] -I/opt/gnome/include/libbonobo-2.0 [...]
                > -I/opt/gnome/include/bonobo-activation-2.0 [...] on the compilation line and
                > [...] -lbonoboui-2 [...] -lbonobo-2 [...] -lbonobo-activation [...] on the
                > link line. I think it's GNOME stuff, seeing where the include files are
                > located. Now gvim does not require GNOME either, it's just one of the
                > compile-time options you can turn on.

                Actually 'readelf -d gvim' will tell you exactly what libraries are
                linked against it. I seriously doubt that bonobo is required for gvim,
                regardless whether it's mentioned or not. This stuff usually is checked
                trough pkgconfig cross dependencies or through gnome-common. I think the
                best way linking against GNOME is by providing on the CFLAGS line.

                -Wl,--export-dynamic

                greetings,

                Ali Akcaagac
              • A.J.Mechelynck
                ... Seeing that there is a configure option for GNOME (--enable-gnome-check) I tend to use that rather than a CFLAGS hack; and at the end of make, it tries to
                Message 7 of 16 , Oct 1, 2006
                • 0 Attachment
                  Ali Akcaagac wrote:
                  > On Sun, 2006-10-01 at 18:00 +0200, A.J.Mechelynck wrote:
                  >> It's not only on Solaris. On SuSE Linux 9.3, when I build gvim for Gnome2, I
                  >> get [...] -I/opt/gnome/include/libbonobo-2.0 [...]
                  >> -I/opt/gnome/include/bonobo-activation-2.0 [...] on the compilation line and
                  >> [...] -lbonoboui-2 [...] -lbonobo-2 [...] -lbonobo-activation [...] on the
                  >> link line. I think it's GNOME stuff, seeing where the include files are
                  >> located. Now gvim does not require GNOME either, it's just one of the
                  >> compile-time options you can turn on.
                  >
                  > Actually 'readelf -d gvim' will tell you exactly what libraries are
                  > linked against it. I seriously doubt that bonobo is required for gvim,
                  > regardless whether it's mentioned or not. This stuff usually is checked
                  > trough pkgconfig cross dependencies or through gnome-common. I think the
                  > best way linking against GNOME is by providing on the CFLAGS line.
                  >
                  > -Wl,--export-dynamic
                  >
                  > greetings,
                  >
                  > Ali Akcaagac
                  >
                  >
                  >

                  Seeing that there is a configure option for GNOME (--enable-gnome-check) I
                  tend to use that rather than a CFLAGS hack; and at the end of make, it tries
                  to remove the libs one by one, then re-links with some libraries removed.
                  IIUC, the bonobo libs are kept in.

                  "readelf -d `which vim` |grep bonobo" gives the following:

                  0x00000001 (NEEDED) Shared library: [libbonoboui-2.so.0]
                  0x00000001 (NEEDED) Shared library: [libbonobo-2.so.0]
                  0x00000001 (NEEDED) Shared library: [libbonobo-activation.so.4]


                  Best regards,
                  Tony.
                • Ali Akcaagac
                  ... This line tells the linker to link only necessary libraries dynamically. Rather than linking everything. This makes files usually become smaller and
                  Message 8 of 16 , Oct 1, 2006
                  • 0 Attachment
                    On Sun, 2006-10-01 at 19:16 +0200, A.J.Mechelynck wrote:
                    > > -Wl,--export-dynamic

                    This line tells the linker to link only necessary libraries dynamically.
                    Rather than linking everything. This makes files usually become smaller
                    and loading up much faster. This is no "hack" it's a valid linker
                    instruction.

                    > Seeing that there is a configure option for GNOME (--enable-gnome-check) I
                    > tend to use that rather than a CFLAGS hack; and at the end of make, it tries
                    > to remove the libs one by one, then re-links with some libraries removed.
                    > IIUC, the bonobo libs are kept in.
                    >
                    > "readelf -d `which vim` |grep bonobo" gives the following:
                    >
                    > 0x00000001 (NEEDED) Shared library: [libbonoboui-2.so.0]
                    > 0x00000001 (NEEDED) Shared library: [libbonobo-2.so.0]
                    > 0x00000001 (NEEDED) Shared library: [libbonobo-activation.so.4]

                    Interesting!

                    After grep'ing through the VIM source I really detected Bonobo Dockitems
                    inside it. Unfortunately that's all "soon to be" deprecated stuff and
                    should be avoided as much as possible..

                    Why this ?

                    a) BonoboUI elements are dead stuff and will be removed pretty soon.
                    I only wish this stuff would have happened a few years earlier.
                    b) The recommended way for GNOME and GTK+ GUI's is by using GTK+ (This
                    is not just my idea but a regular advise because of the fact that all
                    GUI elements for GTK+ and GNOME will move inside GTK+- means
                    BonoboUI and hopefully GNOMEUI components are getting removed).
                    c) It only adds a new load of complexity e.g. makes the VIM binary
                    bulkier by depending on a lot of not necessary libraries.

                    greetings,

                    Ali Akcaagac
                  • A.J.Mechelynck
                    ... You can compile Vim with GTK+1 or GTK+2 without GNOME. Adding GNOME functionality means, among other things maybe, that gvim will automagically and
                    Message 9 of 16 , Oct 1, 2006
                    • 0 Attachment
                      Ali Akcaagac wrote:
                      > On Sun, 2006-10-01 at 19:16 +0200, A.J.Mechelynck wrote:
                      >>> -Wl,--export-dynamic
                      >
                      > This line tells the linker to link only necessary libraries dynamically.
                      > Rather than linking everything. This makes files usually become smaller
                      > and loading up much faster. This is no "hack" it's a valid linker
                      > instruction.
                      >
                      >> Seeing that there is a configure option for GNOME (--enable-gnome-check) I
                      >> tend to use that rather than a CFLAGS hack; and at the end of make, it tries
                      >> to remove the libs one by one, then re-links with some libraries removed.
                      >> IIUC, the bonobo libs are kept in.
                      >>
                      >> "readelf -d `which vim` |grep bonobo" gives the following:
                      >>
                      >> 0x00000001 (NEEDED) Shared library: [libbonoboui-2.so.0]
                      >> 0x00000001 (NEEDED) Shared library: [libbonobo-2.so.0]
                      >> 0x00000001 (NEEDED) Shared library: [libbonobo-activation.so.4]
                      >
                      > Interesting!
                      >
                      > After grep'ing through the VIM source I really detected Bonobo Dockitems
                      > inside it. Unfortunately that's all "soon to be" deprecated stuff and
                      > should be avoided as much as possible..
                      >
                      > Why this ?
                      >
                      > a) BonoboUI elements are dead stuff and will be removed pretty soon.
                      > I only wish this stuff would have happened a few years earlier.
                      > b) The recommended way for GNOME and GTK+ GUI's is by using GTK+ (This
                      > is not just my idea but a regular advise because of the fact that all
                      > GUI elements for GTK+ and GNOME will move inside GTK+- means
                      > BonoboUI and hopefully GNOMEUI components are getting removed).
                      > c) It only adds a new load of complexity e.g. makes the VIM binary
                      > bulkier by depending on a lot of not necessary libraries.
                      >
                      > greetings,
                      >
                      > Ali Akcaagac
                      >
                      >
                      >

                      You can compile Vim with GTK+1 or GTK+2 without GNOME. Adding GNOME
                      functionality means, among other things maybe, that gvim will automagically
                      and transparently save its session (with a pseudorandom name like
                      ~/.gnome2/vim-WSj1NP-session.vim so it doesn't collide with your own sessions
                      if any) when you close the GNOME or kde window manager.


                      Best regards,
                      Tony.
                    • Ali Akcaagac
                      ... No doubt, but this is not what I wrote about in my last reply. greetings, Ali Akcaagac
                      Message 10 of 16 , Oct 1, 2006
                      • 0 Attachment
                        On Sun, 2006-10-01 at 20:59 +0200, A.J.Mechelynck wrote:
                        > You can compile Vim with GTK+1 or GTK+2 without GNOME. Adding GNOME
                        > functionality means, among other things maybe, that gvim will automagically
                        > and transparently save its session (with a pseudorandom name like
                        > ~/.gnome2/vim-WSj1NP-session.vim so it doesn't collide with your own sessions
                        > if any) when you close the GNOME or kde window manager.

                        No doubt, but this is not what I wrote about in my last reply.

                        greetings,

                        Ali Akcaagac
                      • Bram Moolenaar
                        ... The bonobo stuff is only used when compiling for GTK 2 with Gnome support. I generally discourage compiling with Gnome, it has its problems. This is
                        Message 11 of 16 , Oct 1, 2006
                        • 0 Attachment
                          Ali Akcaagac wrote:

                          > After grep'ing through the VIM source I really detected Bonobo Dockitems
                          > inside it. Unfortunately that's all "soon to be" deprecated stuff and
                          > should be avoided as much as possible..
                          >
                          > Why this ?
                          >
                          > a) BonoboUI elements are dead stuff and will be removed pretty soon.
                          > I only wish this stuff would have happened a few years earlier.
                          > b) The recommended way for GNOME and GTK+ GUI's is by using GTK+ (This
                          > is not just my idea but a regular advise because of the fact that all
                          > GUI elements for GTK+ and GNOME will move inside GTK+- means
                          > BonoboUI and hopefully GNOMEUI components are getting removed).
                          > c) It only adds a new load of complexity e.g. makes the VIM binary
                          > bulkier by depending on a lot of not necessary libraries.

                          The bonobo stuff is only used when compiling for GTK 2 with Gnome
                          support. I generally discourage compiling with Gnome, it has its
                          problems. This is mentioned in the Makefile.

                          If you compile without Gnome, which is the default, no bonobo stuff is
                          used by Vim. If a bonobo library is still linked in then it's because
                          of a dependency.

                          --
                          Scientists decoded the first message from an alien civilization:
                          SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
                          SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
                          YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
                          STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
                          ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
                          MAXIMUM! IT REALLY WORKS!

                          /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                          /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                          \\\ download, build and distribute -- http://www.A-A-P.org ///
                          \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
                        • Ali Akcaagac
                          ... I do understand this. But what I tried explaining was that BonoboUI is deprecated. That means it s dead stuff from within GNOME which should not be used
                          Message 12 of 16 , Oct 1, 2006
                          • 0 Attachment
                            On Sun, 2006-10-01 at 23:13 +0200, Bram Moolenaar wrote:
                            > The bonobo stuff is only used when compiling for GTK 2 with Gnome
                            > support. I generally discourage compiling with Gnome, it has its
                            > problems. This is mentioned in the Makefile.
                            >
                            > If you compile without Gnome, which is the default, no bonobo stuff is
                            > used by Vim. If a bonobo library is still linked in then it's because
                            > of a dependency.

                            I do understand this. But what I tried explaining was that BonoboUI is
                            deprecated. That means it's dead stuff from within GNOME which should
                            not be used anymore (from what the developers say). So basicly there is
                            no need for extra GNOME GUI components anymore since the encouraged and
                            recommended way to do GNOME GUI is by using GTK+ GUI (from what the
                            developers say). The only interesting part therefore remains is the
                            session management.

                            greetings,

                            Ali Akcaagac
                          • A.J.Mechelynck
                            Bram Moolenaar wrote: [...] ... [...] Yes, I saw that warning, and decided to try --enable-gnome-check nevertheless, just to see what these problems were. None
                            Message 13 of 16 , Oct 1, 2006
                            • 0 Attachment
                              Bram Moolenaar wrote:
                              [...]
                              > The bonobo stuff is only used when compiling for GTK 2 with Gnome
                              > support. I generally discourage compiling with Gnome, it has its
                              > problems. This is mentioned in the Makefile.
                              [...]

                              Yes, I saw that warning, and decided to try --enable-gnome-check nevertheless,
                              just to see what these problems were. None of them has bitten me yet.


                              Best regards,
                              Tony.
                            • Laurent Blume
                              ... Checked that. No need anymore for it. Ir probably dated from my first builds on the Solaris 10 beta, 2 years ago. Laurent
                              Message 14 of 16 , Oct 1, 2006
                              • 0 Attachment
                                Bram Moolenaar wrote:
                                > Is "/usr/sfw" a standard place for something? Then perhaps configure
                                > should be adjusted to check it.

                                Checked that. No need anymore for it. Ir probably dated from my first
                                builds on the Solaris 10 beta, 2 years ago.

                                Laurent
                              • Bram Moolenaar
                                ... Perhaps someone who knows the details about Gnome can make the changes, test it and send us a patch? Obviously I don t have time to learn the proper use
                                Message 15 of 16 , Oct 2, 2006
                                • 0 Attachment
                                  Ali Akcaagac wrote:

                                  > On Sun, 2006-10-01 at 23:13 +0200, Bram Moolenaar wrote:
                                  > > The bonobo stuff is only used when compiling for GTK 2 with Gnome
                                  > > support. I generally discourage compiling with Gnome, it has its
                                  > > problems. This is mentioned in the Makefile.
                                  > >
                                  > > If you compile without Gnome, which is the default, no bonobo stuff is
                                  > > used by Vim. If a bonobo library is still linked in then it's because
                                  > > of a dependency.
                                  >
                                  > I do understand this. But what I tried explaining was that BonoboUI is
                                  > deprecated. That means it's dead stuff from within GNOME which should
                                  > not be used anymore (from what the developers say). So basicly there is
                                  > no need for extra GNOME GUI components anymore since the encouraged and
                                  > recommended way to do GNOME GUI is by using GTK+ GUI (from what the
                                  > developers say). The only interesting part therefore remains is the
                                  > session management.

                                  Perhaps someone who knows the details about Gnome can make the changes,
                                  test it and send us a patch? Obviously I don't have time to learn the
                                  "proper use" of Gnome libraries.

                                  --
                                  The acknowledged parents of reengineering are Michael Hammer and James Champy.
                                  When I say they're the "parents" I don't mean they had sex - and I apologize
                                  for making you think about it. I mean they wrote the best-selling business
                                  book _Reengineering the Corporation_, which was published in 1993.
                                  Businesses flocked to reengineering like frat boys to a drunken
                                  cheerleader. (This analogy wasn't necessary, but I'm trying to get my mind
                                  off that Hammer and Champy thing.)
                                  (Scott Adams - The Dilbert principle)

                                  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                                  /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                                  \\\ download, build and distribute -- http://www.A-A-P.org ///
                                  \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
                                Your message has been successfully submitted and would be delivered to recipients shortly.