Commit Graph

14 Commits

Author SHA1 Message Date
Kevin Kofler
09c4c1fc15 no-sse2.patch: Fix another error in v8_sse2.gyp
(by fixing make-v8-sse2-gyp.sh)
2016-01-19 04:11:36 +01:00
Kevin Kofler
9ee8131cd3 no-sse2.patch: Fix invalid gyp syntax in v8_sse2.gyp
(by fixing make-v8-sse2-gyp.sh)
2016-01-19 03:52:05 +01:00
Kevin Kofler
e670d513af no-sse2.patch: Build both the x87 version and the SSE2 version of V8 on i686
Note that almost all the patch size increase is from the v8_sse2.gyp
file that is automatically generated from v8.gyp using a small script I
wrote, which is also included in the patch.
2016-01-19 03:32:24 +01:00
Kevin Kofler
5262f491f3 no-sse2.patch: Add built .so files to the link line
In the long run, we may end up doing this manually because we will need
to handle V8 specially in the QMake stuff anyway (install it, ensure we
only link the x87 version and let the SSE2 version magically act as a
drop-in replacement, add an rpath), but try like this for now.
2016-01-18 03:06:07 +01:00
Kevin Kofler
90225e7e77 no-sse2.patch: Build V8 as a shared library on i686
* Mon Jan 18 2016 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.6.0-0.14.beta.nosse2.1
- Build V8 as a shared library on i686 to allow for swappable backends

This is the first prerequisite step towards building both the x87 and
SSE2 backends.
2016-01-18 01:10:42 +01:00
Kevin Kofler
e24db1777f no-sse2.patch: Switch back to gold, blink_platform.gyp fixes
* Revert the change to force the BFD ld, that was not the issue.
* Make some fixes to my blink_sse2 target in blink_platform.gyp:
  - add missing dependencies to get the needed feature_defines,
  - add missing target defines,
  - add -mfpmath=sse in addition to -msse2 because this is
    floating-point math and we should definitely not do x87 in
    the SSE2-optimized versions of the functions.
2016-01-17 22:45:49 +01:00
Kevin Kofler
4c9d7b0aba no-sse2.patch: try linking with ld.bfd instead of gold
I am getting undefined references to symbols that should be defined by
an archive linked with -Wl,--whole-archive from gold, which really
should not happen.

Also the unnecessary hard_dependency in blink_platform.gyp.
2016-01-17 19:45:04 +01:00
Kevin Kofler
faeb141b37 no-sse2.patch: Fix/simplify disable_sse2 logic in breakpad/src/build/common.gypi
That file is not really used in QtWebEngine anyway, but simply
defaulting disable_sse2 to 1 is the right thing. The variable is ignored
on everything other than ia32 (i686) anyway, even on x64 (x86_64). And
setting conditional defaults might not work as expected in gyp.
2016-01-17 06:32:37 +01:00
Kevin Kofler
1e170961f9 no-sse2.patch: Fix typos in the patched header files 2016-01-17 05:10:15 +01:00
Kevin Kofler
799b5e1118 no-sse2.patch: Fix typos
* Fix typo in blink_platform.gyp.
* Restore the v8 parts that accidentally went missing.
2016-01-17 04:46:25 +01:00
Kevin Kofler
ab696c2550 no-sse2.patch: fix audio/VectorMath and audio/SincResampler FTBFS
* Fix src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/
  SincResampler.cpp and VectorMath.cpp to not require SSE2 on x86
  (including runtime detection).
* Also add runtime detection for DirectConvolver.cpp.
2016-01-17 04:30:41 +01:00
Kevin Kofler
42f26ca168 no-sse2.patch: remove -ffloat-store, fix DirectConvolver FTBFS
* Remove the -ffloat-store workaround: The media player issue that
  caused problems with x87 floating point (and ultimately made upstream
  require SSE2) should already be fixed / worked around by:
  https://crrev.com/d2c745b13c93ecff5108bed57d8e052126715492
  So I will only readd -ffloat-store if people request it, and even
  then, only to specific parts of code and not everything.
* Fix src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/
  DirectConvolver.cpp to not require SSE2 on x86. (No runtime detection,
  sorry.)
* Update the changelog date in the specfile.
2016-01-17 02:34:08 +01:00
Kevin Kofler
3bd7f659f7 no-sse2.patch: Fix an FTBFS in the gyp changes 2016-01-17 00:54:23 +01:00
Kevin Kofler
6d0400baa5 Do not require SSE2 on i686
See https://bugzilla.redhat.com/show_bug.cgi?id=1244196#c22 for the
history of the patch. Compared to the last revision there (v5):
* I fixed WebGLImageConversion.cpp to not assume SSE2 on x86.
  Unfortunately, it would be really hard to make runtime detection work
  there, because it uses intrinsics in inline templates, and GCC only
  supports intrinsics when building the whole code for the vector
  instruction set. So I had to turn off that SSE2 code entirely when
  __SSE2__ is not defined at compile time.
* I fixed webrtc to check for SSE2 at runtime (using the runtime
  checking code that webrtc already has and uses in several places)
  before attempting to use OpenMAX on x86. OpenMAX requires SSE2.
  So we just fall back to the Ooura implementation of FFTs when needed.
TODO: build V8 shared and twice (once for x87, once for SSE2)
2016-01-17 00:17:04 +01:00