gst-browser startup crash

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

gst-browser startup crash

Andreas Rosenberg-2
Hi!

I wanted to try GNU Smalltalk and ran into the same problem as Torbjörn
Wejheden about a year ago.

It seems, that with several popular Linux distributions you currently
are getting crashes, when trying
to start the gst-browser. see:
https://gist.github.com/bill-auger/7658fff47b7ba5ac65dfc3e5e74b1e6a

I tried to build it from source myself and after fiddling for several
hours I finally got it working.

I'm on Fedora 27 and after a fresh install this gave me a working build:
-----------------------
sudo dnf install gcc git automake bison flex libtool libtool-ltdl-devel
libffi-devel libsigsegv-devel cairo-devel gtk2-devel texinfo

git clone git://git.sv.gnu.org/smalltalk.git

cd smalltalk

autoreconf -vi
./configure
make

sudo make install
-----------------------
If you install the "gnu-smalltalk" package from the Fedora repository,
gst-browser has it's first fail in:

GTK.GtkWindow class>>new: (GTK.star#VFS.ZipFile/Funcs.st:1)

because of:

Invalid C call-out gtk_window_new

gtk_window_new is being exported by libgtk-x11-2.0.so  (but also by:
libgtk-3.so).

Digging a bit further, I found that the module "gst-gtk-3.2.92.so" is
linked against
"libgtk-x11-2.0.so", which is (now?) only provided by package: gtk2-devel.

I don't know, who is responsible for maintaining the packages, but
adding gtk2-devel as
dependency should fix the problem for now.

Anybody already tried to build against GTK3? libgtk-3.so seems to be
available with
standard GTK packages.


Andreas




_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: gst-browser startup crash

Holger Freyther


> On 9. Mar 2018, at 18:43, Andreas Rosenberg <[hidden email]> wrote:
>
> Hi!

Hey!



> Digging a bit further, I found that the module "gst-gtk-3.2.92.so" is
> linked against
> "libgtk-x11-2.0.so", which is (now?) only provided by package: gtk2-devel.

"known" packaging issue. With dlopen we have some difficulties knowing
what the right version is. There should be a symlink in the package to
the right version. :(



> I don't know, who is responsible for maintaining the packages, but
> adding gtk2-devel as
> dependency should fix the problem for now.
>
> Anybody already tried to build against GTK3? libgtk-3.so seems to be
> available with
> standard GTK packages.

Paolo has worked on using "GIR" (the Glib introspection). This has various
benefits over the "awk" approach for bindings but the work didn't finish.
Maybe you are interested in helping out?

holger

_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: gst-browser startup crash

Holger Freyther


> On 11. Mar 2018, at 11:19, Andreas Rosenberg <[hidden email]> wrote:
>
> gst-gtk is a standard shared library that can be examined with ldd.
> ldd output shows all dependend shared libs and contains the link to libgtk-x11-2.0.so.
> I did not examine the makefile for gst-gtk in detail, but I saw a reference to
> gtk2 include files, so in my understanding the reference to libgtk-x11.20.so comes
> from building gst-gtk against gtk v2 devel files.

Good point. Let me try to refresh the memory about it and get back to that.


> I think the gnu-smalltalk package in the Fedora repo is broken anyway. On another
> fresh Fedora install, I installed gnu-smalltalk and gtk2-devel and now the C callout
> error is gone, but I get this one:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7b1e5db in _gst_dictionary_add () from /lib64/libgst.so.7
> (gdb) bt

This is might be misleading. If you built gst with the generational Garbage Collector then the SIGSEGV is a "barrier" and to be expected. Paolo came up with the idea of using "mprotect" to make pages unwritable and then handling SIGSEGV to know that a write (to an object in the eden) was made.

Your error might be a different. In GDB one can type something like "handle sigsegv ignore" and the program will continue to run until it hits the real error.


> "dnf info gnu-smalltalk" reports "version 3.2.5". But I did not find this version in git.
> Seems to be a "monday release" :-/

Oh? I have used it many years in production system.
_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk