Bug 1293190 - v8 on i686 should be built with the x87 arch, possibly with ia32 builds in lib/sse2
v8 on i686 should be built with the x87 arch, possibly with ia32 builds in li...
Product: Fedora
Classification: Fedora
Component: v8 (Show other bugs)
i686 Linux
high Severity high
: ---
: ---
Assigned To: Tom "spot" Callaway
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2015-12-20 21:45 EST by Kevin Kofler
Modified: 2015-12-21 19:13 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2015-12-21 19:13:49 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Kevin Kofler 2015-12-20 21:45:56 EST
Description of problem:
Looking at the specfile, it looks like the current v8 packages use the upstream default architecture on i686. But that default requires SSE2, contrary to Fedora policies.

Version-Release number of selected component (if applicable):
and many more

How reproducible:

Steps to Reproduce:
1. Look at the build.log file.

Actual results:
There is only a build with -DV8_TARGET_ARCH_IA32 (that requires SSE2).

Expected results:
There should be a build with -DV8_TARGET_ARCH_X87, and probably also a separate build with -DV8_TARGET_ARCH_IA32 (SSE2). If the builds are binary-compatible, the latter should simply go into /usr/lib/sse2. If they are not, we need to find some other solution.

Additional info:
I am currently looking into what it takes to fix QtWebEngine to work on all x86 CPUs Fedora is expected to support. The system v8 package seems to be the first roadblocker. (I know that Chromium/QtWebEngine itself needs fixing through patches. But at least V8 has upstream support that simply needs to be enabled.)

In addition, V8 is also used by other software (e.g. Node.js) that does not itself require SSE2 if V8 is not compiled to require it.
Comment 1 Kevin Kofler 2015-12-21 01:40:16 EST
FYI, this is what I have for QtWebEngine (and Chromium) itself: https://bugzilla.redhat.com/show_bug.cgi?id=1244196#c22
Comment 2 Kevin Kofler 2015-12-21 19:13:49 EST
As of now, QtWebEngine doesn't actually use the system V8, but these do:
* nodejs
* rubygem-therubyracer
* uwsgi-plugin-v8
* weechat

It also turns out the packaged V8 is an ancient version from 2013 that predates the ia32/x87 arch split, so it detects SSE2 availability at runtime. (No wonder Chromium and QtWebEngine cannot use such a stone-age V8!) Compiling V8 twice will need to be done when upgrading to a more modern version of V8.

Note You need to log in before you can comment on or make changes to this bug.