[mingw-webkitgtk] Update to 2.0.4

Erik van Pienbroek epienbro at fedoraproject.org
Fri Aug 16 21:40:24 UTC 2013


commit 88a084115e47e0c97aa86648d8797feccacf49d2
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Fri Aug 16 23:37:45 2013 +0200

    Update to 2.0.4
    
    - Update to 2.0.4
    - Added BR: mingw{32,64}-libwebp
    - Use gstreamer1
    - Enable JIT
    - Switch to unversioned docdirs (#993917)

 .gitignore                               |    1 +
 mingw-webkitgtk.spec                     |   61 +++++----
 sources                                  |    2 +-
 webkit-1.9.6-wk2-tests.patch             |   36 ------
 webkit-dont-build-dump-render-tree.patch |    6 +-
 webkitgtk-jit-mingw.patch                |   92 ++++++++++++++
 webkitgtk-jit-win64.patch                |  196 ++++++++++++++++++++++++++++++
 7 files changed, 328 insertions(+), 66 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 49a5e5e..bde3ae2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@
 /webkit-1.8.3.tar.xz
 /webkitgtk-1.10.1.tar.xz
 /webkitgtk-1.10.2.tar.xz
+/webkitgtk-2.0.4.tar.xz
diff --git a/mingw-webkitgtk.spec b/mingw-webkitgtk.spec
index ea9fa04..8922ab4 100644
--- a/mingw-webkitgtk.spec
+++ b/mingw-webkitgtk.spec
@@ -4,11 +4,11 @@
 ## "LICENSE") so this short macro allows us to distinguish them by using their
 ## directory names (from the source tree) as prefixes for the files.
 %global add_to_doc_files32() \
-    mkdir -p %{buildroot}%{_docdir}/mingw32-webkitgtk-%{version} ||: ; \
-    cp -p %1  %{buildroot}%{_docdir}/mingw32-webkitgtk-%{version}/$(echo '%1' | sed -e 's!/!.!g')
+    mkdir -p %{buildroot}%{_docdir}/mingw32-webkitgtk ||: ; \
+    cp -p %1  %{buildroot}%{_docdir}/mingw32-webkitgtk/$(echo '%1' | sed -e 's!/!.!g')
 %global add_to_doc_files64() \
-    mkdir -p %{buildroot}%{_docdir}/mingw64-webkitgtk-%{version} ||: ; \
-    cp -p %1  %{buildroot}%{_docdir}/mingw64-webkitgtk-%{version}/$(echo '%1' | sed -e 's!/!.!g')
+    mkdir -p %{buildroot}%{_docdir}/mingw64-webkitgtk ||: ; \
+    cp -p %1  %{buildroot}%{_docdir}/mingw64-webkitgtk/$(echo '%1' | sed -e 's!/!.!g')
 
 #define	svn_revision	41071
 
@@ -24,8 +24,8 @@
 %bcond_with	debug
 
 Name:		mingw-webkitgtk
-Version:	1.10.2
-Release:	6%{?dist}
+Version:	2.0.4
+Release:	1%{?dist}
 Summary:	MinGW Windows web content engine library
 
 Group:		Development/Libraries
@@ -34,13 +34,13 @@ URL:		http://webkit.org/
 
 Source0:	http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
 
-# Disable WebKit2 tests when building WebKit1
-# https://lists.webkit.org/pipermail/webkit-gtk/2012-August/001204.html
-Patch1:         webkit-1.9.6-wk2-tests.patch
-# The DumpRenderTree tool fails to compile for version 1.3.13
-# as it depends on internal symbols which aren't exported in
-# the .dll so it's safe to skip building this tool
-Patch2:		webkit-dont-build-dump-render-tree.patch
+# Skip building the DumpRenderTree tool which requires internal symbols that
+# aren't exported in the .dll.
+Patch2:         webkit-dont-build-dump-render-tree.patch
+#https://bugs.webkit.org/show_bug.cgi?id=107965
+Patch7:         webkitgtk-jit-win64.patch
+#https://bugs.webkit.org/show_bug.cgi?id=114580
+Patch8:         webkitgtk-jit-mingw.patch
 
 BuildArch:	noarch
 
@@ -73,8 +73,9 @@ BuildRequires:	mingw32-sqlite
 BuildRequires:	mingw32-libxslt
 BuildRequires:	mingw32-pthreads
 BuildRequires:	mingw32-enchant
-BuildRequires:	mingw32-gstreamer
-BuildRequires:	mingw32-gstreamer-plugins-base
+BuildRequires:	mingw32-gstreamer1
+BuildRequires:	mingw32-gstreamer1-plugins-base
+BuildRequires:  mingw32-libwebp
 
 BuildRequires:  mingw64-filesystem >= 95
 BuildRequires:  mingw64-gcc
@@ -91,8 +92,9 @@ BuildRequires:  mingw64-sqlite
 BuildRequires:  mingw64-libxslt
 BuildRequires:  mingw64-pthreads
 BuildRequires:  mingw64-enchant
-BuildRequires:  mingw64-gstreamer
-BuildRequires:  mingw64-gstreamer-plugins-base
+BuildRequires:  mingw64-gstreamer1
+BuildRequires:  mingw64-gstreamer1-plugins-base
+BuildRequires:  mingw64-libwebp
 
 
 %description 
@@ -146,8 +148,10 @@ Static version of the MinGW Windows WebKitGTK+ library.
 %prep
 %setup -qn "webkitgtk-%{version}"
 
-%patch1 -p1 -b .disable_wk2
 %patch2 -p0 -b .dumprendertree
+%patch7 -p1 -b .jit-win64
+%patch8 -p1 -b .jit-mingw
+
 autoreconf --verbose --install -I Source/autotools
 
 
@@ -159,16 +163,12 @@ autoreconf --verbose --install -I Source/autotools
 %mingw_configure						\
 			--with-target=win32			\
 			--with-gtk=2.0				\
-			--with-font-backend=freetype		\
-			--with-unicode-backend=icu		\
 			--enable-static --enable-shared		\
+			--with-acceleration-backend=none	\
+			--disable-credential-storage		\
 			--disable-geolocation			\
-			--disable-jit				\
-			--disable-plugin-process		\
 			--disable-webkit2			\
-			--disable-gtk-doc-html			\
-%{?with_coverage:	--enable-coverage		}	\
-%{?with_debug:		--enable-debug			}
+			--disable-gtk-doc-html
 
 %mingw_make %{?_smp_mflags} V=1
 
@@ -214,7 +214,7 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 # Win32
 %files -n mingw32-webkitgtk -f mingw32-webkitgtk-2.0.lang
-%{_docdir}/mingw32-webkitgtk-%{version}/
+%{_docdir}/mingw32-webkitgtk/
 %{mingw32_bindir}/jsc-1.exe
 %{mingw32_bindir}/GtkLauncher.exe
 %{mingw32_bindir}/libjavascriptcoregtk-1.0-0.dll
@@ -232,7 +232,7 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 # Win64
 %files -n mingw64-webkitgtk -f mingw64-webkitgtk-2.0.lang
-%{_docdir}/mingw64-webkitgtk-%{version}/
+%{_docdir}/mingw64-webkitgtk/
 %{mingw64_bindir}/jsc-1.exe
 %{mingw64_bindir}/GtkLauncher.exe
 %{mingw64_bindir}/libjavascriptcoregtk-1.0-0.dll
@@ -250,6 +250,13 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 
 %changelog
+* Fri Aug 16 2013 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.0.4-1
+- Update to 2.0.4
+- Added BR: mingw{32,64}-libwebp
+- Use gstreamer1
+- Enable JIT
+- Switch to unversioned docdirs (#993917)
+
 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.10.2-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 
diff --git a/sources b/sources
index 9c1ffda..cd5ab26 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7b1a652af1eb11bee5bf7209e9ff67e6  webkitgtk-1.10.2.tar.xz
+413be319ba171feed9348d1bede6b0a7  webkitgtk-2.0.4.tar.xz
diff --git a/webkit-dont-build-dump-render-tree.patch b/webkit-dont-build-dump-render-tree.patch
index b988404..2ba0da0 100644
--- a/webkit-dont-build-dump-render-tree.patch
+++ b/webkit-dont-build-dump-render-tree.patch
@@ -1,8 +1,10 @@
 --- Tools/GNUmakefile.am
 +++ Tools/GNUmakefile.am
-@@ -1,5 +1,4 @@
+@@ -3,7 +3,6 @@
+ 
+ if ENABLE_WEBKIT1
  noinst_PROGRAMS += \
 -	Programs/DumpRenderTree \
  	Programs/GtkLauncher
+ endif
  
- # GtkLauncher
diff --git a/webkitgtk-jit-mingw.patch b/webkitgtk-jit-mingw.patch
new file mode 100644
index 0000000..c8daffb
--- /dev/null
+++ b/webkitgtk-jit-mingw.patch
@@ -0,0 +1,92 @@
+diff --git a/Source/JavaScriptCore/jit/JITStubs.cpp b/Source/JavaScriptCore/jit/JITStubs.cpp
+index d3da846..052292f 100644
+--- a/Source/JavaScriptCore/jit/JITStubs.cpp
++++ b/Source/JavaScriptCore/jit/JITStubs.cpp
+@@ -368,7 +368,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
+ 
+ #else // USE(JSVALUE32_64)
+ 
+-#if COMPILER(GCC) && CPU(X86_64)
++#if COMPILER(GCC) && CPU(X86_64) && !OS(WINDOWS)
+ 
+ // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
+ // need to change the assembly trampolines below to match.
+@@ -437,6 +437,75 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
+     "ret" "\n"
+ );
+ 
++#elif COMPILER(GCC) && CPU(X86_64) && OS(WINDOWS)
++
++// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
++// need to change the assembly trampolines below to match.
++COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
++COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
++
++asm (
++".text\n"
++".globl " SYMBOL_STRING(ctiTrampoline) "\n"
++HIDE_SYMBOL(ctiTrampoline) "\n"
++SYMBOL_STRING(ctiTrampoline) ":" "\n"
++    // Dump register parameters to their home address
++    "movq %r9, 0x20(%rsp)" "\n"
++    "movq %r8, 0x18(%rsp)" "\n"
++    "movq %rdx, 0x10(%rsp)" "\n"
++    "movq %rcx, 0x8(%rsp)" "\n"
++
++    "pushq %rbp" "\n"
++    "movq %rsp, %rbp" "\n"
++    "pushq %r12" "\n"
++    "pushq %r13" "\n"
++    "pushq %r14" "\n"
++    "pushq %r15" "\n"
++    "pushq %rbx" "\n"
++
++    // Decrease rsp to point to the start of our JITStackFrame
++    "subq $0x58, %rsp" "\n"
++    "movq $512, %r12" "\n"
++    "movq $0xFFFF000000000000, %r14" "\n"
++    "movq $0xFFFF000000000002, %r15" "\n"
++    "movq %r8, %r13" "\n"
++    "call *%rcx" "\n"
++    "addq $0x58, %rsp" "\n"
++    "popq %rbx" "\n"
++    "popq %r15" "\n"
++    "popq %r14" "\n"
++    "popq %r13" "\n"
++    "popq %r12" "\n"
++    "popq %rbp" "\n"
++    "ret" "\n"
++".globl " SYMBOL_STRING(ctiTrampolineEnd) "\n"
++HIDE_SYMBOL(ctiTrampolineEnd) "\n"
++SYMBOL_STRING(ctiTrampolineEnd) ":" "\n"
++);
++
++asm (
++".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n"
++HIDE_SYMBOL(ctiVMThrowTrampoline) "\n"
++SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
++    "movq %rsp, %rcx" "\n"
++    "call " LOCAL_REFERENCE(cti_vm_throw) "\n"
++    "int3" "\n"
++);
++
++asm (
++".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
++HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
++SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
++    "addq $0x58, %rsp" "\n"
++    "popq %rbx" "\n"
++    "popq %r15" "\n"
++    "popq %r14" "\n"
++    "popq %r13" "\n"
++    "popq %r12" "\n"
++    "popq %rbp" "\n"
++    "ret" "\n"
++);
++
+ #elif COMPILER(MSVC) && CPU(X86_64)
+ 
+ // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
+-- 
+1.8.2.1
+
diff --git a/webkitgtk-jit-win64.patch b/webkitgtk-jit-win64.patch
new file mode 100644
index 0000000..dbc77fc
--- /dev/null
+++ b/webkitgtk-jit-win64.patch
@@ -0,0 +1,196 @@
+diff --git a/Source/JavaScriptCore/jit/JITStubs.cpp b/Source/JavaScriptCore/jit/JITStubs.cpp
+index 04f597d..d3da846 100644
+--- a/Source/JavaScriptCore/jit/JITStubs.cpp
++++ b/Source/JavaScriptCore/jit/JITStubs.cpp
+@@ -437,6 +437,13 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
+     "ret" "\n"
+ );
+ 
++#elif COMPILER(MSVC) && CPU(X86_64)
++
++// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
++// need to change the assembly trampolines in JITStubsMSVC64.asm to match.
++COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
++COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
++
+ #else
+     #error "JIT not supported on this platform."
+ #endif
+diff --git a/Source/JavaScriptCore/jit/JITStubs.h b/Source/JavaScriptCore/jit/JITStubs.h
+index f7a30d4..c3f29d0 100644
+--- a/Source/JavaScriptCore/jit/JITStubs.h
++++ b/Source/JavaScriptCore/jit/JITStubs.h
+@@ -87,7 +87,7 @@ union JITStubArg {
+     ArrayAllocationProfile* arrayAllocationProfile() { return static_cast<ArrayAllocationProfile*>(asPointer); }
+ };
+     
+-#if CPU(X86_64)
++#if !OS(WINDOWS) && CPU(X86_64)
+ struct JITStackFrame {
+     void* reserved; // Unused
+     JITStubArg args[6];
+@@ -111,6 +111,34 @@ struct JITStackFrame {
+     // When JIT code makes a call, it pushes its return address just below the rest of the stack.
+     ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; }
+ };
++#elif OS(WINDOWS) && CPU(X86_64)
++struct JITStackFrame {
++    void* shadow[4]; // Shadow space reserved for a callee's parameters home addresses
++    void* reserved; // Unused, also maintains the 16-bytes stack alignment
++    JITStubArg args[6];
++
++    void* savedRBX;
++    void* savedR15;
++    void* savedR14;
++    void* savedR13;
++    void* savedR12;
++    void* savedRBP;
++    void* savedRIP;
++
++    // Home addresses for our register passed parameters
++    // http://msdn.microsoft.com/en-us/library/ew5tede7.aspx
++    void* code;
++    JSStack* stack;
++    CallFrame* callFrame;
++    void* unused1;
++
++    // Passed on the stack
++    void* unused2;
++    JSGlobalData* globalData;
++
++    // When JIT code makes a call, it pushes its return address just below the rest of the stack.
++    ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; }
++};
+ #elif CPU(X86)
+ #if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC))
+ #pragma pack(push)
+diff --git a/Source/JavaScriptCore/jit/JSInterfaceJIT.h b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
+index 48ad6b2..401e43c 100644
+--- a/Source/JavaScriptCore/jit/JSInterfaceJIT.h
++++ b/Source/JavaScriptCore/jit/JSInterfaceJIT.h
+@@ -57,8 +57,13 @@ namespace JSC {
+ #if CPU(X86_64)
+         static const RegisterID returnValueRegister = X86Registers::eax;
+         static const RegisterID cachedResultRegister = X86Registers::eax;
++#if !OS(WINDOWS)
+         static const RegisterID firstArgumentRegister = X86Registers::edi;
+         
++#else
++        static const RegisterID firstArgumentRegister = X86Registers::ecx;
++#endif
++
+ #if ENABLE(VALUE_PROFILER)
+         static const RegisterID bucketCounterRegister = X86Registers::r10;
+ #endif
+diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp
+index e4eb384..ac9d3d2 100644
+--- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp
++++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp
+@@ -264,6 +264,7 @@ static MacroAssemblerCodeRef nativeForGenerator(JSGlobalData* globalData, CodeSp
+     jit.peek(JSInterfaceJIT::regT1);
+     jit.emitPutToCallFrameHeader(JSInterfaceJIT::regT1, JSStack::ReturnPC);
+ 
++#if !OS(WINDOWS)
+     // Calling convention:      f(edi, esi, edx, ecx, ...);
+     // Host function signature: f(ExecState*);
+     jit.move(JSInterfaceJIT::callFrameRegister, X86Registers::edi);
+@@ -276,6 +277,21 @@ static MacroAssemblerCodeRef nativeForGenerator(JSGlobalData* globalData, CodeSp
+     jit.call(JSInterfaceJIT::Address(X86Registers::r9, executableOffsetToFunction));
+ 
+     jit.addPtr(JSInterfaceJIT::TrustedImm32(16 - sizeof(int64_t)), JSInterfaceJIT::stackPointerRegister);
++#else
++    // Calling convention:      f(ecx, edx, r8, r9, ...);
++    // Host function signature: f(ExecState*);
++    jit.move(JSInterfaceJIT::callFrameRegister, X86Registers::ecx);
++
++    // Leave space for the callee parameter home addresses and align the stack.
++    jit.subPtr(JSInterfaceJIT::TrustedImm32(4 * sizeof(int64_t) + 16 - sizeof(int64_t)), JSInterfaceJIT::stackPointerRegister);
++
++    jit.emitGetFromCallFrameHeaderPtr(JSStack::Callee, X86Registers::edx);
++    jit.loadPtr(JSInterfaceJIT::Address(X86Registers::edx, JSFunction::offsetOfExecutable()), X86Registers::r9);
++    jit.move(JSInterfaceJIT::regT0, JSInterfaceJIT::callFrameRegister); // Eagerly restore caller frame register to avoid loading from stack.
++    jit.call(JSInterfaceJIT::Address(X86Registers::r9, executableOffsetToFunction));
++
++    jit.addPtr(JSInterfaceJIT::TrustedImm32(4 * sizeof(int64_t) + 16 - sizeof(int64_t)), JSInterfaceJIT::stackPointerRegister);
++#endif
+ 
+ #elif CPU(ARM)
+     // Load caller frame's scope chain into this callframe so that whatever we call can
+diff --git a/Source/JavaScriptCore/yarr/YarrJIT.cpp b/Source/JavaScriptCore/yarr/YarrJIT.cpp
+index e4da1e8..319cc89 100644
+--- a/Source/JavaScriptCore/yarr/YarrJIT.cpp
++++ b/Source/JavaScriptCore/yarr/YarrJIT.cpp
+@@ -87,10 +87,20 @@ class YarrGenerator : private MacroAssembler {
+     static const RegisterID returnRegister = X86Registers::eax;
+     static const RegisterID returnRegister2 = X86Registers::edx;
+ #elif CPU(X86_64)
++#if !OS(WINDOWS)
+     static const RegisterID input = X86Registers::edi;
+     static const RegisterID index = X86Registers::esi;
+     static const RegisterID length = X86Registers::edx;
+     static const RegisterID output = X86Registers::ecx;
++#else
++    // If the return value doesn't fit in 64bits, its destination is pointed by rcx and the parameters are shifted.
++    // http://msdn.microsoft.com/en-us/library/7572ztz4.aspx
++    COMPILE_ASSERT(sizeof(MatchResult) > sizeof(void*), MatchResult_does_not_fit_in_64bits);
++    static const RegisterID input = X86Registers::edx;
++    static const RegisterID index = X86Registers::r8;
++    static const RegisterID length = X86Registers::r9;
++    static const RegisterID output = X86Registers::r10;
++#endif
+ 
+     static const RegisterID regT0 = X86Registers::eax;
+     static const RegisterID regT1 = X86Registers::ebx;
+@@ -2514,6 +2524,10 @@ class YarrGenerator : private MacroAssembler {
+         push(X86Registers::ebp);
+         move(stackPointerRegister, X86Registers::ebp);
+         push(X86Registers::ebx);
++#if OS(WINDOWS)
++        if (compileMode == IncludeSubpatterns)
++            loadPtr(Address(X86Registers::ebp, 6 * sizeof(void*)), output);
++#endif
+ #elif CPU(X86)
+         push(X86Registers::ebp);
+         move(stackPointerRegister, X86Registers::ebp);
+@@ -2552,6 +2566,12 @@ class YarrGenerator : private MacroAssembler {
+     void generateReturn()
+     {
+ #if CPU(X86_64)
++#if OS(WINDOWS)
++        // Store the return value in the allocated space pointed by rcx.
++        store64(returnRegister, Address(X86Registers::ecx));
++        store64(returnRegister2, Address(X86Registers::ecx, sizeof(void*)));
++        move(X86Registers::ecx, returnRegister);
++#endif
+         pop(X86Registers::ebx);
+         pop(X86Registers::ebp);
+ #elif CPU(X86)
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+index 2d90359..293ffeb 100644
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -756,12 +756,6 @@
+ #define ENABLE_JIT 0
+ #endif
+ 
+-/* JIT is not implemented for Windows 64-bit */
+-#if !defined(ENABLE_JIT) && OS(WINDOWS) && CPU(X86_64)
+-#define ENABLE_JIT 0
+-#define ENABLE_YARR_JIT 0
+-#endif
+-
+ #if !defined(ENABLE_JIT) && CPU(SH4) && PLATFORM(QT)
+ #define ENABLE_JIT 1
+ #endif
+@@ -906,7 +900,7 @@
+ /* Pick which allocator to use; we only need an executable allocator if the assembler is compiled in.
+    On x86-64 we use a single fixed mmap, on other platforms we mmap on demand. */
+ #if ENABLE(ASSEMBLER)
+-#if CPU(X86_64) || PLATFORM(IOS)
++#if CPU(X86_64) && !OS(WINDOWS) || PLATFORM(IOS)
+ #define ENABLE_EXECUTABLE_ALLOCATOR_FIXED 1
+ #else
+ #define ENABLE_EXECUTABLE_ALLOCATOR_DEMAND 1
+-- 
+1.8.2.1
+


More information about the scm-commits mailing list