diff options
Diffstat (limited to 'Source/JavaScriptCore')
-rw-r--r-- | Source/JavaScriptCore/ChangeLog | 34 | ||||
-rw-r--r-- | Source/JavaScriptCore/DerivedSources.pri | 21 | ||||
-rw-r--r-- | Source/JavaScriptCore/JavaScriptCore.pro | 4 | ||||
-rw-r--r-- | Source/JavaScriptCore/LLIntOffsetsExtractor.pro | 10 | ||||
-rw-r--r-- | Source/JavaScriptCore/Target.pri | 3 |
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 \ |