Closed Bug 604307 Opened 14 years ago Closed 14 years ago

libycbcr.so contains text relocations

Categories

(Core :: Audio/Video, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- final+

People

(Reporter: stransky, Assigned: cajbir)

References

Details

+++ This bug was initially created as a clone of Bug #595112 +++

Built without libxul I got:

[komat@dhcp-24-199 bin]$ eu-findtextrel libycbcr.so | c++filt
either the file containing the function 'mozilla::gfx::ConvertYCbCrToRGB32(unsigned char const*, unsigned char const*, unsigned char const*, unsigned char*, int, int, int, int, int, int, int, mozilla::gfx::YUVType)' or the file containing the function '_fini' is not compiled with -fpic/-fPIC
Seems to be caused by the the inline asembly:

[komat@dhcp-24-199 ycbcr]$ objdump --dynamic-syms libycbcr.so 

libycbcr.so:     file format elf32-i386

DYNAMIC SYMBOL TABLE:
00000710 g    DF .text	00000000  Base        FastConvertYUVToRGB32Row
_ZN7mozilla3gfx19ConvertYCbCrToRGB32EPKhS2_S2_PhiiiiiiiNS0_7YUVTypeE
Anyway, the FastConvertYUVToRGB32Row in i386 seems to be the culprint. It uses PIC incompatible asm constructions.
Presumably this also happens with libxul, right?
Assignee: nobody → kinetik
Bug 583138 updates to the latest chromium code which has different versions for PIC and non-PIC. You can see the source for the versions here:

http://codesearch.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/media/base/yuv_row_posix.cc&q=fastconvert&exact_package=chromium&sa=N&cd=4&ct=rc
(In reply to comment #3)
> Presumably this also happens with libxul, right?

Seems so but it's hidden inside it. I tried to built ff with --disable-libxul and only library with relocations was libycbcr.so, libxul.so itself was clear.
Component: GFX: Color Management → Video/Audio
QA Contact: color-management → video.audio
Not going to look at this until bug 583138 lands.
Depends on: 583138
Building with my patch for bug 583138 and libxul disabled gives the following:

$ eu-findtextrel obj-i686-pc-linux-gnu/dist/bin/libycbcr.so
eu-findtextrel: no text relocations reported in 'obj-i686-pc-linux-gnu/dist/bin/libycbcr.so'
Resolving as fixed by bug 583138, and reassigning to doublec since he fixed it.
Assignee: kinetik → chris.double
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.