Commit Graph

26 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther
7beed86493 v8: Introduce MIPS code for the QML code
Copy and paste the ARM code into the MIPS dir, there is no lithium
support in MIPS right now.

Change-Id: I21491d36da2a4ac4cb6898c47b0e5bd37a733b41
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-12-05 12:29:42 +01:00
Holger Hans Peter Freyther
30a5928e2a v8: Attempt to fix a typo in the commit message
is resolve -> is resolved

Change-Id: I95a6072be63e353bafdafccc404e90d331a01894
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-12-05 12:27:58 +01:00
Holger Hans Peter Freyther
ddc580643b mips: Really build the MIPS V8 code
2008d2d40e was not rebased properly and
should have used the V8_TARGET_ARCH to add the MIPS code to the build.

Change-Id: Idf0c183fca63da0fa9f9aa8d091a764b88c888f5
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-12-05 12:25:07 +01:00
Holger Hans Peter Freyther
2008d2d40e v8: Be able to build V8 for MIPS
Add mips to the list in configure and the v8.pri, build the existing
MIPS files. The result has not been verified to work.

Change-Id: I0f4fd29cd9752d32b6d87e0df0e888822f40ac0a
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-12-01 17:46:57 +01:00
Kent Hansen
0f1d936998 V8/arm: Add relevant float defines
CAN_USE_VFP_INSTRUCTIONS implies arm7.
This is the only arm configuration we currently support.
These defines also ensure that a suitable snapshot is generated
when cross-compiling (i.e., when using the arm simulator).

Change-Id: I3a8a4224b9127a549b3987bcf5651ed1ffb8079a
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-11-29 08:52:59 +01:00
Kent Hansen
502b5b8178 Make v8 snapshots work in debug-and-release mode
Debug snapshots and release snapshots aren't compatible. Both a
debug version and release version of the mkv8snapshot tool must be
built, and the corresponding executable selected when building v8.

Adopt the library naming convention for naming the mkv8snapshot
executable ("mkv8snapshot" in release, "mkv8snapshot_debug" in debug
on Mac, "mkv8snapshotd" in debug on Windows).

Change-Id: I7a94b09e7db7ed8bbaa293637c092a1d1d1dbaba
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-24 16:46:15 +01:00
Kent Hansen
52ef2ee57f Add V8 snapshot support
A V8 snapshot is a serialized representation of the JavaScript heap.
Using a snapshot can vastly speed up V8 initialization.

This commit introduces a new tool, mkv8snapshot. mkv8snapshot is
automatically invoked as part of building QtV8, and generates a .cpp
file which is compiled into the QtV8 library.

Because mkv8snapshot itself needs to initialize the V8 environment
the non-snapshot way (i.e., by evaluating thousands of lines of
JavaScript), it needs to build all of V8. This means that V8 is
effectively built twice when snapshots are enabled.

When cross-compiling, only host=i386 and target=arm is supported,
since that's the only relevant case for which V8 currently
supports a simulator. mkv8snapshot is built and run as a host tool
(using the simulator), and generates a snapshot that will be used
on the target.

Task-number: QTBUG-21152
Change-Id: I9270652f129505508f78db8b0a39fbf57dc8b86d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-11-22 13:10:56 +01:00
Friedemann Kleint
99b6ebeb59 V8: Fix linking with MinGW.
Change linker flags to work with MSVC (stub.lib) and MinGW
(stub.a).

Change-Id: I9319972a133e2d3abfe046e87e2b76590608044b
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-11-21 14:24:36 +01:00
Kai Koehne
e8fd6f2fd1 Update V8
Change-Id: Ie6157e0baa55271707b3e00ed80b67ab79f4f570
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-11-17 17:40:06 +01:00
Kent Hansen
7b3bb6759b Make V8 build on Windows again
Forgot to add a Windows-specific source file to the project
when the new V8 version was imported.

Change-Id: Id20dcba132bf2609338845e8a769fcc8c1cbc562
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-11-15 13:33:08 +01:00
Kent Hansen
198933a043 Update V8
Fixes a bug in one of our patches that caused
hydrogen to optimize incorrectly.

Task-number: QTBUG-22679
Change-Id: I008088cd2b878f22e6a2ba4e002aeba9a3c70a22
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-11-14 01:54:39 +01:00
Aaron Kennedy
bcd16f9453 Update V8
Change-Id: Ic239ef1e55bed06260e4a04cc2199f64c2d30059
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-11-10 13:22:13 +01:00
Bradley T. Hughes
5341cf7831 Disable warnings while building QtV8
This is a 3rd-party submodule that we do not directly modify. Warnings
from this code is of no value to people diagnosing and fixing warnings
in Qt code itself.

Change-Id: If17d9ce6509abb7d7aa1f00daf7e771fc6231993
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-11-02 13:17:10 +01:00
Kent Hansen
ce5adc7684 Revert "Update V8"
This reverts commit 1c4a5fcab76d1b769a4c0369d40dd0dd7c0e7495

Several of the qtdeclarative tests and examples are dying randomly with messages like this:
> 
> #
> # Fatal error in ../3rdparty/v8/src/objects-inl.h, line 2169
> # CHECK(object->IsJSFunction()) failed
> #
> 
> 
> ==== Stack trace ============================================
> 
> 
> ==== Details ================================================
> 
> ==== Key         ============================================
> 
> =====================
> 
> Aborted (core dumped)

Change-Id: Iebaa2497a6f6ef616ef4c3576c217d2a8a2c1ea5
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-10-20 13:30:26 +02:00
Aaron Kennedy
7dc5973bf1 Update V8
Change-Id: I7a9da7dbb2116a441788407d60ed10155cded941
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-10-19 20:48:25 +02:00
Aaron Kennedy
27833629c6 Update V8
Change-Id: I359ec3f57a120ebd02d03c56d0944397b5407ed8
Reviewed-on: http://codereview.qt-project.org/6386
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Sanity-Review: Aaron Kennedy <aaron.kennedy@nokia.com>
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-10-11 07:02:14 +02:00
Gunnar Sletta
b62bd0584a Merge branch 'refactor'
Conflicts:
	mkspecs/qws/linux-lsb-g++/qmake.conf
	src/gui/image/qpixmap_mac.cpp
	src/gui/painting/qpaintengine_x11.cpp
	src/gui/painting/qtessellator.cpp
	src/gui/text/qfontengine_qws.cpp
	src/gui/text/qfontengine_x11.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/opengl/qgl.h
	src/opengl/qgl_x11egl.cpp
	src/plugins/plugins.pro

Change-Id: If52dcd55cd55f2983a756c2f843967702b60a310
2011-09-13 08:54:45 +02:00
Rohan McGovern
26286d354a Fixed unstable v8 compile failure in debug-and-release builds
In debug-and-release builds, the generated sources from the debug and
the release build would race with each other.  This could cause the
source to be truncated during compilation, resulting in build failures
referring to undefined symbols.

Change-Id: Ib9eca2551d1e6c055a29be33ba46eab92f5b1861
Reviewed-on: http://codereview.qt-project.org/4626
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
2011-09-12 23:47:45 +02:00
Gunnar Sletta
a9ac6da893 Merge branch 'master' into refactor
Conflicts:
	src/3rdparty/v8
	src/gui/text/qfont_qpa.cpp
	src/gui/widgets/qlinecontrol.cpp
	src/plugins/platforms/fontdatabases/fontconfig/qfontconfigdatabase.cpp
	tests/auto/gui.pro
	tests/auto/network.pro
	tests/auto/qstring/tst_qstring.cpp

Change-Id: Id118c172645303ccf06a207050d5bf1462ff57fe
2011-09-12 07:49:03 +02:00
Aaron Kennedy
b57c3cc40f Update V8
Add a "NativeMode" to V8 script compilation.

Change-Id: I73b087c9787ca7f961c2af89f45de2b8813ce1a5
Task-number: QTBUG-20344
Reviewed-on: http://codereview.qt-project.org/4500
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-09-09 08:18:56 +02:00
Aaron Kennedy
bc2eac1ef3 Update V8
This fixes a few bugs in QML mode name resolution and simplifies
our V8 patchset a little by folding some patches together.

Change-Id: Ia528a43ac8ccad95ac81bcdff5d05aaeab4b48b2
Reviewed-on: http://codereview.qt.nokia.com/4294
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
2011-09-07 04:50:45 +02:00
Samuel Rødal
a6b6e760ac Merge remote branch 'gerrit/master' into HEAD
Conflicts:
	configure.exe
	src/corelib/global/qglobal.h
	src/gui/kernel/qplatformnativeinterface_qpa.h
	src/gui/widgets/qlinecontrol.cpp
	src/gui/widgets/qmenu_mac.mm
	src/gui/widgets/qmenu_p.h
	src/gui/widgets/qmenubar.cpp
	src/gui/widgets/qmenubar_p.h
	src/gui/widgets/widgets.pri
	src/plugins/platforms/wayland/qwaylandnativeinterface.cpp
	src/plugins/platforms/wayland/qwaylandnativeinterface.h
	src/src.pro
	tests/auto/qdir/tst_qdir.cpp
	tests/auto/qfileinfo/tst_qfileinfo.cpp
	tests/auto/qsslsocket/tst_qsslsocket.cpp
	tests/auto/qstring/tst_qstring.cpp

Change-Id: I64cf2cefa532ba87a92f632e3595ce6914183e9b
2011-09-06 10:55:40 +02:00
Kent Hansen
f5501c0f3b Update our V8
Change-Id: I8925815c068d697999955c45de9f0736ad31ed56
Reviewed-on: http://codereview.qt.nokia.com/3880
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-09-02 14:11:41 +02:00
Kent Hansen
2438a5ad48 Try to ensure that QT_ARCH is always set when configuring v8
This is a workaround for QTBUG-21224.

For v8 we want to use QT_ARCH as the primary variable for
detecting the target platform. Unfortunately, QT_ARCH isn't
set when v8.pro is parsed using fromfile() from within
another .pro file (namely src/src.pro).

qt_config seems to be the bare minimum that's needed to get
qconfig.pri (which sets QT_ARCH and friends) loaded.

Change-Id: Ideb713724b98dd100560eaf6d7be39df9a22a71e
Reviewed-on: http://codereview.qt.nokia.com/4094
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-09-01 19:16:01 +02:00
Eskil Abrahamsen Blomfeldt
e6324af817 Compile with host architecture armv5tel
Change-Id: Ied7ef4052e192d1585d7eed7a100b01f79f9773d
Reviewed-on: http://codereview.qt.nokia.com/3962
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2011-08-31 14:05:33 +02:00
Kent Hansen
9830cb8e59 Add QtV8 library to QtBase
This adds Aaron's copy of V8 to src/3rdparty/v8 (as a
git submodule), and builds it as a "normal" Qt library
(without any dependencies on Qt itself).

The library can be added to a project with

QT += v8-private

V8 API headers are available as private includes, e.g.

 #include <private/v8.h>

The API is private because we're exposing a third-party
API directly, and we don't want to (and cannot) make
source or binary compatibility guarantees for it.

Since we want the V8 public API headers to be private
headers in Qt, syncqt and sync.profile were extended to
understand a new configuration option, the
@allmoduleheadersprivate array, that tells syncqt whether
all the library headers should be treated as private even
though they don't follow the _p.h Qt convention.

The V8 project files, patches and autotests are copied
from the QtDeclarative repository. The next step after
this commit is to remove QtDeclarative's copy of V8 and
link with QtV8 instead.

Task-number: QTBUG-20963
Change-Id: Ib8820362cdbc8fa662a5e97db841656cf38d1b62
Reviewed-on: http://codereview.qt.nokia.com/3092
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-08-29 10:16:01 +02:00