Bug 1293190

Summary: v8 on i686 should be built with the x87 arch, possibly with ia32 builds in lib/sse2
Product: [Fedora] Fedora Reporter: Kevin Kofler <kevin>
Component: v8Assignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: high    
Version: rawhideCC: jamielinux, tcallawa, tchollingsworth, tomspur
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-22 00:13:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kevin Kofler 2015-12-21 02:45:56 UTC
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):
v8-3.14.5.10-22.fc24
and many more

How reproducible:
Always

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 06:40:16 UTC
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-22 00:13:49 UTC
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.