summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore')
-rw-r--r--Source/JavaScriptCore/ChangeLog34
-rw-r--r--Source/JavaScriptCore/DerivedSources.pri21
-rw-r--r--Source/JavaScriptCore/JavaScriptCore.pro4
-rw-r--r--Source/JavaScriptCore/LLIntOffsetsExtractor.pro10
-rw-r--r--Source/JavaScriptCore/Target.pri3
5 files changed, 62 insertions, 10 deletions
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 0387dcecd..db48e56b7 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,5 +1,39 @@
2012-10-25 Simon Hausmann <simon.hausmann@digia.com>
+ [Qt] Fix the LLInt build on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=97648
+
+ Reviewed by NOBODY (OOPS!).
+
+ The main change for the port on Windows is changing the way offsets are extracted
+ and the LLIntAssembly.h is generated to accomodate release and debug configurations.
+
+ Firstly the LLIntOffsetsExtractor binary is now built as-is (no DESTDIR set) and
+ placed into debug\LLIntOffsetsExtractor.exe and release\LLIntOffsetsExtractor.exe
+ on Windows debug_and_release builds. On other patforms it remainds in the regular
+ out directory.
+
+ Secondly the LLIntAssembly.h files must be different for different build types,
+ so the LLIntAssembly.h generator in DerivedSources.pri operates no on the extractor
+ binary files as input. Using a simple exists() check we verify the presence of either
+ a regular, a debug\LLIntOffsetsExtractor and a release\LLIntOffsetsExtractor binary
+ and process all of them. The resulting assembly files consequently end up in
+ generated\debug\LLIntAssembly.h and generated\release\LLIntAssembly.h.
+
+ In Target.pri we have to also make sure that those directories are in the include
+ path according to the release or debug configuration.
+
+ Lastly a small tweak in the LLIntOffsetsExtractor build was needed to make sure that
+ we include JavaScriptCore/config.h instead of WTF/config.h, required to fix the build
+ issues originally pasted in bug #97648.
+
+ * DerivedSources.pri:
+ * JavaScriptCore.pro:
+ * LLIntOffsetsExtractor.pro:
+ * Target.pri:
+
+2012-10-25 Simon Hausmann <simon.hausmann@digia.com>
+
[WIN] Make LLInt offsets extractor work on Windows
https://bugs.webkit.org/show_bug.cgi?id=100369
diff --git a/Source/JavaScriptCore/DerivedSources.pri b/Source/JavaScriptCore/DerivedSources.pri
index 75fd5acc0..cf44aefe1 100644
--- a/Source/JavaScriptCore/DerivedSources.pri
+++ b/Source/JavaScriptCore/DerivedSources.pri
@@ -33,12 +33,12 @@ KEYWORDLUT_FILES += \
JIT_STUB_FILES += \
jit/JITStubs.cpp
-LLINT_FILES = \
- llint/LowLevelInterpreter.asm
+LLINT_ASSEMBLER = $$PWD/llint/LowLevelInterpreter.asm
LLINT_DEPENDENCY = \
$$PWD/llint/LowLevelInterpreter32_64.asm \
- $$PWD/llint/LowLevelInterpreter64.asm
+ $$PWD/llint/LowLevelInterpreter64.asm \
+ $$LLINT_ASSEMBLER
# GENERATOR 1-A: LUT creator
lut.output = ${QMAKE_FILE_BASE}.lut.h
@@ -88,12 +88,19 @@ klgen.input = KEYWORDLUT_FILES
klgen.commands = python $$klgen.script ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
GENERATORS += klgen
-linux-*:!equals(QT_ARCH, "arm") {
+EXTRACTOR_BINARY = LLIntOffsetsExtractor$$EXEEXT
+DIRS = $$OUT_PWD $$OUT_PWD/debug $$OUT_PWD/release
+for(dir, DIRS) {
+ file = $$dir/$$EXTRACTOR_BINARY
+ exists($$file): LLINT_FILES += $$file
+}
+
+if(linux-*|win32):!equals(QT_ARCH, "arm") {
#GENERATOR: LLInt
- llint.output = LLIntAssembly.h
+ llint.output = ${QMAKE_FILE_IN_PATH}$${QMAKE_DIR_SEP}LLIntAssembly.h
llint.script = $$PWD/offlineasm/asm.rb
llint.input = LLINT_FILES
- llint.depends = LLIntOffsetsExtractor $$LLINT_DEPENDENCY
- llint.commands = ruby $$llint.script ${QMAKE_FILE_NAME} LLIntOffsetsExtractor ${QMAKE_FILE_OUT}
+ llint.depends = $$LLINT_DEPENDENCY
+ llint.commands = ruby $$llint.script $$LLINT_ASSEMBLER ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
GENERATORS += llint
}
diff --git a/Source/JavaScriptCore/JavaScriptCore.pro b/Source/JavaScriptCore/JavaScriptCore.pro
index 082244f8d..c86ca8e3d 100644
--- a/Source/JavaScriptCore/JavaScriptCore.pro
+++ b/Source/JavaScriptCore/JavaScriptCore.pro
@@ -7,7 +7,7 @@
TEMPLATE = subdirs
CONFIG += ordered
-linux-*:!equals(QT_ARCH, "arm") {
+if(linux-*|win32*):!equals(QT_ARCH, "arm") {
LLIntOffsetsExtractor.file = LLIntOffsetsExtractor.pro
LLIntOffsetsExtractor.makefile = Makefile.LLIntOffsetsExtractor
SUBDIRS += LLIntOffsetsExtractor
@@ -18,7 +18,7 @@ target.file = Target.pri
SUBDIRS += derived_sources target
-linux-*:!equals(QT_ARCH, "arm"):addStrictSubdirOrderBetween(LLIntOffsetsExtractor, derived_sources)
+if(linux-*|win32*):!equals(QT_ARCH, "arm"):addStrictSubdirOrderBetween(LLIntOffsetsExtractor, derived_sources)
addStrictSubdirOrderBetween(derived_sources, target)
jsc.file = jsc.pro
diff --git a/Source/JavaScriptCore/LLIntOffsetsExtractor.pro b/Source/JavaScriptCore/LLIntOffsetsExtractor.pro
index 4a6f69a89..9cbc4248d 100644
--- a/Source/JavaScriptCore/LLIntOffsetsExtractor.pro
+++ b/Source/JavaScriptCore/LLIntOffsetsExtractor.pro
@@ -7,7 +7,11 @@
TEMPLATE = app
TARGET = LLIntOffsetsExtractor
-DESTDIR = $$OUT_PWD
+
+debug_and_release {
+ CONFIG += force_build_all
+ CONFIG += build_all
+}
QT = core # Needed for qglobal.h
@@ -21,6 +25,10 @@ defineTest(addIncludePaths) {
addIncludePaths()
+# To make sure we include JavaScriptCore/config.h and not
+# the WTF one.
+INCLUDEPATH = $$PWD $$INCLUDEPATH
+
LLINT_DEPENDENCY = \
$$PWD/llint/LowLevelInterpreter.asm \
$$PWD/llint/LowLevelInterpreter32_64.asm \
diff --git a/Source/JavaScriptCore/Target.pri b/Source/JavaScriptCore/Target.pri
index 861dbc740..ffd295a41 100644
--- a/Source/JavaScriptCore/Target.pri
+++ b/Source/JavaScriptCore/Target.pri
@@ -30,6 +30,9 @@ include(yarr/yarr.pri)
INSTALLDEPS += all
+CONFIG(debug, debug|release): INCLUDEPATH += $$JAVASCRIPTCORE_GENERATED_SOURCES_DIR\debug
+CONFIG(release, debug|release): INCLUDEPATH += $$JAVASCRIPTCORE_GENERATED_SOURCES_DIR\release
+
SOURCES += \
API/JSBase.cpp \
API/JSCallbackConstructor.cpp \