Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Bram Moolenaar

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 -- [EMAIL PROTECTED] -- 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///


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Laurent Blume
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


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Ali Akcaagac
Hello,

For what reasons does gVIM require Bonobo on Solaris ?

mfg,

Ali Akcaagac




Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Laurent Blume

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


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread A.J.Mechelynck

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.


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Ali Akcaagac
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




Re: gvim segfaulting on Solaris 10

2006-10-01 Thread A.J.Mechelynck

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:

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


Best regards,
Tony.


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Ali Akcaagac
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:
> 
> 0x0001 (NEEDED)   Shared library: [libbonoboui-2.so.0]
> 0x0001 (NEEDED)   Shared library: [libbonobo-2.so.0]
> 0x0001 (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




Re: gvim segfaulting on Solaris 10

2006-10-01 Thread A.J.Mechelynck

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:

0x0001 (NEEDED) Shared library: [libbonoboui-2.so.0]
0x0001 (NEEDED) Shared library: [libbonobo-2.so.0]
0x0001 (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.


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Ali Akcaagac
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




Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Bram Moolenaar

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 -- [EMAIL PROTECTED] -- 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///


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Ali Akcaagac
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




Re: gvim segfaulting on Solaris 10

2006-10-01 Thread A.J.Mechelynck

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.


Re: gvim segfaulting on Solaris 10

2006-10-01 Thread Laurent Blume
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


Re: gvim segfaulting on Solaris 10

2006-10-02 Thread Bram Moolenaar

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 -- [EMAIL PROTECTED] -- 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///