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

Bug #795171 reported by Fabien Tassin on 2011-06-09
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
Fabien Tassin
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

Fabien Tassin (fta) wrote :

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

Micah Gersten (micahg) on 2011-06-10
tags: added: regression-release
tags: added: oneiric
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.

Fabien Tassin (fta) wrote :

also broken with the default gcc 4.6.

Fabien Tassin (fta) wrote :

I've backported binutils ( & 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?

Fabien Tassin (fta) wrote :

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

Fabien Tassin (fta) on 2011-06-15
Changed in chromium-browser (Ubuntu Oneiric):
status: New → Fix Committed
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
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

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
    - 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  Edit
Everyone can see this information.

Other bug subscribers