I found out symlinking libtool-nofpic to libtool (which produces PIC
binaries) eliminates most of the relocations. I am able to build on
Gentoo either outside Portage or using my custom ebuild.
Just add "use x86 && has_pic && ln -sf libtool ${S}/libtool-nofpic"
right after econf. You can also comment RESTRICT="nostrip" in the
ebuild and add "strict" to your FEATURES to get the list of the
remaining TEXTREL binaries, which are on my system:
$(get-libdir)/xine/plugins/${PV}/post/xineplug_post_{planar,tvtime}.so
$(get-libdir)/xine/plugins/${PV}/xineplug_decode_{ff,w32dll,qt}.so
Feedback from other architectures is appreciated.
Also, it seems that "use x86 && has_pic && append-flags -UHAVE_MMX" is
not needed. I can build fine either with or without.
*This paragraph is more a note to myself, but can be interesting for
those with older gcc versions*
I also tried this symlinking trick on my half-Mandr* install and got
two build errors (make -k). It is probably a bug from that old
gcc-3.2-1mdk I get as I already have to patch xine-lib to disable SIMD
code generation in FAAD code even when I generate non-PIC code.
Faulty files are:
${S}/src/libffmpeg/libavcodec/i386/mpegvideo_mmx_template.c
${S}/src/libffmpeg/libavcodec/libpostproc/postprocess_template.c
Error message: can't find a register in class `GENERAL_REGS' while
reloading `asm'
OS Specs:
* Gentoo 2004.3, x86, hardened, �clibc 0.9.27, running kernel
2.4.30-hardened-r1, with Hardened GCC 3.3.5-r1
* half-Mandr* 9.0, i586, glibc 2.2.5, running kernel 2.4.28-19rrsecure
(lck+grsec+i2c+security fixes, mainly), with GCC 3.2-1mdk
--
[email protected] mailing list