gst-plugins-0.8.5-r1, gst-plugins-oss-0.8.5, gst-plugins-alsa-0.8.5, and gst-plugins-esd-0.8.5 (and maybe others also) do not work if compiled with gcc-3.4.2 hardened or gcc-3.4.3 hardened. Specifically: when compiled with hardened gcc, applications (e.g. nautilus, rhythmbox) hang, and gstreamer utils spew error messages about "GStreamer-CRITICAL **: Factory for `foo' has no type." etc; and compiling with vanilla gcc solves all these problems. Suggestion is to filter for hardened in the ebuilds. Reproducible: Always Steps to Reproduce: 1. [switch to hardened gcc-3.4] 2. ACCEPT_KEYWORDS=~x86 emerge gst-plugins gst-plugins-oss gst-plugins-alsa gst-plugins-esd 3. gstreamer-properties-0.8 Actual Results: ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `esdsink' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'esdsink' and is expected in file '/usr/lib/gstreamer-0.8/libgstesd.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `osssink' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'ossaudio' and is expected in file '/usr/lib/gstreamer-0.8/libgstossaudio.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `ximagesink' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'ximagesink' and is expected in file '/usr/lib/gstreamer-0.8/libgstximagesink.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `xvimagesink' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'xvimagesink' and is expected in file '/usr/lib/gstreamer-0.8/libgstxvimagesink.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `v4l2src' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'video4linux2' and is expected in file '/usr/lib/gstreamer-0.8/libgstvideo4linux2.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `esdmon' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'esdsink' and is expected in file '/usr/lib/gstreamer-0.8/libgstesd.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' ** (gstreamer-properties:6341): CRITICAL **: how to remove plugins? (gstreamer-properties:6341): GStreamer-CRITICAL **: Factory for `osssrc' has no type. This probably means the plugin wasn't found because the registry is broken. The plugin GStreamer was looking for is named 'ossaudio' and is expected in file '/usr/lib/gstreamer-0.8/libgstossaudio.so'. The registry for this plugin is located at '/var/lib/cache/gstreamer-0.8/registry.xml' and gstreamer-properties behaves bizzarely and crashes Expected Results: gstreamer-properties runs properly, no errors are printed Portage 2.0.51-r3 (default-x86-2004.2, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.8-gentoo-r9 i686) ================================================================= System uname: 2.6.8-gentoo-r9 i686 AMD Athlon(tm) XP 2500+ Gentoo Base System version 1.6.4 distcc 2.17 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.14.90.0.8-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r6 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O2 -pipe -frename-registers -fomit-frame-pointer " CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O2 -pipe -frename-registers -fomit-frame-pointer " DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs candy ccache distlocks sandbox" GENTOO_MIRRORS="ftp:///ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://ftp-mirror.internap.com/pub/gentoo/ http://gentoo.binarycompass.org http://mirror.datapipe.net/gentoo http://gentoo.osuosl.org" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="3dnow X aac aalib acpi aim alsa apm arts avi berkdb bitmap-fonts bonobo cdr cjk cmucl crypt cups curl dga dnd doc dumb-allegro dvd dvdr editor emacs encode erandom esd ethereal evo faad fbcon ffmpeg fftw flac foomaticdb fortran gdbm ggi gif gnome gphoto2 gpm gtk gtk2 gtkhtml guile hardened imlib ipv6 ithreads jack java jce jpeg kde ldap libg++ libwww mad mbox mikmod mmx mng motif mozdevelop mozilla moznocompose moznoirc moznomail mozsvg mozxmlterm mpeg mule mysql nas ncurses nls nntp nptl oav odbc oggvorbis opengl opie oss pam pcre pda pdflib perl pic plotutils png postgres python qt quicktime readline samba scanner sdl slang slp spell sse ssl svg tcltk tcpd tetex tiff truetype unicode usb wmf x86 xface xinerama xml2 xmms xv xvid zlib"
gst-plugins-mad-0.8.5 also doesn't work with hardened.
Steps to Reproduce: 1. [switch to hardened gcc-3.4] What gcc did you switch from? Why is this a hardened bug and not a gcc-3.4 bug?
gst-plugins*-0.8.5 do not work if compiled with gcc-3.4.2-r3 hardened or gcc-3.4.3 hardened. Howerver, they work correctly if compiled with gcc-3.4.3 vanilla. Thus, I suspect this is a hardened bug (but perhaps one which only affects gcc-3.4).
I ran into this too. It looks like the problem is that a good number of gstreamer modules depend on RTLD_LAZY, which is disabled by hardened gcc. gstreamer modules work great when compiled with hardened gcc and the -nonow flag.
the lazy bindings seem to be the answer. I had the same problem with my non hardened compiles, but I had -Wl,-z,now LDFLAGS. Once I removed the LDFLAGS and recompiled the plugins, it worked again.
When using using hardened specs this should work. use hardened && append-ldflags -nonow Note: -nonow is not really a valid LDLFAG but exists in the hardened specs to work around such cases and should not be used unless your use your gcc specs have been modified to support -nonow. A patch can be written for binutils to support it at a later time if there proves to be a need. Somebody that uses this pkg will have to post ebuild and patches here if need be.
*** Bug 79267 has been marked as a duplicate of this bug. ***
I have tried this fix with gst-plugins-alsa and gst-plugins-oss and it didn't fix them. using gcc-3.3.5 (hardened) and binutils-2.15.92.0.2-r1. When compiled with vanilla gcc it works fine. Maybe i need another version of binutils for -nonow to work?
It looks like the various gst-plugins builds use libtool, and libtool filters out the -nonow linker argument. This is sort of a kludge, but when placed in the gst-plugins_src_configure() function in the gst-plugins.eclass file, seems to do the trick: use hardened && append-ldflags "-Xcompiler -nonow"
I have this bug on both hardened and non-hardened system, so I doubt it has anything to do with hardened. Just now I recompiled gstreamer and all gst-plugin-* packages, like this: LDFLAGS="-nonow" emerge -va gstreamer gst-plugins gst-plugins-ogg gst-plugins-esd gst-plugins-flac gst-plugins-vorbis gst-plugins-alsa gst-plugins-cdparanoia gst-plugins-mad On the hardened system, it does not make a jota of difference, gnome-volume-control is still broken (and, in fact the whole of gstreamer). I redid gst-register-0.8, both as root and as normal user, still no joy. This is my emerge info of the hardened system: Portage 2.0.51.19 (hardened/x86/2.6, gcc-3.3.5-20050130, glibc-2.3.4.20041102-r1, 2.6.11-hardened-r13 i686) ================================================================= System uname: 2.6.11-hardened-r13 i686 Intel(R) Xeon(TM) CPU 2.40GHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.5 [2.3.5 (#1, May 16 2005, 23:09:21)] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig buildpkg ccache distcc distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo rsync://ftp.snt.utwente.nl/gentoo" MAKEOPTS="-j12" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlay/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnowex X X509 Xaw3d a52 aac aalib accessibility accounting acl acpi afs aim alsa apache2 arts artworkextra audiofile authdaemond avi bash-completion bdf berkdb bidi bindist bitmap-fonts blas blender-game bonobo bootsplash brltty bzip2 caps cddb cdparanoia cdr cjk cpudetection crypt cscope cups curl divx4linux dlloader dlz dnd doc droproot dts dv dvb dvd dvdr dvdread ecc edl eds emacs encode erandom esd ethereal evms2 evo examples extensions f77 faac faad fam ffmpeg fftw flac flash flatfile fmod font-server fortran fpx freetds freetts freewnn fs ftp gb gcj gcl gd gdbm gif gimp gimpprint ginac glade glgd gmp gnokii gnome gnomedb gnuplot gnutls gphoto2 gpm gps graphviz gs gsl gstreamer gtk gtk2 gtkhtml guile hal hardened hardenedphp hdf5 howl icq icu ide idea idn ieee1394 imagemagick imap imlib inkjar innodb ipv6 jabber jack java javascript jbig jikes joystick jp2 jpeg junit kde kdeenablefinal kerberos krb4 ladcca largeterminal lcd lcms ldap leim libcaca libclamav libgda libsamplerate libwww lirc live lm_sensors ltsp lzo lzw lzw-tiff mad maildir matroska mbox mcal mdb memlimit mikmod milter mime ming mmx mmxext mng motif mozaccess mozcalendar mozdevelop mozdomi mozilla mozp3p mozsvg mozxmlterm mp3 mpeg mpeg4 mpi mplayer msdav msn msql mule mysql mysqli mythtv nas ncurses netcdf network neural nfs nls nntp nptl ntlm oav objc oci8 odbc offensive ofx ogg oggvorbis openal opengl oscar pam pcmcia pda pdflib perl php physfs pic plotutils plugin png pnp ppds prelude print procmail pthreads python qhull qt quicktime quotas quotes radeon radius readline real rplay rrdtool rtc ruby samba sasl scanner sdl sftplogging silc skey slang slp smartcard smp sndfile snmp soap sockets socks5 sox speex spell sse sse2 ssl stroke svg sysvipc tcltk tcpd tetex theora threads tiff transcode truetype truetype-fonts trusted type1 type1-fonts unicode usb userlocales v4l v4l2 vcd vdesktop vhosts videos virus-scan vorbis wifi win32codecs winbind wmf wxwindows x86 xchatdccserver xchattext xemacs xface xine xinerama xml xml2 xmms xosd xprint xrandr xscreensaver xv xvid xvmc yahoo yaz zeo zlib video_cards_3dfx video_cards_gamma video_cards_i810 video_cards_i830 video_cards_matrox video_cards_rage128 video_cards_radeon video_cards_sis userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
hmm. I take back that I doubted that hardened has nothing to do with it; I just recompiled gstreamer and company on my non-hardened systems like this: LDFLAGS="-nonow" emerge -va gstreamer gst-plugins gst-plugins-ogg gst-plugins-oss gst-plugins-ffmpeg gst-plugins-esd gst-plugins-flac gst-plugins-vorbis gst-plugins-xvideo gst-plugins-alsa gst-plugins-libpng gst-plugins-gnomevfs gst-plugins-cdparanoia gst-plugins-mad ...and it works there now. gcc version 3.3.5-20050130 (Gentoo Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1) emerge info: Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130, glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r7 i686) ================================================================= System uname: 2.6.11-gentoo-r7 i686 Intel(R) Xeon(TM) CPU 2.40GHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.5 [2.3.5 (#1, Apr 28 2005, 14:22:34)] distcc[1428] (dcc_trace_version) distcc 2.16 i686-pc-linux-gnu; built Sep 21 2004 16:15:25 [disabled] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/afs/C /etc/afs/afsws /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -mcpu=i686 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig buildpkg ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://mirror.scarlet-internet.nl/pub/gentoo ftp://mirrors.blueyonder.co.uk/mirrors/gentoo" MAKEOPTS="-j12" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlay/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowex X X509 Xaw3d a52 aac aalib accessibility acl acpi adns afs aim alsa apache2 apm arts artworkextra audiofile avi bash-completion berkdb bidi bind-mysql bindist bitmap-fonts blender-game bonobo bootsplash bzip2 caps cddb cdparanoia cdr chroot cjk cpudetection crypt cscope cups curl divx4linux djbfft dlloader dlz dnd doc dri dts dv dvb dvd dvdr dvdread ecc edl eds emacs emboss encode esd ethereal evms2 evo f77 faac faad fam fame ffmpeg flac flash flatfile fmod font-server foomaticdb fortran fpx freetds fs ftp gb gcj gcl gd gdbm gif gimp gimpprint glade glgd glx gmp gnome gnutls gphoto2 gpm gps graphviz gstreamer gtk gtk2 gtkhtml guile hal howl icq icu ide idea idn ieee1394 imagemagick imap imlib inkjar innodb ipv6 jabber jack java javascript jbig jikes joystick jp2 jpeg jpeg2k junit kde kdeenablefinal kerberos krb4 ladcca largeterminal lcd lcms ldap leim libcaca libclamav libg++ libgda libsamplerate libwww lirc live lm_sensors logitech-mouse lzo mad maildir matroska mbox mcal mdb memlimit mikmod milter mime mjpeg mmx mmx2 mmxext mng motif mozaccess mozcalendar mozdevelop mozdomi mozilla mozp3p mozsvg mozxmlterm mp3 mpeg mpeg4 mpi mplayer msdav msn msql mule mysql mysqli mythtv nas ncurses netcdf network nfs nls nntp ntlm oav objc oci8 odbc offensive ogg oggvorbis openal openexr opengl oscar oss pam pcmcia pda pdflib perl php plotutils plugin png pnp povray ppds prelude pthreads python qt quicktime quotas radeon rdesktop readline real rtc ruby samba sasl scanner sdk sdl sftplogging silc skey slang slp smartcard sndfile snmp soap sockets socks5 sox speex spell sse sse2 ssl svg tcltk tcpd tetex theora threads tidy tiff toolbar transcode truetype truetype-fonts trusted type1 type1-fonts ucs2 uim unicode usb v4l v4l2 vcd videos visualization vorbis wifi win32codecs winbind wmf wxwindows xanim xchatdccserver xface xim xine xinerama xml xml2 xmms xosd xprint xscreensaver xv xvid xvmc yahoo yaz zeo zeroconf zlib video_cards_3dfx video_cards_gamma video_cards_i810 video_cards_i830 video_cards_matrox video_cards_rage128 video_cards_radeon video_cards_sis userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
I have media-libs/gst-plugins-0.8.8-r2 installed with NOW bindings and do not have any problems. media-libs/gst-plugins-0.8.8-r2 -alsa -debug +esd -oss
gstreamer 0.8.11, by default, still doesn't work with hardened gcc, even with the prelinking stuff disabled.
Seems like this one may be fixed with gstreamer-0.10. Running gstreamer-properties only gives warnings about a unavailable plugins (ie not installed such as arts) and totem (version 1.4.2-r1) works with the gstreamer backend now. The only thing that still doesn't want to play nice is the volume control panel applet, but that may have other reasons (gnome-volume-control works). This on a stable x86 hardened.
I also tried it last week and didn't have any problems. If this problem still persists for you, feel free to reopen this bug.