MPlayerplugin 3.5 crashes on Suse 10.2 64 bit

  • Wolfgang Knauf

    Wolfgang Knauf - 2007-12-11

    Hello !

    After quite a bit of work, I managed to compile the 32 bit version of MPlayerplugin 3.50 on OpenSuse 10.2 x86_64.

    But now, firefox (, 32 bit, downloaded from the mozilla page) crashes if I open "about:plugins".
    This is the only console output:
    /usr/local/firefox/ line 131:  7489 Speicherzugriffsfehler  "$prog" ${1+"$@"}
    "Speicherzugriffsfehler" means "memory access error" (may be segmentation fault ?).

    Does anybody have any ideas on how to trace this down ?

    I had some problems to build the plugin, so I will describe the major problems here (must are probably the fault of suse):

    1) ./configure --with-gecko-sdk=../mozilla/dist/sdk --enable-force32
    This fails, because line 3240 does this 'PKG_CONFIG_PATH="${prefix}/lib/pkgconfig"', but on my machine, and are in "/opt/gnome/lib", so it should be 'PKG_CONFIG_PATH="/opt/gnome/lib/pkgconfig"'.

    2) Directory "/opt/gnome/lib/pkgconfig" did not exist, so I created it and copied those .pc files from "/opt/gnome/lib64/pkgconfig":
    glib-2.0.pc, gthread-2.0.pc, gtk+-2.0.pc, gdk-2.0.pc, gdk-pixbuf-2.0.pc, gobject-2.0.pc, gmodule-no-export-2.0, pango.pc, gdk-x11-2.0.pc, atk.pc
    In those .pc files, I changed the lib path from ".../lib64" to ".../lib".

    By the way: if you could call "pkg-config" with option "--print-errors", it would be easier to trace down problems.

    3) Created a lot of symlinks, eg in /usr/lib: "ln -s".

    Now configure works, and after installing the 32 bit versions of "glib2-devel" and "gtk2-devel" I could build it.

    "make" causes a lot of warnings:
    /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: warning: i386:x86-64 architecture of input file `/usr/lib64/gcc/x86_64-suse-linux/4.1.2/crtendS.o' is incompatible with i386 output
    Why are there 64-bit libs picked ? Do I need a 32 bit gcc ?



    The relevant parts of the makefile are:
    CC= gcc
    CXX= g++
    CFLAGS= -Wall -DXP_UNIX -DMOZ_X11 -I/home/knuffi/Desktop/mozilla/dist/sdk -I/home/knuffi/Desktop/mozilla/dist/sdk/include -g -O2      -g -O2 -m32 -Iinclude -fPIC -DXPCOM_GLUE -DMOZILLA_STRICT_API -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12   -I/opt/gnome/include/gtk-2.0 -I/opt/gnome/lib/gtk-2.0/include -I/opt/gnome/include/atk-1.0 -I/opt/gnome/include/pango-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12   -pthread -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include   -DGTK_ENABLED
    LDFLAGS=   -melf_i386 -L/usr/lib -L/lib -lX11 -lpthread -lXau -lXdmcp    -lX11  -lXt -lX11 -lpthread -lSM -lXau -lXdmcp -lICE   -lXext -lX11 -lXpm -lX11 -lpthread -lXau -lXdmcp   -L/opt/gnome/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp   -L/opt/gnome/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lfreetype -lz -lfontconfig -lexpat -lglitz -lm -lpng12 -lXrender -lX11 -lpthread -lXau -lXdmcp   -pthread -L/opt/gnome/lib -lgthread-2.0 -lglib-2.0 

    • Kevin DeKorte

      Kevin DeKorte - 2007-12-11


      Looks like you have quite the mess there... my recommendation, get the i386 version of the RPM from packman and see if that works for you. I'm guessing that don't have a full 32 bit build environment. You might even try getting the fedora 6 version of the binary and seeing that works on your machine. If you have gnome in a custom spot on your machine, the build will most likely fail and you will need to do some editing the the file and then run autoconf (you may need to run aclocal if you get errors).

      Your last errors look like it is trying to link 64bit libs with the 32 bit compiled code. The cflags and ld flags look right, but I'm not an expert on this type of compiling. I made it work on my machine by bashing away at it so I'm pretty sure the --enable-force32 is not compatible with any distribution.

    • Wolfgang Knauf

      Wolfgang Knauf - 2007-12-12

      I made it !

      After installing the package "gcc41-32bit", the warning was gone, and now the plugin works like a charm ! Yiiiieha ! I hope other suse users find this posting useful.

      My improvement suggestions:
      Could you
      -add some comment lines to "configure" (or a "echo" statement) about possible problems/solutions with different distributions ?
      -add a "--print-errors" to the pkg-config calls ?
      -Is there a gcc flag which turns the "incompatible architecture" warnings into errors ?




Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks