Bug 1293190 - v8 on i686 should be built with the x87 arch, possibly with ia32 builds in lib/sse2
Summary: v8 on i686 should be built with the x87 arch, possibly with ia32 builds in li...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: v8
Version: rawhide
Hardware: i686
OS: Linux
high
high
Target Milestone: ---
Assignee: Tom "spot" Callaway
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-21 02:45 UTC by Kevin Kofler
Modified: 2015-12-22 00:13 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-12-22 00:13:49 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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.


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