<video> tag broken in oneiric only due to --as-needed in the toolchain

Bug #795171 reported by Fabien Tassin
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
Fix Released
Undecided
Fabien Tassin
Oneiric
Fix Released
Undecided
Fabien Tassin

Bug Description

Binary package hint: chromium-browser

All chromium builds on oneiric have a broken HTML5 <video> tag (visible at least on youtube and videojs.com).
Tried with 32bit builds of M14 down to M11. The exact same versions work fine when built on natty.

I tried using a libffmpegsumo.so from natty on my oneiric install (keeping the rest of chromium untouched), it worked.
So it seems likely that the problem is in libffmpegsumo.so, either the way it's built, or in the toolchain used to build it.

Trouble is, in both cases, it's built with gcc 4.5.
ld is different though. natty has binutils 2.21.0 and oneiric 2.21.52

Revision history for this message
Fabien Tassin (fta) wrote :

build log of 14.0.788.0~svn20110609r88472 on natty with the codecs built in verbose mode

Revision history for this message
Fabien Tassin (fta) wrote :
Micah Gersten (micahg)
tags: added: regression-release
tags: added: oneiric
Revision history for this message
Fabien Tassin (fta) wrote :

further info:

- oneiric/amd64 is impacted too, so it's not arch specific
- natty with binutils 2.21.52 (same as oneiric) is not impacted, so binutils is not the problem.

Revision history for this message
Fabien Tassin (fta) wrote :

also broken with the default gcc 4.6.

Revision history for this message
Fabien Tassin (fta) wrote :

I've backported binutils (2.21.52.20110606-1ubuntu1) & gcc-4.5 (4.5.3-1ubuntu2) from oneiric to natty, rebuilt chromium M14 with those, and it's still ok.

So it seems to imply it's neither gcc nor binutils.
I'm out of ideas.

What's left? glibc?

Revision history for this message
Fabien Tassin (fta) wrote :

a debug build didn't give a hint either :(

Fabien Tassin (fta)
Changed in chromium-browser (Ubuntu Oneiric):
status: New → Fix Committed
Revision history for this message
Fabien Tassin (fta) wrote :

Fixed. It turned out to be a toolchain change.

Changed in chromium-browser (Ubuntu Oneiric):
assignee: nobody → Fabien Tassin (fta)
summary: - <video> tag broken in oneiric only
+ <video> tag broken in oneiric only due to --as-needed in the toolchain
Revision history for this message
Fabien Tassin (fta) wrote :

Short story: oneiric comes with --as-needed by default, so -lvpx was silently dropped from libffmpegsumo.so, resulting in no support for the HTML5 <video> tag in the browser.

Long story: --as-needed was introduced to reduce the number of dependencies of packages. This is a change which happened in other distros (Debian, Fedora, Suse) and should have happened in Natty but was dropped at the last minute. Some packages are not impacted, but a long list are, including chromium. It's properly described here: http://wiki.debian.org/ToolChain/DSOLinking

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package chromium-browser - 12.0.742.112~r90304-0ubuntu1

---------------
chromium-browser (12.0.742.112~r90304-0ubuntu1) oneiric; urgency=high

  * New Minor upstream release from the Stable Channel (LP: #803107)
    This release fixes the following security issues:
    + WebKit issues:
      - [84355] High, CVE-2011-2346: Use-after-free in SVG font handling.
        Credit to miaubiz.
      - [85003] High, CVE-2011-2347: Memory corruption in CSS parsing. Credit
        to miaubiz.
      - [85102] High, CVE-2011-2350: Lifetime and re-entrancy issues in the
        HTML parser. Credit to miaubiz.
      - [85211] High, CVE-2011-2351: Use-after-free with SVG use element.
        Credit to miaubiz.
      - [85418] High, CVE-2011-2349: Use-after-free in text selection. Credit
        to miaubiz.
    + Chromium issues:
      - [77493] Medium, CVE-2011-2345: Out-of-bounds read in NPAPI string
        handling. Credit to Philippe Arteau.
      - [85177] High, CVE-2011-2348: Bad bounds check in v8. Credit to Aki
        Helin of OUSPG.
  Packaging changes:
  * Add Valencian (ca@valencia) to the list of supported langs for the
    lang-packs
    - update debian/rules
    - update debian/control
  * Add support for language variants in Grit, backported from trunk.
    This is needed to support lang-codes like ca@valencia
    - add debian/patches/grit_language_variants.patch
    - update debian/patches/series
  * Add a WANT_ONLY_WHITELISTED_NEW_LANGS knob to make it easier to
    sync translations of new langs between all the branches
    - update debian/rules
  * Properly stop the keep-alive when the build fails
    - update debian/rules
  * Fix the HTML5 <video> tag regression in Oneiric by properly linking
    libvpx so it's not being dropped from libffmpegsumo.so (LP: #795171)
    - add debian/patches/html5-codecs-fix.patch
    - update debian/patches/series
  * Drop the -inspector package, its content has been merged into the main deb
    in M12 and the deb remained empty since.
    Also drop chromium-codecs-ffmpeg-nonfree, renamed in M5 to -extra
    - update debian/control
    - update debian/rules
  * Backport of http://codereview.chromium.org/6883221 from M13 presumably
    fixing the ARM ftbfs from the last update, and set use_cups=0 on armel
    - add debian/patches/cups_cleanup_cr6883221.patch
    - update debian/patches/series
    - update debian/rules
 -- Fabien Tassin <email address hidden> Tue, 28 Jun 2011 07:17:52 +0200

Changed in chromium-browser (Ubuntu Oneiric):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.