After some instructions form solar: media-video/transcode-0.6.14-r2 (/usr/lib/transcode/export_mpeg.so) media-video/transcode-0.6.14-r2 (/usr/lib/transcode/filter_test.so) media-video/transcode-0.6.14-r2 (/usr/lib/transcode/filter_pp.so)
Created attachment 74749 [details, diff] transcode-0.6.14-pic-fix.patch I think the media herd said transcode-0.6.x is being phased out. The attached patch from PaX Team is untested by me but should fix them.
if it's fixed in 1.x then i dont think we should bother unless 0.6.x is going to be around for a while
(In reply to comment #2) No, it is not fixed as of version 1.0.2-r1. Lots of TEXTRELs are still in there.
it's coming across clean for me on x86: vapier ~ # emerge -pv transcode [ebuild R ] media-video/transcode-1.0.2-r1 +3dnow +X +a52 (-altivec) +dv +dvdread +fame +ffmpeg +gtk +imagemagick +jpeg +lzo +mjpeg +mmx +mp3 +mpeg -network +ogg -pvm +quicktime +sdl +sse +sse2 +theora +truetype -v4l +vorbis +xml2 +xvid vapier ~ # scanelf -qet `qlist transcode` vapier ~ #
(In reply to comment #3) > (In reply to comment #2) > > No, it is not fixed as of version 1.0.2-r1. Lots of TEXTRELs are still in there. > can you put your compile log online somewhere? i verified this ebuild version as well and got no textrels, so something must be peculiar in your environment.
(In reply to comment #5) > can you put your compile log online somewhere? i verified this ebuild version > as well and got no textrels, so something must be peculiar in your environment. I'm sorry for the late answer - I simply forgot to add myself to the CC list. I'll attach the log. Some further information: [ebuild R ] media-video/transcode-1.0.2-r1 -3dnow +X +a52 (-altivec) +dv +dvdread +fame +ffmpeg -gtk -imagemagick +jpeg -lzo -mjpeg +mmx +mp3 -mpeg +network +ogg -quicktime +sdl +sse +sse2 +theora +truetype -v4l2 +vorbis +xml2 +xvid 0 kB sam@zeus ~ $ scanelf -qet `qlist transcode` TEXTREL /usr/bin/avifix TEXTREL /usr/bin/aviindex TEXTREL /usr/bin/avimerge TEXTREL /usr/bin/avisplit TEXTREL /usr/bin/avisync TEXTREL /usr/bin/tccat TEXTREL /usr/bin/tcdecode TEXTREL /usr/bin/tcdemux TEXTREL /usr/bin/tcextract TEXTREL /usr/bin/tcmodinfo TEXTREL /usr/bin/tcprobe TEXTREL /usr/bin/tcrequant TEXTREL /usr/bin/tcscan TEXTREL /usr/bin/tcxmlcheck TEXTREL /usr/bin/transcode Built with nasm-0.98.39-r3, it's the same with previous nasm versions. Gentoo Base System version 1.6.13 Portage 2.0.53 (selinux/2005.1/x86/hardened, gcc-3.4.4, glibc-2.3.5-r2, 2.6.14-hardened-r3 i686) ================================================================= System uname: 2.6.14-hardened-r3 i686 Intel(R) Pentium(R) 4 CPU 1.60GHz dev-lang/python: 2.4.2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.20 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=pentium4 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/s hutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe -march=pentium4 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks loadpolicy sandbox selinux sfperms strict userpriv usersandbox" GENTOO_MIRRORS="ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mi rrors/gentoo ftp://mirrors.sec.informatik.tu-darmstadt.de/gentoo/" LANG="en_US.UTF-8" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 X a52 aac alsa avi bzip2 caps cdparanoia cjk crypt cups curl dts dv dvd dvdr dvdread encode ffmpeg flac fortran gif glut gnutls gtk hardened idn ipv6 joystick jpeg jpeg2k kdeenablefinal lcms lirc mad matroska mikmod mmap mmx mp3 ncurses nls nptl offensive ogg opengl pam pdflib pic png readline sdl selinux sndfile sse ssl theora threads tiff truetype unicode usb vcd vorbis win32codecs xine xml2 xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Created attachment 76970 [details] transcode-1.0.2-r1 compile log
run this: $ scanelf -qT `qlist transcode` >& transcode-textrels.log and post the transcode-textrels.log as an attachment
Created attachment 76973 [details] requested scanelf -T output
(In reply to comment #6) > sam@zeus ~ $ scanelf -qet `qlist transcode` > TEXTREL /usr/bin/avifix > TEXTREL /usr/bin/aviindex > TEXTREL /usr/bin/avimerge > TEXTREL /usr/bin/avisplit > TEXTREL /usr/bin/avisync > TEXTREL /usr/bin/tccat > TEXTREL /usr/bin/tcdecode > TEXTREL /usr/bin/tcdemux > TEXTREL /usr/bin/tcextract > TEXTREL /usr/bin/tcmodinfo > TEXTREL /usr/bin/tcprobe > TEXTREL /usr/bin/tcrequant > TEXTREL /usr/bin/tcscan > TEXTREL /usr/bin/tcxmlcheck > TEXTREL /usr/bin/transcode > > Built with nasm-0.98.39-r3, it's the same with previous nasm versions. > > Gentoo Base System version 1.6.13 > Portage 2.0.53 (selinux/2005.1/x86/hardened, gcc-3.4.4, glibc-2.3.5-r2, > 2.6.14-hardened-r3 i686) 'hardened' is your problem, and in particular the fact that you're building PIEs by default (note how all the textrels occur in executables, not libraries, that's why we didn't see them). looking at aclib/tcmemcpy.c i can see why they occur (non-PIC calculation of addresses like "lea 0f, %%edx") and it's not hard to fix but it raises a more generic question: do we want to bother with PIE textrels at this time (i'm surprised we're not getting a bunch more reports due to broken builds or non-PIC asm)?
ah so this is just a PIE issue without actually testing this, i think it's related to the internal labels used by the ac_memcpy_mmx() and ac_memcpy_sse() functions: void *ac_memcpy_mmx(void *dest, const void *src, size_t bytes) { asm("\ ... jb mmx.memcpy_last # Just use movs if <64 bytes \n\ ... mmx.memcpy_last: \n\ ... "); } i wonder if we add a ".hidden mmx.memcpy_last" right above the label, it'll fix this ...
actually, you're prob right, it's prob the "lea" rather than the local labels ... especially since the local labels are called twice while the "lea" are used three times (and the scanelf output reports 3 TEXTRELs per func) i say we treat TEXTRELs in PIEs as "someday we may fix it" and mark all such bugs as LATER ...
lets do so now ...
*** Bug 265869 has been marked as a duplicate of this bug. ***