[csw-devel] SF.net SVN: gar:[21906] csw/mgar/pkg/qt4-gcc/trunk
pfelecan at users.sourceforge.net
pfelecan at users.sourceforge.net
Wed Sep 11 16:57:36 CEST 2013
Revision: 21906
http://gar.svn.sourceforge.net/gar/?rev=21906&view=rev
Author: pfelecan
Date: 2013-09-11 14:57:34 +0000 (Wed, 11 Sep 2013)
Log Message:
-----------
qt4-gcc/trunk: this recipe builds WebKit; for the moment the related
libraries are not provided in their own packages.
Modified Paths:
--------------
csw/mgar/pkg/qt4-gcc/trunk/Makefile
Added Paths:
-----------
csw/mgar/pkg/qt4-gcc/trunk/files/0003-configure-must-use-bash.patch
csw/mgar/pkg/qt4-gcc/trunk/files/0004-webkit-port.patch
Modified: csw/mgar/pkg/qt4-gcc/trunk/Makefile
===================================================================
--- csw/mgar/pkg/qt4-gcc/trunk/Makefile 2013-09-11 12:14:25 UTC (rev 21905)
+++ csw/mgar/pkg/qt4-gcc/trunk/Makefile 2013-09-11 14:57:34 UTC (rev 21906)
@@ -17,7 +17,7 @@
LICENSE = README
-NOGITPATCH = 1
+#NOGITPATCH = 1
PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386
GARCOMPILER = GNU
@@ -33,12 +33,20 @@
PATCHFILES += mkspec-csw.patch
# bug in 4.8.1, see: https//bugreports.qt-project.org/browse/QTBUG-25281
# PATCHFILES += 0001-shapeinput.patch
+PATCHFILES += 0003-configure-must-use-bash.patch
+PATCHFILES += 0004-webkit-port.patch
BUILD_DEP_PKGS += CSWlibssl-dev
BUILD_DEP_PKGS += CSWunixodbc-dev
BUILD_DEP_PKGS += CSWpostgresql-dev
BUILD_DEP_PKGS += CSWfreetds-dev
BUILD_DEP_PKGS += CSWmysql-dev
+BUILD_DEP_PKGS += CSWcups-dev
+BUILD_DEP_PKGS += CSWgstplugins-dev
+BUILD_DEP_PKGS += CSWgstreamer-dev
+BUILD_DEP_PKGS += CSWlibiconv-dev
+BUILD_DEP_PKGS += CSWlibglib2-dev
+BUILD_DEP_PKGS += CSWlibxml2-dev
# http://wiki.opencsw.org/porting-faq#toc9
EXTRA_CFLAGS = -DSUN_OGL_NO_VERTEX_MACROS
@@ -93,26 +101,33 @@
CONFIGURE_ARGS += -qt-libpng
CONFIGURE_ARGS += -qt-libmng
CONFIGURE_ARGS += -qt-zlib
+CONFIGURE_ARGS += -xmlpatterns
+CONFIGURE_ARGS += -webkit
# compile error: error: 'QGtkStyle' has not been declared ??? since 10.12.2012
CONFIGURE_ARGS += -no-gtkstyle
+CONFIGURE_ARGS += -I$(includedir)/glib-2.0
+CONFIGURE_ARGS += -I$(libdir)/glib-2.0/include
CONFIGURE_ARGS += -I$(includedir)/gtk-2.0
+CONFIGURE_ARGS += -I$(includedir)/gstreamer-0.10
+CONFIGURE_ARGS += -I$(includedir)/libxml2
CONFIGURE_ARGS += -I/usr/X11/include
CONFIGURE_ARGS += -I/usr/X11/share/include
CONFIGURE_ARGS_sparc += -big-endian -host-big-endian
# not build for Sparc because core dump in designer, qmlplugindump, ..
-CONFIGURE_ARGS_sparc += -no-javascript-jit
+# not built for i386 because of cti_vm_throw referenced in JITStubs
+CONFIGURE_ARGS += -no-javascript-jit
CONFIGURE_ARGS_sparc += -no-script
# CONFIGURE_ARGS_i386 += -little-endian -host-big-endian
CONFIGURE_ARGS += $(CONFIGURE_ARGS_$(GARCH))
CONFIGURE_ARGS += $(CONFIGURE_ARGS_$(GARFLAVOR))
-# TEST_TARGET =
-
INSTALL_ROOT = $(DESTDIR)
EXTRA_INSTALL_EXPORTS = INSTALL_ROOT
+# skip this if you are not connected to as X Windows server
+TEST_SCRIPTS = custom
PACKAGES += CSWlibqtcore4
PKGFILES_CSWlibqtcore4 += $(call baseisadirs,$(libdir),libQtCore\.so\.4(\.\d+)*)
@@ -385,6 +400,11 @@
PATH:=:/opt/csw/gnu:$(PATH)
+libraries4test=$(shell pwd)/$(WORKSRC)/lib
+test-custom:
+ cd $(WORKSRC) && /usr/bin/env -i $(BUILD_ENV) LD_LIBRARY_PATH=$(libraries4test) && $(MAKE) -i -k -C $(OBJDIR) TESTRUNNER='LD_LIBRARY_PATH=$(libraries4test)' check
+ $(MAKECOOKIE)
+
# pre-reconfigure-modulated:
# cd $(WORKSRC) && gmake confclean
# @$(MAKECOOKIE)
@@ -392,10 +412,14 @@
# Ship private headers - ugly hack to build Qt Creator QML Designer;
# adapted from Debian rules
+# and
+# prune tests from the destination directory (we don't want them in
+# our packages isn't it?)
post-install:
gtar --directory=$(WORKSRC)/include/QtCore --create --file=- private | gtar --directory=$(DESTDIR)$(includedir)/QtCore --extract --file=-
gtar --directory=$(WORKSRC)/include/QtDeclarative --create --file=- private | gtar --directory=$(DESTDIR)$(includedir)/QtDeclarative --extract --file=-
gtar --directory=$(WORKSRC)/include/QtGui --create --file=- private | gtar --directory=$(DESTDIR)$(includedir)/QtGui --extract --file=-
gtar --directory=$(WORKSRC)/include/QtScript --create --file=- private | gtar --directory=$(DESTDIR)$(includedir)/QtScript --extract --file=-
cd $(WORKSRC) && gtar --create --file=- src/corelib/*/*_p.h src/declarative/*/*_p.h src/gui/*/*_p.h src/script/*/*_p.h | gtar --directory=$(DESTDIR)$(includedir) --extract --file=-
+ rm -rf $(DESTDIR)/$(prefix)/tests
$(MAKECOOKIE)
Added: csw/mgar/pkg/qt4-gcc/trunk/files/0003-configure-must-use-bash.patch
===================================================================
--- csw/mgar/pkg/qt4-gcc/trunk/files/0003-configure-must-use-bash.patch (rev 0)
+++ csw/mgar/pkg/qt4-gcc/trunk/files/0003-configure-must-use-bash.patch 2013-09-11 14:57:34 UTC (rev 21906)
@@ -0,0 +1,23 @@
+From 1f4c381cfd6306da028778639d4c3b5e9b634cf9 Mon Sep 17 00:00:00 2001
+From: Peter Felecan <pfelecan at opencsw.org>
+Date: Wed, 11 Sep 2013 12:01:49 +0200
+Subject: [PATCH] configure must use bash
+
+As a linuxism, but not only; anyway, without this, there is no webkit...
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 460b446..3e51ec7 100755
+--- a/configure
++++ b/configure
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#! /usr/bin/env bash
+ #############################################################################
+ ##
+ ## Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+--
+1.8.3.4
+
Added: csw/mgar/pkg/qt4-gcc/trunk/files/0004-webkit-port.patch
===================================================================
--- csw/mgar/pkg/qt4-gcc/trunk/files/0004-webkit-port.patch (rev 0)
+++ csw/mgar/pkg/qt4-gcc/trunk/files/0004-webkit-port.patch 2013-09-11 14:57:34 UTC (rev 21906)
@@ -0,0 +1,863 @@
+From a25f273e5af1653f7c7d7f1529fb9d11d26cd547 Mon Sep 17 00:00:00 2001
+From: Peter Felecan <pfelecan at opencsw.org>
+Date: Wed, 11 Sep 2013 12:19:17 +0200
+Subject: [PATCH] webkit port
+
+All this to port WebKit at least for Solaris 10. It is very possible that the
+pthread_getattr_np implementation must be tweaked for Solaris 11.
+---
+ .../Source/JavaScriptCore/API/JSValueRef.cpp | 2 +-
+ .../JavaScriptCore/bytecode/SamplingTool.cpp | 9 +-
+ .../JavaScriptCore/heap/MachineStackMarker.cpp | 162 ++++++++++++++++++++-
+ .../Source/JavaScriptCore/heap/MarkStackPosix.cpp | 4 +-
+ .../JavaScriptCore/runtime/DateConstructor.cpp | 28 ++--
+ .../JavaScriptCore/runtime/DateConversion.cpp | 2 +-
+ .../Source/JavaScriptCore/runtime/DateInstance.cpp | 4 +-
+ .../JavaScriptCore/runtime/DatePrototype.cpp | 10 +-
+ .../runtime/JSGlobalObjectFunctions.cpp | 6 +-
+ .../Source/JavaScriptCore/runtime/JSValue.cpp | 2 +-
+ .../Source/JavaScriptCore/runtime/MathObject.cpp | 6 +-
+ .../JavaScriptCore/runtime/NumberPrototype.cpp | 8 +-
+ .../webkit/Source/JavaScriptCore/wtf/DateMath.cpp | 7 +-
+ .../Source/JavaScriptCore/wtf/PageAllocation.h | 2 +-
+ .../Source/JavaScriptCore/wtf/RandomNumberSeed.h | 6 +-
+ .../webkit/Source/JavaScriptCore/wtf/dtoa.cpp | 6 +-
+ src/3rdparty/webkit/Source/WebCore/WebCore.pri | 2 +-
+ .../WebCore/bindings/js/JSDataViewCustom.cpp | 2 +-
+ .../bindings/js/JSHTMLOptionsCollectionCustom.cpp | 2 +-
+ .../WebCore/bindings/js/JSWebKitPointCustom.cpp | 4 +-
+ .../webkit/Source/WebCore/css/WebKitCSSMatrix.cpp | 32 ++--
+ .../WebCore/html/canvas/IntegralTypedArrayBase.h | 2 +-
+ .../webkit/Source/WebCore/page/DOMWindow.cpp | 8 +-
+ .../webkit/Source/WebCore/page/WindowFeatures.cpp | 2 +-
+ .../webkit/Source/WebCore/xml/XPathFunctions.cpp | 6 +-
+ .../webkit/Source/WebCore/xml/XPathValue.cpp | 4 +-
+ 26 files changed, 248 insertions(+), 80 deletions(-)
+
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/API/JSValueRef.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/API/JSValueRef.cpp
+index e2626be..e3c857e 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/API/JSValueRef.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/API/JSValueRef.cpp
+@@ -216,7 +216,7 @@ JSValueRef JSValueMakeNumber(JSContextRef ctx, double value)
+ // Our JSValue representation relies on a standard bit pattern for NaN. NaNs
+ // generated internally to JavaScriptCore naturally have that representation,
+ // but an external NaN might not.
+- if (isnan(value))
++ if (std::isnan(value))
+ value = NaN;
+
+ return toRef(exec, jsNumber(value));
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/bytecode/SamplingTool.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/bytecode/SamplingTool.cpp
+index f47e698..edfd600 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/bytecode/SamplingTool.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/bytecode/SamplingTool.cpp
+@@ -34,7 +34,7 @@
+ #include "Opcode.h"
+
+ #if !OS(WINDOWS)
+-#include <unistd.h>
++// #include <unistd.h>
+ #endif
+
+ namespace JSC {
+@@ -103,9 +103,14 @@ static void sleepForMicroseconds(unsigned us)
+
+ #else
+
++extern "C"
++{
++ int usleep(useconds_t useconds);
++}
++
+ static void sleepForMicroseconds(unsigned us)
+ {
+- usleep(us);
++ usleep(us);
+ }
+
+ #endif
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+index 01d77d6..a420dee 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+@@ -61,7 +61,7 @@
+ #if !OS(HAIKU)
+ #include <sys/mman.h>
+ #endif
+-#include <unistd.h>
++// #include <unistd.h>
+
+ #if OS(SOLARIS)
+ #include <thread.h>
+@@ -341,6 +341,166 @@ typedef pthread_attr_t PlatformThreadRegisters;
+ #error Need a thread register struct for this platform
+ #endif
+
++#include <stdlib.h>
++#include <unistd.h>
++#include <stdio.h>
++#include <string.h>
++#include <errno.h>
++#include <pthread.h>
++#include <thread.h>
++#include <sched.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <procfs.h>
++
++#define PTHREAD_CREATE_NODAEMON_NP 0
++#define PTHREAD_CREATE_DAEMON_NP THR_DAEMON
++
++typedef struct _thrattr {
++ size_t stksize; // pr_stkbase lwpstatus_pr_ustack
++ void *stkaddr; // pr_stksize lwpstatus_pr_ustack
++ int detachstate; // {PTHREAD_CREATE_JOINABLE, PTHREAD_CREATED_DETACHED}
++ // from /proc/self/lwp/tid/lwpstatus.pr_flags PR_DETACH
++ int daemonstate; // {PTHREAD_CREATE_DAEMON_NP, }
++ // from /proc/self/lwp/tid/lwpstatus.pr_flags PR_DAEMON
++ int scope; // {PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM}
++ int prio; // lwpsinfo.pr_pri
++ int policy; // {SCHED_OTHER, SCHED_FIFO, SCHED_RR}
++ /* these are reversed in Solaris 11 TODO: conditionally define */
++ size_t guardsize;
++ int inherit; // {PTHREAD_EXPLICIT_SCHED, PTHREAD_INHERIT_SCHED}
++} thrattr_t;
++
++static const char* prefix = "/proc/self/lwp/";
++static const char* prefixFormat = "%s%lu/lwp%s";
++
++static int getStatus(pthread_t thread, lwpstatus_t *status)
++{
++ static const char* name = "status";
++ int rc = 0;
++ if(status != (lwpstatus_t*)0)
++ {
++ unsigned int length = snprintf((char*)0, 0, prefixFormat, prefix, thread, name) + 1;
++ char* path = (char*)malloc(sizeof(char) * length);
++ if(path != (char*)0)
++ {
++ snprintf(path, length, prefixFormat, prefix, thread, name);
++ int fd = open(path, O_RDONLY);
++ if(fd != -1)
++ {
++ ssize_t size = read(fd, status, sizeof(lwpstatus_t));
++ switch(size)
++ {
++ case -1:
++ rc = errno;
++ break;
++ case sizeof(lwpstatus_t):
++ break;
++ default:
++ rc = ENODATA;
++ break;
++ }
++ close(fd);
++ }
++ else
++ {
++ rc = (errno) ? errno : EIO;
++ }
++ free(path);
++ }
++ else
++ {
++ rc = (errno) ? errno : EIO;
++ }
++ }
++ else
++ {
++ rc = EINVAL;
++ }
++ return(rc);
++}
++
++static int getInfo(pthread_t thread, lwpsinfo_t *info)
++{
++ static const char* name = "sinfo";
++ int rc = 0;
++ if(info != (lwpsinfo_t*)0)
++ {
++ unsigned int length = snprintf((char*)0, 0, prefixFormat, prefix, thread, name) + 1;
++ char* path = (char*)malloc(sizeof(char) * length);
++ if(path != (char*)0)
++ {
++ snprintf(path, length, prefixFormat, prefix, thread, name);
++ int fd = open(path, O_RDONLY);
++ if(fd != -1)
++ {
++ ssize_t size = read(fd, info, sizeof(lwpsinfo_t));
++ switch(size)
++ {
++ case -1:
++ rc = errno;
++ break;
++ case sizeof(lwpsinfo_t):
++ break;
++ default:
++ rc = ENODATA;
++ break;
++ }
++ close(fd);
++ }
++ else
++ {
++ rc = (errno) ? errno : EIO;
++ }
++ free(path);
++ }
++ else
++ {
++ rc = (errno) ? errno : EIO;
++ }
++ }
++ else
++ {
++ rc = EINVAL;
++ }
++ return(rc);
++}
++
++static int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)
++{
++ int rc = 0;
++ if(attr != (pthread_attr_t*)0)
++ {
++ lwpstatus_t status;
++ lwpsinfo_t info;
++ if(getStatus(thread, &status) == 0 && getInfo(thread, &info) == 0)
++ {
++ thrattr_t *ap = (thrattr_t *)attr->__pthread_attrp;
++ stack_t* stack = (stack_t*)status.pr_ustack;
++ ap->stksize = stack->ss_size;
++ ap->stkaddr = stack->ss_sp + stack->ss_size; /* from high to low */
++ ap->detachstate = status.pr_flags & PR_DETACH;
++ ap->daemonstate = status.pr_flags & PR_DAEMON;
++ /* scope not needed*/
++ ap->prio = info.pr_pri;
++ /* policy not needed */
++ /* inherit not needed */
++ /* guard size not needed */
++ }
++ else
++ {
++ rc = (errno) ? errno : EIO;
++ }
++ }
++ else
++ {
++ rc = EINVAL;
++ }
++ return(rc);
++}
++
++
+ static size_t getPlatformThreadRegisters(const PlatformThread& platformThread, PlatformThreadRegisters& regs)
+ {
+ #if OS(DARWIN)
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/heap/MarkStackPosix.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/heap/MarkStackPosix.cpp
+index 2a5b298..3ca4c05 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/heap/MarkStackPosix.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/heap/MarkStackPosix.cpp
+@@ -28,7 +28,9 @@
+
+ #if OS(UNIX) && !OS(SYMBIAN)
+
+-#include <unistd.h>
++extern "C" {
++ int getpagesize(void);
++}
+ #include <sys/mman.h>
+
+ namespace JSC {
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConstructor.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConstructor.cpp
+index 9bbb688..01abf7c 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConstructor.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConstructor.cpp
+@@ -98,13 +98,13 @@ JSObject* constructDate(ExecState* exec, JSGlobalObject* globalObject, const Arg
+ args.at(5).toNumber(exec),
+ args.at(6).toNumber(exec)
+ };
+- if (isnan(doubleArguments[0])
+- || isnan(doubleArguments[1])
+- || (numArgs >= 3 && isnan(doubleArguments[2]))
+- || (numArgs >= 4 && isnan(doubleArguments[3]))
+- || (numArgs >= 5 && isnan(doubleArguments[4]))
+- || (numArgs >= 6 && isnan(doubleArguments[5]))
+- || (numArgs >= 7 && isnan(doubleArguments[6])))
++ if (std::isnan(doubleArguments[0])
++ || std::isnan(doubleArguments[1])
++ || (numArgs >= 3 && std::isnan(doubleArguments[2]))
++ || (numArgs >= 4 && std::isnan(doubleArguments[3]))
++ || (numArgs >= 5 && std::isnan(doubleArguments[4]))
++ || (numArgs >= 6 && std::isnan(doubleArguments[5]))
++ || (numArgs >= 7 && std::isnan(doubleArguments[6])))
+ value = NaN;
+ else {
+ GregorianDateTime t;
+@@ -178,13 +178,13 @@ static EncodedJSValue JSC_HOST_CALL dateUTC(ExecState* exec)
+ exec->argument(6).toNumber(exec)
+ };
+ int n = exec->argumentCount();
+- if (isnan(doubleArguments[0])
+- || isnan(doubleArguments[1])
+- || (n >= 3 && isnan(doubleArguments[2]))
+- || (n >= 4 && isnan(doubleArguments[3]))
+- || (n >= 5 && isnan(doubleArguments[4]))
+- || (n >= 6 && isnan(doubleArguments[5]))
+- || (n >= 7 && isnan(doubleArguments[6])))
++ if (std::isnan(doubleArguments[0])
++ || std::isnan(doubleArguments[1])
++ || (n >= 3 && std::isnan(doubleArguments[2]))
++ || (n >= 4 && std::isnan(doubleArguments[3]))
++ || (n >= 5 && std::isnan(doubleArguments[4]))
++ || (n >= 6 && std::isnan(doubleArguments[5]))
++ || (n >= 7 && std::isnan(doubleArguments[6])))
+ return JSValue::encode(jsNaN());
+
+ GregorianDateTime t;
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConversion.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConversion.cpp
+index 1418876..3560ef6 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConversion.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateConversion.cpp
+@@ -60,7 +60,7 @@ double parseDate(ExecState* exec, const UString &date)
+ if (date == exec->globalData().cachedDateString)
+ return exec->globalData().cachedDateStringValue;
+ double value = parseES5DateFromNullTerminatedCharacters(date.utf8().data());
+- if (isnan(value))
++ if (std::isnan(value))
+ value = parseDateFromNullTerminatedCharacters(exec, date.utf8().data());
+ exec->globalData().cachedDateString = date;
+ exec->globalData().cachedDateStringValue = value;
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateInstance.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateInstance.cpp
+index d8ca072..b8df6f6 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateInstance.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DateInstance.cpp
+@@ -51,7 +51,7 @@ DateInstance::DateInstance(ExecState* exec, Structure* structure, double time)
+ const GregorianDateTime* DateInstance::calculateGregorianDateTime(ExecState* exec) const
+ {
+ double milli = internalNumber();
+- if (isnan(milli))
++ if (std::isnan(milli))
+ return 0;
+
+ if (!m_data)
+@@ -67,7 +67,7 @@ const GregorianDateTime* DateInstance::calculateGregorianDateTime(ExecState* exe
+ const GregorianDateTime* DateInstance::calculateGregorianDateTimeUTC(ExecState* exec) const
+ {
+ double milli = internalNumber();
+- if (isnan(milli))
++ if (std::isnan(milli))
+ return 0;
+
+ if (!m_data)
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DatePrototype.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DatePrototype.cpp
+index 444fa98..cec40cc 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DatePrototype.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/DatePrototype.cpp
+@@ -799,7 +799,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFuncGetMilliSeconds(ExecState* exec)
+
+ DateInstance* thisDateObj = asDateInstance(thisValue);
+ double milli = thisDateObj->internalNumber();
+- if (isnan(milli))
++ if (std::isnan(milli))
+ return JSValue::encode(jsNaN());
+
+ double secs = floor(milli / msPerSecond);
+@@ -815,7 +815,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFuncGetUTCMilliseconds(ExecState* exec)
+
+ DateInstance* thisDateObj = asDateInstance(thisValue);
+ double milli = thisDateObj->internalNumber();
+- if (isnan(milli))
++ if (std::isnan(milli))
+ return JSValue::encode(jsNaN());
+
+ double secs = floor(milli / msPerSecond);
+@@ -860,7 +860,7 @@ static EncodedJSValue setNewValueFromTimeArgs(ExecState* exec, int numArgsToUse,
+ DateInstance* thisDateObj = asDateInstance(thisValue);
+ double milli = thisDateObj->internalNumber();
+
+- if (!exec->argumentCount() || isnan(milli)) {
++ if (!exec->argumentCount() || std::isnan(milli)) {
+ JSValue result = jsNaN();
+ thisDateObj->setInternalValue(exec->globalData(), result);
+ return JSValue::encode(result);
+@@ -905,7 +905,7 @@ static EncodedJSValue setNewValueFromDateArgs(ExecState* exec, int numArgsToUse,
+ double ms = 0;
+
+ GregorianDateTime gregorianDateTime;
+- if (numArgsToUse == 3 && isnan(milli))
++ if (numArgsToUse == 3 && std::isnan(milli))
+ msToGregorianDateTime(exec, 0, true, gregorianDateTime);
+ else {
+ ms = milli - floor(milli / msPerSecond) * msPerSecond;
+@@ -1029,7 +1029,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetYear(ExecState* exec)
+ double ms = 0;
+
+ GregorianDateTime gregorianDateTime;
+- if (isnan(milli))
++ if (std::isnan(milli))
+ // Based on ECMA 262 B.2.5 (setYear)
+ // the time must be reset to +0 if it is NaN.
+ msToGregorianDateTime(exec, 0, true, gregorianDateTime);
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
+index f0da773..9651888 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
+@@ -472,7 +472,7 @@ EncodedJSValue JSC_HOST_CALL globalFuncParseInt(ExecState* exec)
+ double d = value.asDouble();
+ if (isfinite(d))
+ return JSValue::encode(jsNumber((d > 0) ? floor(d) : ceil(d)));
+- if (isnan(d) || isinf(d))
++ if (std::isnan(d) || isinf(d))
+ return JSValue::encode(jsNaN());
+ return JSValue::encode(jsNumber(0));
+ }
+@@ -487,13 +487,13 @@ EncodedJSValue JSC_HOST_CALL globalFuncParseFloat(ExecState* exec)
+
+ EncodedJSValue JSC_HOST_CALL globalFuncIsNaN(ExecState* exec)
+ {
+- return JSValue::encode(jsBoolean(isnan(exec->argument(0).toNumber(exec))));
++ return JSValue::encode(jsBoolean(std::isnan(exec->argument(0).toNumber(exec))));
+ }
+
+ EncodedJSValue JSC_HOST_CALL globalFuncIsFinite(ExecState* exec)
+ {
+ double n = exec->argument(0).toNumber(exec);
+- return JSValue::encode(jsBoolean(!isnan(n) && !isinf(n)));
++ return JSValue::encode(jsBoolean(!std::isnan(n) && !isinf(n)));
+ }
+
+ EncodedJSValue JSC_HOST_CALL globalFuncDecodeURI(ExecState* exec)
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSValue.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSValue.cpp
+index d3ee89e..aa0c332 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSValue.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/JSValue.cpp
+@@ -44,7 +44,7 @@ double JSValue::toInteger(ExecState* exec) const
+ if (isInt32())
+ return asInt32();
+ double d = toNumber(exec);
+- return isnan(d) ? 0.0 : trunc(d);
++ return std::isnan(d) ? 0.0 : trunc(d);
+ }
+
+ double JSValue::toIntegerPreserveNaN(ExecState* exec) const
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/MathObject.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/MathObject.cpp
+index 52bd76a..3858e38 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/MathObject.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/MathObject.cpp
+@@ -173,7 +173,7 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncMax(ExecState* exec)
+ double result = -Inf;
+ for (unsigned k = 0; k < argsCount; ++k) {
+ double val = exec->argument(k).toNumber(exec);
+- if (isnan(val)) {
++ if (std::isnan(val)) {
+ result = NaN;
+ break;
+ }
+@@ -189,7 +189,7 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncMin(ExecState* exec)
+ double result = +Inf;
+ for (unsigned k = 0; k < argsCount; ++k) {
+ double val = exec->argument(k).toNumber(exec);
+- if (isnan(val)) {
++ if (std::isnan(val)) {
+ result = NaN;
+ break;
+ }
+@@ -206,7 +206,7 @@ EncodedJSValue JSC_HOST_CALL mathProtoFuncPow(ExecState* exec)
+ double arg = exec->argument(0).toNumber(exec);
+ double arg2 = exec->argument(1).toNumber(exec);
+
+- if (isnan(arg2))
++ if (std::isnan(arg2))
+ return JSValue::encode(jsNaN());
+ if (isinf(arg2) && fabs(arg) == 1)
+ return JSValue::encode(jsNaN());
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/NumberPrototype.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/NumberPrototype.cpp
+index 24532dd..765d156 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/runtime/NumberPrototype.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/runtime/NumberPrototype.cpp
+@@ -110,7 +110,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToExponential(ExecState* exec)
+ return throwVMError(exec, createRangeError(exec, "toExponential() argument must be between 0 and 20"));
+
+ // Handle NaN and Infinity.
+- if (isnan(x) || isinf(x))
++ if (std::isnan(x) || isinf(x))
+ return JSValue::encode(jsString(exec, UString::number(x)));
+
+ // Round if the argument is not undefined, always format as exponential.
+@@ -149,7 +149,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToFixed(ExecState* exec)
+
+ // The check above will return false for NaN or Infinity, these will be
+ // handled by numberToString.
+- ASSERT(!isnan(x) && !isinf(x));
++ ASSERT(!std::isnan(x) && !isinf(x));
+
+ // Convert to decimal with rounding, and format as decimal.
+ NumberToStringBuffer buffer;
+@@ -184,7 +184,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToPrecision(ExecState* exec)
+ return JSValue::encode(jsString(exec, UString::number(x)));
+
+ // Handle NaN and Infinity.
+- if (isnan(x) || isinf(x))
++ if (std::isnan(x) || isinf(x))
+ return JSValue::encode(jsString(exec, UString::number(x)));
+
+ // Convert to decimal with rounding.
+@@ -241,7 +241,7 @@ EncodedJSValue JSC_HOST_CALL numberProtoFuncToString(ExecState* exec)
+ char s[2048 + 3];
+ const char* lastCharInString = s + sizeof(s) - 1;
+ double x = v.uncheckedGetNumber();
+- if (isnan(x) || isinf(x))
++ if (std::isnan(x) || isinf(x))
+ return JSValue::encode(jsString(exec, UString::number(x)));
+
+ bool isNegative = x < 0.0;
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/DateMath.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/DateMath.cpp
+index b181ee2..723d888 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/DateMath.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/DateMath.cpp
+@@ -91,7 +91,6 @@
+ #include <stdint.h>
+ #include <time.h>
+
+-
+ #if HAVE(ERRNO_H)
+ #include <errno.h>
+ #endif
+@@ -998,7 +997,7 @@ double parseDateFromNullTerminatedCharacters(const char* dateString)
+ bool haveTZ;
+ int offset;
+ double ms = parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
+- if (isnan(ms))
++ if (std::isnan(ms))
+ return NaN;
+
+ // fall back to local timezone
+@@ -1092,7 +1091,7 @@ static double getDSTOffset(ExecState* exec, double ms, double utcOffset)
+ double getUTCOffset(ExecState* exec)
+ {
+ double utcOffset = exec->globalData().cachedUTCOffset;
+- if (!isnan(utcOffset))
++ if (!std::isnan(utcOffset))
+ return utcOffset;
+ exec->globalData().cachedUTCOffset = calculateUTCOffset();
+ return exec->globalData().cachedUTCOffset;
+@@ -1144,7 +1143,7 @@ double parseDateFromNullTerminatedCharacters(ExecState* exec, const char* dateSt
+ bool haveTZ;
+ int offset;
+ double ms = WTF::parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
+- if (isnan(ms))
++ if (std::isnan(ms))
+ return NaN;
+
+ // fall back to local timezone
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/PageAllocation.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/PageAllocation.h
+index ad3d217..a6da78d 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/PageAllocation.h
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/PageAllocation.h
+@@ -58,7 +58,7 @@
+
+ #if HAVE(MMAP)
+ #include <sys/mman.h>
+-#include <unistd.h>
++/* #include <unistd.h> */
+ #endif
+
+ namespace WTF {
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/RandomNumberSeed.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/RandomNumberSeed.h
+index 0703abf..dcb5388 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/RandomNumberSeed.h
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/RandomNumberSeed.h
+@@ -35,7 +35,9 @@
+
+ #if OS(UNIX)
+ #include <sys/types.h>
+-#include <unistd.h>
++extern "C"{
++pid_t getpid(void);
++}
+ #endif
+
+ #if USE(MERSENNE_TWISTER_19937)
+@@ -62,7 +64,7 @@ inline void initializeRandomNumberGenerator()
+ // srandomdev is not guaranteed to exist on linux so we use this poor seed, this should be improved
+ timeval time;
+ gettimeofday(&time, 0);
+- srandom(static_cast<unsigned>(time.tv_usec * getpid()));
++ srandom(static_cast<unsigned>(time.tv_usec * ::getpid()));
+ #else
+ srand(static_cast<unsigned>(time(0)));
+ #endif
+diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/dtoa.cpp b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/dtoa.cpp
+index b162543..800a0a7 100644
+--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/dtoa.cpp
++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/dtoa.cpp
+@@ -1317,7 +1317,7 @@ void dtoa(DtoaBuffer result, double dd, int ndigits, bool& signOut, int& exponen
+ // roundingNone only allowed (only sensible?) with leftright set.
+ ASSERT(!roundingNone || leftright);
+
+- ASSERT(!isnan(dd) && !isinf(dd));
++ ASSERT(!std::isnan(dd) && !isinf(dd));
+
+ int bbits, b2, b5, be, dig, i, ieps, ilim = 0, ilim0, ilim1 = 0,
+ j, j1, k, k0, k_check, m2, m5, s2, s5,
+@@ -1811,8 +1811,8 @@ static ALWAYS_INLINE void copyAsciiToUTF16(UChar* next, const char* src, unsigne
+ unsigned numberToString(double d, NumberToStringBuffer buffer)
+ {
+ // Handle NaN and Infinity.
+- if (isnan(d) || isinf(d)) {
+- if (isnan(d)) {
++ if (std::isnan(d) || isinf(d)) {
++ if (std::isnan(d)) {
+ copyAsciiToUTF16(buffer, "NaN", 3);
+ return 3;
+ }
+diff --git a/src/3rdparty/webkit/Source/WebCore/WebCore.pri b/src/3rdparty/webkit/Source/WebCore/WebCore.pri
+index d83eec7..25e6dd5 100644
+--- a/src/3rdparty/webkit/Source/WebCore/WebCore.pri
++++ b/src/3rdparty/webkit/Source/WebCore/WebCore.pri
+@@ -326,7 +326,7 @@ mac {
+ }
+
+ unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections -fdata-sections
+-unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections
++unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,-z,ignore
+ linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+
+ unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
+diff --git a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSDataViewCustom.cpp b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSDataViewCustom.cpp
+index 48d56d8..c49baf4 100644
+--- a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSDataViewCustom.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSDataViewCustom.cpp
+@@ -89,7 +89,7 @@ static JSValue getDataViewMember(ExecState* exec, DataView* imp, DataViewAccessT
+ case AccessDataViewMemberAsFloat32:
+ case AccessDataViewMemberAsFloat64: {
+ double value = (type == AccessDataViewMemberAsFloat32) ? imp->getFloat32(byteOffset, littleEndian, ec) : imp->getFloat64(byteOffset, littleEndian, ec);
+- result = isnan(value) ? JSValue(nonInlineNaN()) : jsNumber(value);
++ result = std::isnan(value) ? JSValue(nonInlineNaN()) : jsNumber(value);
+ break;
+ } default:
+ ASSERT_NOT_REACHED();
+diff --git a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
+index d169bc4..d356fb9 100644
+--- a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
+@@ -47,7 +47,7 @@ void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue value)
+ ExceptionCode ec = 0;
+ unsigned newLength = 0;
+ double lengthValue = value.toNumber(exec);
+- if (!isnan(lengthValue) && !isinf(lengthValue)) {
++ if (!std::isnan(lengthValue) && !isinf(lengthValue)) {
+ if (lengthValue < 0.0)
+ ec = INDEX_SIZE_ERR;
+ else if (lengthValue > static_cast<double>(UINT_MAX))
+diff --git a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSWebKitPointCustom.cpp b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSWebKitPointCustom.cpp
+index e1b20ce..734242e 100644
+--- a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSWebKitPointCustom.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSWebKitPointCustom.cpp
+@@ -41,9 +41,9 @@ EncodedJSValue JSC_HOST_CALL JSWebKitPointConstructor::constructJSWebKitPoint(Ex
+ if (exec->argumentCount() >= 2) {
+ x = static_cast<float>(exec->argument(0).toNumber(exec));
+ y = static_cast<float>(exec->argument(1).toNumber(exec));
+- if (isnan(x))
++ if (std::isnan(x))
+ x = 0;
+- if (isnan(y))
++ if (std::isnan(y))
+ y = 0;
+ }
+ return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), WebKitPoint::create(x, y))));
+diff --git a/src/3rdparty/webkit/Source/WebCore/css/WebKitCSSMatrix.cpp b/src/3rdparty/webkit/Source/WebCore/css/WebKitCSSMatrix.cpp
+index 26fe286..776366b 100644
+--- a/src/3rdparty/webkit/Source/WebCore/css/WebKitCSSMatrix.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/css/WebKitCSSMatrix.cpp
+@@ -105,53 +105,53 @@ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::inverse(ExceptionCode& ec) const
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::translate(double x, double y, double z) const
+ {
+- if (isnan(x))
++ if (std::isnan(x))
+ x = 0;
+- if (isnan(y))
++ if (std::isnan(y))
+ y = 0;
+- if (isnan(z))
++ if (std::isnan(z))
+ z = 0;
+ return WebKitCSSMatrix::create(TransformationMatrix(m_matrix).translate3d(x, y, z));
+ }
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::scale(double scaleX, double scaleY, double scaleZ) const
+ {
+- if (isnan(scaleX))
++ if (std::isnan(scaleX))
+ scaleX = 1;
+- if (isnan(scaleY))
++ if (std::isnan(scaleY))
+ scaleY = scaleX;
+- if (isnan(scaleZ))
++ if (std::isnan(scaleZ))
+ scaleZ = 1;
+ return WebKitCSSMatrix::create(TransformationMatrix(m_matrix).scale3d(scaleX, scaleY, scaleZ));
+ }
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::rotate(double rotX, double rotY, double rotZ) const
+ {
+- if (isnan(rotX))
++ if (std::isnan(rotX))
+ rotX = 0;
+
+- if (isnan(rotY) && isnan(rotZ)) {
++ if (std::isnan(rotY) && std::isnan(rotZ)) {
+ rotZ = rotX;
+ rotX = 0;
+ rotY = 0;
+ }
+
+- if (isnan(rotY))
++ if (std::isnan(rotY))
+ rotY = 0;
+- if (isnan(rotZ))
++ if (std::isnan(rotZ))
+ rotZ = 0;
+ return WebKitCSSMatrix::create(TransformationMatrix(m_matrix).rotate3d(rotX, rotY, rotZ));
+ }
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::rotateAxisAngle(double x, double y, double z, double angle) const
+ {
+- if (isnan(x))
++ if (std::isnan(x))
+ x = 0;
+- if (isnan(y))
++ if (std::isnan(y))
+ y = 0;
+- if (isnan(z))
++ if (std::isnan(z))
+ z = 0;
+- if (isnan(angle))
++ if (std::isnan(angle))
+ angle = 0;
+ if (x == 0 && y == 0 && z == 0)
+ z = 1;
+@@ -160,14 +160,14 @@ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::rotateAxisAngle(double x, double y,
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::skewX(double angle) const
+ {
+- if (isnan(angle))
++ if (std::isnan(angle))
+ angle = 0;
+ return WebKitCSSMatrix::create(TransformationMatrix(m_matrix).skewX(angle));
+ }
+
+ PassRefPtr<WebKitCSSMatrix> WebKitCSSMatrix::skewY(double angle) const
+ {
+- if (isnan(angle))
++ if (std::isnan(angle))
+ angle = 0;
+ return WebKitCSSMatrix::create(TransformationMatrix(m_matrix).skewY(angle));
+ }
+diff --git a/src/3rdparty/webkit/Source/WebCore/html/canvas/IntegralTypedArrayBase.h b/src/3rdparty/webkit/Source/WebCore/html/canvas/IntegralTypedArrayBase.h
+index 0b26844..7f534cd 100644
+--- a/src/3rdparty/webkit/Source/WebCore/html/canvas/IntegralTypedArrayBase.h
++++ b/src/3rdparty/webkit/Source/WebCore/html/canvas/IntegralTypedArrayBase.h
+@@ -43,7 +43,7 @@ class IntegralTypedArrayBase : public TypedArrayBase<T> {
+ {
+ if (index >= TypedArrayBase<T>::m_length)
+ return;
+- if (isnan(value)) // Clamp NaN to 0
++ if (std::isnan(value)) // Clamp NaN to 0
+ value = 0;
+ // The double cast is necessary to get the correct wrapping
+ // for out-of-range values with Int32Array and Uint32Array.
+diff --git a/src/3rdparty/webkit/Source/WebCore/page/DOMWindow.cpp b/src/3rdparty/webkit/Source/WebCore/page/DOMWindow.cpp
+index a86c1af..ba482bf 100644
+--- a/src/3rdparty/webkit/Source/WebCore/page/DOMWindow.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/page/DOMWindow.cpp
+@@ -333,13 +333,13 @@ void DOMWindow::adjustWindowRect(const FloatRect& screen, FloatRect& window, con
+ ASSERT(isfinite(window.height()));
+
+ // Update window values if new requested values are not NaN.
+- if (!isnan(pendingChanges.x()))
++ if (!std::isnan(pendingChanges.x()))
+ window.setX(pendingChanges.x());
+- if (!isnan(pendingChanges.y()))
++ if (!std::isnan(pendingChanges.y()))
+ window.setY(pendingChanges.y());
+- if (!isnan(pendingChanges.width()))
++ if (!std::isnan(pendingChanges.width()))
+ window.setWidth(pendingChanges.width());
+- if (!isnan(pendingChanges.height()))
++ if (!std::isnan(pendingChanges.height()))
+ window.setHeight(pendingChanges.height());
+
+ // Resize the window to between 100 and the screen width and height.
+diff --git a/src/3rdparty/webkit/Source/WebCore/page/WindowFeatures.cpp b/src/3rdparty/webkit/Source/WebCore/page/WindowFeatures.cpp
+index 7564152..cea8c99 100644
+--- a/src/3rdparty/webkit/Source/WebCore/page/WindowFeatures.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/page/WindowFeatures.cpp
+@@ -225,7 +225,7 @@ float WindowFeatures::floatFeature(const DialogFeaturesMap& features, const char
+ // return the number 0 and false for ok. But "0q" should yield the minimum rather than the default.
+ bool ok;
+ double parsedNumber = it->second.toDouble(&ok);
+- if ((parsedNumber == 0 && !ok) || isnan(parsedNumber))
++ if ((parsedNumber == 0 && !ok) || std::isnan(parsedNumber))
+ return defaultValue;
+ if (parsedNumber < min || max <= min)
+ return min;
+diff --git a/src/3rdparty/webkit/Source/WebCore/xml/XPathFunctions.cpp b/src/3rdparty/webkit/Source/WebCore/xml/XPathFunctions.cpp
+index 1807172..06c6b93 100644
+--- a/src/3rdparty/webkit/Source/WebCore/xml/XPathFunctions.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/xml/XPathFunctions.cpp
+@@ -507,14 +507,14 @@ Value FunSubstring::evaluate() const
+ {
+ String s = arg(0)->evaluate().toString();
+ double doublePos = arg(1)->evaluate().toNumber();
+- if (isnan(doublePos))
++ if (std::isnan(doublePos))
+ return "";
+ long pos = static_cast<long>(FunRound::round(doublePos));
+ bool haveLength = argCount() == 3;
+ long len = -1;
+ if (haveLength) {
+ double doubleLen = arg(2)->evaluate().toNumber();
+- if (isnan(doubleLen))
++ if (std::isnan(doubleLen))
+ return "";
+ len = static_cast<long>(FunRound::round(doubleLen));
+ }
+@@ -664,7 +664,7 @@ Value FunCeiling::evaluate() const
+
+ double FunRound::round(double val)
+ {
+- if (!isnan(val) && !isinf(val)) {
++ if (!std::isnan(val) && !isinf(val)) {
+ if (signbit(val) && val >= -0.5)
+ val *= 0; // negative zero
+ else
+diff --git a/src/3rdparty/webkit/Source/WebCore/xml/XPathValue.cpp b/src/3rdparty/webkit/Source/WebCore/xml/XPathValue.cpp
+index 29e211e..5b7c518 100644
+--- a/src/3rdparty/webkit/Source/WebCore/xml/XPathValue.cpp
++++ b/src/3rdparty/webkit/Source/WebCore/xml/XPathValue.cpp
+@@ -76,7 +76,7 @@ bool Value::toBoolean() const
+ case BooleanValue:
+ return m_bool;
+ case NumberValue:
+- return m_number != 0 && !isnan(m_number);
++ return m_number != 0 && !std::isnan(m_number);
+ case StringValue:
+ return !m_data->m_string.isEmpty();
+ }
+@@ -125,7 +125,7 @@ String Value::toString() const
+ case StringValue:
+ return m_data->m_string;
+ case NumberValue:
+- if (isnan(m_number))
++ if (std::isnan(m_number))
+ return "NaN";
+ if (m_number == 0)
+ return "0";
+--
+1.8.3.4
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list