[arch-commits] Commit in 0ad/repos (8 files)
Evangelos Foutras
foutrelis at archlinux.org
Mon Sep 28 15:47:34 UTC 2015
Date: Monday, September 28, 2015 @ 17:47:33
Author: foutrelis
Revision: 142082
archrelease: copy trunk to community-staging-i686, community-staging-x86_64
Added:
0ad/repos/community-staging-i686/
0ad/repos/community-staging-i686/9f24795fa4935aa1adcdea8c1008541011b3964f.patch
(from rev 142081, 0ad/trunk/9f24795fa4935aa1adcdea8c1008541011b3964f.patch)
0ad/repos/community-staging-i686/PKGBUILD
(from rev 142081, 0ad/trunk/PKGBUILD)
0ad/repos/community-staging-i686/miniupnpc14.patch
(from rev 142081, 0ad/trunk/miniupnpc14.patch)
0ad/repos/community-staging-x86_64/
0ad/repos/community-staging-x86_64/9f24795fa4935aa1adcdea8c1008541011b3964f.patch
(from rev 142081, 0ad/trunk/9f24795fa4935aa1adcdea8c1008541011b3964f.patch)
0ad/repos/community-staging-x86_64/PKGBUILD
(from rev 142081, 0ad/trunk/PKGBUILD)
0ad/repos/community-staging-x86_64/miniupnpc14.patch
(from rev 142081, 0ad/trunk/miniupnpc14.patch)
-------------------------------------------------------------------------+
community-staging-i686/9f24795fa4935aa1adcdea8c1008541011b3964f.patch | 351 ++++++++++
community-staging-i686/PKGBUILD | 68 +
community-staging-i686/miniupnpc14.patch | 15
community-staging-x86_64/9f24795fa4935aa1adcdea8c1008541011b3964f.patch | 351 ++++++++++
community-staging-x86_64/PKGBUILD | 68 +
community-staging-x86_64/miniupnpc14.patch | 15
6 files changed, 868 insertions(+)
Copied: 0ad/repos/community-staging-i686/9f24795fa4935aa1adcdea8c1008541011b3964f.patch (from rev 142081, 0ad/trunk/9f24795fa4935aa1adcdea8c1008541011b3964f.patch)
===================================================================
--- community-staging-i686/9f24795fa4935aa1adcdea8c1008541011b3964f.patch (rev 0)
+++ community-staging-i686/9f24795fa4935aa1adcdea8c1008541011b3964f.patch 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,351 @@
+From 9f24795fa4935aa1adcdea8c1008541011b3964f Mon Sep 17 00:00:00 2001
+From: leper <leper at 3db68df2-c116-0410-a063-a993310a9797>
+Date: Mon, 25 May 2015 01:23:09 +0000
+Subject: [PATCH] Fix SM build with GCC 5.1.
+
+git-svn-id: http://svn.wildfiregames.com/public/ps/trunk@16673 3db68df2-c116-0410-a063-a993310a9797
+---
+ libraries/source/spidermonkey/FixBug1021171.diff | 245 +++++++++++++++++++++++
+ libraries/source/spidermonkey/FixBug1119228.diff | 65 ++++++
+ libraries/source/spidermonkey/build.sh | 4 +
+ 3 files changed, 314 insertions(+)
+ create mode 100644 libraries/source/spidermonkey/FixBug1021171.diff
+ create mode 100644 libraries/source/spidermonkey/FixBug1119228.diff
+
+diff --git a/libraries/source/spidermonkey/FixBug1021171.diff b/libraries/source/spidermonkey/FixBug1021171.diff
+new file mode 100644
+index 0000000..b322e44
+--- /dev/null
++++ b/libraries/source/spidermonkey/FixBug1021171.diff
+@@ -0,0 +1,245 @@
++# Based on
++# HG changeset patch
++# User Trevor Saunders <trev.saunders at gmail.com>
++# Date 1402083090 14400
++# Node ID fc756706366d983e5d70345cab419fbf72db3d36
++# Parent 78c20dbe259e808fb58d65731efd4f05e8921820
++bug 1021171 - don't return nulllptr in functions returning bool r=bz,waldo
++
++diff --git a/js/src/builtin/TypedObject.cpp b/js/src/builtin/TypedObject.cpp
++--- a/js/src/builtin/TypedObject.cpp
+++++ b/js/src/builtin/TypedObject.cpp
++@@ -705,35 +705,35 @@ ArrayMetaTypeDescr::construct(JSContext
++
++ // Construct a canonical string `new ArrayType(<elementType>)`:
++ StringBuffer contents(cx);
++ contents.append("new ArrayType(");
++ contents.append(&elementType->stringRepr());
++ contents.append(")");
++ RootedAtom stringRepr(cx, contents.finishAtom());
++ if (!stringRepr)
++- return nullptr;
+++ return false;
++
++ // Extract ArrayType.prototype
++ RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
++ if (!arrayTypePrototype)
++- return nullptr;
+++ return false;
++
++ // Create the instance of ArrayType
++ Rooted<UnsizedArrayTypeDescr *> obj(cx);
++ obj = create<UnsizedArrayTypeDescr>(cx, arrayTypePrototype, elementType,
++ stringRepr, 0);
++ if (!obj)
++ return false;
++
++ // Add `length` property, which is undefined for an unsized array.
++ if (!JSObject::defineProperty(cx, obj, cx->names().length,
++ UndefinedHandleValue, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++ /*static*/ bool
++ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
++ {
++@@ -757,30 +757,30 @@ UnsizedArrayTypeDescr::dimension(JSConte
++ int32_t length = args[0].toInt32();
++ Rooted<SizedTypeDescr*> elementType(cx, &unsizedTypeDescr->elementType());
++
++ // Compute the size.
++ CheckedInt32 size = CheckedInt32(elementType->size()) * length;
++ if (!size.isValid()) {
++ JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
++ JSMSG_TYPEDOBJECT_TOO_BIG);
++- return nullptr;
+++ return false;
++ }
++
++ // Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
++ StringBuffer contents(cx);
++ contents.append("new ArrayType(");
++ contents.append(&elementType->stringRepr());
++ contents.append(").dimension(");
++ if (!NumberValueToStringBuffer(cx, NumberValue(length), contents))
++ return false;
++ contents.append(")");
++ RootedAtom stringRepr(cx, contents.finishAtom());
++ if (!stringRepr)
++- return nullptr;
+++ return false;
++
++ // Create the sized type object.
++ Rooted<SizedArrayTypeDescr*> obj(cx);
++ obj = ArrayMetaTypeDescr::create<SizedArrayTypeDescr>(cx, unsizedTypeDescr,
++ elementType,
++ stringRepr, size.value());
++ if (!obj)
++ return false;
++@@ -788,25 +788,25 @@ UnsizedArrayTypeDescr::dimension(JSConte
++ obj->initReservedSlot(JS_DESCR_SLOT_SIZED_ARRAY_LENGTH,
++ Int32Value(length));
++
++ // Add `length` property.
++ RootedValue lengthVal(cx, Int32Value(length));
++ if (!JSObject::defineProperty(cx, obj, cx->names().length,
++ lengthVal, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // Add `unsized` property, which is a link from the sized
++ // array to the unsized array.
++ RootedValue unsizedTypeDescrValue(cx, ObjectValue(*unsizedTypeDescr));
++ if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
++ unsizedTypeDescrValue, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++ bool
++ js::IsTypedObjectArray(JSObject &obj)
++ {
++@@ -1248,17 +1248,17 @@ DefineSimpleTypeDescr(JSContext *cx,
++ if (!JS_DefineFunctions(cx, descr, T::typeObjectMethods))
++ return false;
++
++ // Create the typed prototype for the scalar type. This winds up
++ // not being user accessible, but we still create one for consistency.
++ Rooted<TypedProto*> proto(cx);
++ proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
++ if (!proto)
++- return nullptr;
+++ return false;
++ proto->initTypeDescrSlot(*descr);
++ descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
++
++ RootedValue descrValue(cx, ObjectValue(*descr));
++ if (!JSObject::defineProperty(cx, module, className,
++ descrValue, nullptr, nullptr, 0))
++ {
++ return false;
++@@ -1353,66 +1353,66 @@ GlobalObject::initTypedObjectModule(JSCo
++ if (!JS_DefineFunctions(cx, module, TypedObjectMethods))
++ return false;
++
++ // uint8, uint16, any, etc
++
++ #define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
++ if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
++ cx->names().name_)) \
++- return nullptr;
+++ return false;
++ JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
++ #undef BINARYDATA_SCALAR_DEFINE
++
++ #define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
++ if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
++ cx->names().name_)) \
++- return nullptr;
+++ return false;
++ JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
++ #undef BINARYDATA_REFERENCE_DEFINE
++
++ // ArrayType.
++
++ RootedObject arrayType(cx);
++ arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
++ cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
++ if (!arrayType)
++- return nullptr;
+++ return false;
++
++ RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
++ if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
++ arrayTypeValue,
++ nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // StructType.
++
++ RootedObject structType(cx);
++ structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
++ cx, global, module, TypedObjectModuleObject::StructTypePrototype);
++ if (!structType)
++- return nullptr;
+++ return false;
++
++ RootedValue structTypeValue(cx, ObjectValue(*structType));
++ if (!JSObject::defineProperty(cx, module, cx->names().StructType,
++ structTypeValue,
++ nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // Everything is setup, install module on the global object:
++ RootedValue moduleValue(cx, ObjectValue(*module));
++ global->setConstructor(JSProto_TypedObject, moduleValue);
++ if (!JSObject::defineProperty(cx, global, cx->names().TypedObject,
++ moduleValue,
++ nullptr, nullptr,
++ 0))
++ {
++- return nullptr;
+++ return false;
++ }
++
++ return module;
++ }
++
++ JSObject *
++ js_InitTypedObjectModuleObject(JSContext *cx, HandleObject obj)
++ {
++@@ -2444,17 +2444,17 @@ TypedObject::constructUnsized(JSContext
++ }
++
++ // Length constructor.
++ if (args[0].isInt32()) {
++ int32_t length = args[0].toInt32();
++ if (length < 0) {
++ JS_ReportErrorNumber(cx, js_GetErrorMessage,
++ nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
++- return nullptr;
+++ return false;
++ }
++ Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
++ if (!obj)
++ return false;
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++diff --git a/js/src/frontend/BytecodeCompiler.cpp b/js/src/frontend/BytecodeCompiler.cpp
++--- a/js/src/frontend/BytecodeCompiler.cpp
+++++ b/js/src/frontend/BytecodeCompiler.cpp
++@@ -539,17 +539,17 @@ CompileFunctionBody(JSContext *cx, Mutab
++
++ MaybeCallSourceHandler(cx, options, srcBuf);
++
++ if (!CheckLength(cx, srcBuf))
++ return false;
++
++ RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
++ if (!sourceObject)
++- return nullptr;
+++ return false;
++ ScriptSource *ss = sourceObject->source();
++
++ SourceCompressionTask sct(cx);
++ JS_ASSERT(!options.sourceIsLazy);
++ if (!cx->compartment()->options().discardSource()) {
++ if (!ss->setSourceCopy(cx, srcBuf, true, &sct))
++ return false;
++ }
+diff --git a/libraries/source/spidermonkey/FixBug1119228.diff b/libraries/source/spidermonkey/FixBug1119228.diff
+new file mode 100644
+index 0000000..85c0d64
+--- /dev/null
++++ b/libraries/source/spidermonkey/FixBug1119228.diff
+@@ -0,0 +1,65 @@
++# Backport of
++# HG changeset patch
++# User Ehsan Akhgari <ehsan at mozilla.com>
++# Date 1420727118 18000
++# Node ID bcacb5692ad902fc0ec6ebea2ad382a8a3fd5183
++# Parent 48f8a884901ba9753d3bddab08f25c60e1915601
++Bug 1119228 - Fix a fatal warning in PossiblyFail; r=jandem
++
++Recent clang emits the following warning (which is treated as an error) on this code:
++error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion]
++
++
++diff --git a/js/public/Utility.h b/js/public/Utility.h
++--- a/js/public/Utility.h
+++++ b/js/public/Utility.h
++@@ -83,19 +83,28 @@ static MOZ_NEVER_INLINE void js_failedAl
++ # define JS_OOM_POSSIBLY_FAIL() \
++ do \
++ { \
++ if (++OOM_counter > OOM_maxAllocations) { \
++ JS_OOM_CALL_BP_FUNC();\
++ return nullptr; \
++ } \
++ } while (0)
+++# define JS_OOM_POSSIBLY_FAIL_BOOL() \
+++ do \
+++ { \
+++ if (++OOM_counter > OOM_maxAllocations) { \
+++ JS_OOM_CALL_BP_FUNC();\
+++ return false; \
+++ } \
+++ } while (0)
++
++ # else
++ # define JS_OOM_POSSIBLY_FAIL() do {} while(0)
+++# define JS_OOM_POSSIBLY_FAIL_BOOL() do {} while(0)
++ # endif /* DEBUG || JS_OOM_BREAKPOINT */
++
++ static inline void* js_malloc(size_t bytes)
++ {
++ JS_OOM_POSSIBLY_FAIL();
++ return malloc(bytes);
++ }
++
++--- a/js/src/jsgcinlines.h
+++++ b/js/src/jsgcinlines.h
++@@ -403,17 +403,17 @@
++ }
++ return nullptr;
++ }
++ #endif /* JSGC_GENERATIONAL */
++
++ static inline bool
++ PossiblyFail()
++ {
++- JS_OOM_POSSIBLY_FAIL();
+++ JS_OOM_POSSIBLY_FAIL_BOOL();
++ return true;
++ }
++
++ template <AllowGC allowGC>
++ static inline bool
++ CheckAllocatorState(ThreadSafeContext *cx, AllocKind kind)
++ {
++ if (!cx->isJSContext())
+diff --git a/libraries/source/spidermonkey/build.sh b/libraries/source/spidermonkey/build.sh
+index 2833be4..5c74026 100755
+--- a/libraries/source/spidermonkey/build.sh
++++ b/libraries/source/spidermonkey/build.sh
+@@ -84,6 +84,10 @@ patch -p1 -i ../FixTraceLoggerFlushing.diff
+ # It makes quite a big difference for performance.
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1046176
+ patch -p1 -i ../FixForOfBailouts.diff
++
++# Fix build failures on GCC 5.1 and Clang 3.6
++patch -p1 -i ../FixBug1021171.diff
++patch -p1 -i ../FixBug1119228.diff
+ cd ..
+
+ # Clean up header files that may be left over by earlier versions of SpiderMonkey
Copied: 0ad/repos/community-staging-i686/PKGBUILD (from rev 142081, 0ad/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD (rev 0)
+++ community-staging-i686/PKGBUILD 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,68 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh at lutzhaase.com>
+# Contributor: t3ddy <t3ddy1988 "at" gmail {dot} com>
+# Contributor: Adrián Chaves Fernández (Gallaecio) <adriyetichaves at gmail.com>
+pkgname=0ad
+pkgver=a18
+_pkgver=0.0.18-alpha
+pkgrel=5
+pkgdesc="Cross-platform, 3D and historically-based real-time strategy game"
+arch=('i686' 'x86_64')
+url="http://play0ad.com/"
+license=('GPL2' 'CCPL')
+depends=('binutils' 'boost-libs' 'curl' 'enet' 'libogg' 'libpng' 'libvorbis'
+ 'libxml2' 'openal' 'sdl' 'wxgtk2.8' 'zlib' 'libgl' '0ad-data' 'glu'
+ 'gloox' 'miniupnpc' 'icu' 'nspr')
+makedepends=('boost' 'cmake' 'mesa' 'zip' 'python2' 'libsm')
+source=("https://sourceforge.net/projects/zero-ad/files/releases/$pkgname-$_pkgver-unix-build.tar.xz"
+ "miniupnpc14.patch"
+ "9f24795fa4935aa1adcdea8c1008541011b3964f.patch")
+md5sums=('84aedae3ab86955f87c55607600daa12'
+ 'a0d8ea2026b51a41af4f17ef89f89630'
+ 'dd14fef832a4eded98bbdd87cba00f8f')
+
+prepare() {
+ cd "$srcdir/$pkgname-$_pkgver/"
+ sed -i "s/env python/env python2/g" libraries/source/cxxtest-4.4/bin/cxxtestgen
+ patch -Np1 < $srcdir/miniupnpc14.patch
+ patch -Np1 < $srcdir/9f24795fa4935aa1adcdea8c1008541011b3964f.patch
+}
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver/build/workspaces"
+
+ unset CPPFLAGS # for le spidermonkey
+
+ export WX_CONFIG=/usr/bin/wx-config-2.8
+ ./update-workspaces.sh \
+ --with-system-miniupnpc \
+ --bindir=/usr/bin \
+ --libdir=/usr/lib/0ad \
+ --datadir=/usr/share/${pkgname}/data
+
+ cd "$srcdir/$pkgname-$_pkgver/build/workspaces/gcc"
+
+ make
+}
+
+package() {
+ install -d "${pkgdir}"/usr/{bin,lib/0ad,share/"${pkgname}"/data}
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ install -Dm755 binaries/system/pyrogenesis "${pkgdir}/usr/bin"
+ install -Dm755 binaries/system/*.so "${pkgdir}/usr/lib/0ad"
+
+ cp -r binaries/data/l10n/ ${pkgdir}/usr/share/${pkgname}/data/
+
+ install -Dm755 build/resources/${pkgname}.sh "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm644 build/resources/${pkgname}.desktop \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm644 build/resources/${pkgname}.png \
+ "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+}
+
+# Fails
+#check() {
+# cd "$srcdir/$pkgname-$_pkgver"
+# LD_LIBRARY_PATH=binaries/system binaries/system/test
+#}
Copied: 0ad/repos/community-staging-i686/miniupnpc14.patch (from rev 142081, 0ad/trunk/miniupnpc14.patch)
===================================================================
--- community-staging-i686/miniupnpc14.patch (rev 0)
+++ community-staging-i686/miniupnpc14.patch 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,15 @@
+diff -uprb 0ad-0.0.18-alpha.orig/source/network/NetServer.cpp 0ad-0.0.18-alpha/source/network/NetServer.cpp
+--- 0ad-0.0.18-alpha.orig/source/network/NetServer.cpp 2015-01-24 16:46:52.000000000 +0200
++++ 0ad-0.0.18-alpha/source/network/NetServer.cpp 2015-09-28 18:19:09.433132021 +0300
+@@ -236,7 +236,11 @@ void* CNetServerWorker::SetupUPnP(void*)
+ ret = 1;
+ }
+ // No cached URL, or it did not respond. Try getting a valid UPnP device for 10 seconds.
++#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 14
++ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 2, 0)) != NULL)
++#else
+ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 0)) != NULL)
++#endif
+ {
+ ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress));
+ allocatedUrls = ret != 0; // urls is allocated on non-zero return values
Copied: 0ad/repos/community-staging-x86_64/9f24795fa4935aa1adcdea8c1008541011b3964f.patch (from rev 142081, 0ad/trunk/9f24795fa4935aa1adcdea8c1008541011b3964f.patch)
===================================================================
--- community-staging-x86_64/9f24795fa4935aa1adcdea8c1008541011b3964f.patch (rev 0)
+++ community-staging-x86_64/9f24795fa4935aa1adcdea8c1008541011b3964f.patch 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,351 @@
+From 9f24795fa4935aa1adcdea8c1008541011b3964f Mon Sep 17 00:00:00 2001
+From: leper <leper at 3db68df2-c116-0410-a063-a993310a9797>
+Date: Mon, 25 May 2015 01:23:09 +0000
+Subject: [PATCH] Fix SM build with GCC 5.1.
+
+git-svn-id: http://svn.wildfiregames.com/public/ps/trunk@16673 3db68df2-c116-0410-a063-a993310a9797
+---
+ libraries/source/spidermonkey/FixBug1021171.diff | 245 +++++++++++++++++++++++
+ libraries/source/spidermonkey/FixBug1119228.diff | 65 ++++++
+ libraries/source/spidermonkey/build.sh | 4 +
+ 3 files changed, 314 insertions(+)
+ create mode 100644 libraries/source/spidermonkey/FixBug1021171.diff
+ create mode 100644 libraries/source/spidermonkey/FixBug1119228.diff
+
+diff --git a/libraries/source/spidermonkey/FixBug1021171.diff b/libraries/source/spidermonkey/FixBug1021171.diff
+new file mode 100644
+index 0000000..b322e44
+--- /dev/null
++++ b/libraries/source/spidermonkey/FixBug1021171.diff
+@@ -0,0 +1,245 @@
++# Based on
++# HG changeset patch
++# User Trevor Saunders <trev.saunders at gmail.com>
++# Date 1402083090 14400
++# Node ID fc756706366d983e5d70345cab419fbf72db3d36
++# Parent 78c20dbe259e808fb58d65731efd4f05e8921820
++bug 1021171 - don't return nulllptr in functions returning bool r=bz,waldo
++
++diff --git a/js/src/builtin/TypedObject.cpp b/js/src/builtin/TypedObject.cpp
++--- a/js/src/builtin/TypedObject.cpp
+++++ b/js/src/builtin/TypedObject.cpp
++@@ -705,35 +705,35 @@ ArrayMetaTypeDescr::construct(JSContext
++
++ // Construct a canonical string `new ArrayType(<elementType>)`:
++ StringBuffer contents(cx);
++ contents.append("new ArrayType(");
++ contents.append(&elementType->stringRepr());
++ contents.append(")");
++ RootedAtom stringRepr(cx, contents.finishAtom());
++ if (!stringRepr)
++- return nullptr;
+++ return false;
++
++ // Extract ArrayType.prototype
++ RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
++ if (!arrayTypePrototype)
++- return nullptr;
+++ return false;
++
++ // Create the instance of ArrayType
++ Rooted<UnsizedArrayTypeDescr *> obj(cx);
++ obj = create<UnsizedArrayTypeDescr>(cx, arrayTypePrototype, elementType,
++ stringRepr, 0);
++ if (!obj)
++ return false;
++
++ // Add `length` property, which is undefined for an unsized array.
++ if (!JSObject::defineProperty(cx, obj, cx->names().length,
++ UndefinedHandleValue, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++ /*static*/ bool
++ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
++ {
++@@ -757,30 +757,30 @@ UnsizedArrayTypeDescr::dimension(JSConte
++ int32_t length = args[0].toInt32();
++ Rooted<SizedTypeDescr*> elementType(cx, &unsizedTypeDescr->elementType());
++
++ // Compute the size.
++ CheckedInt32 size = CheckedInt32(elementType->size()) * length;
++ if (!size.isValid()) {
++ JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
++ JSMSG_TYPEDOBJECT_TOO_BIG);
++- return nullptr;
+++ return false;
++ }
++
++ // Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
++ StringBuffer contents(cx);
++ contents.append("new ArrayType(");
++ contents.append(&elementType->stringRepr());
++ contents.append(").dimension(");
++ if (!NumberValueToStringBuffer(cx, NumberValue(length), contents))
++ return false;
++ contents.append(")");
++ RootedAtom stringRepr(cx, contents.finishAtom());
++ if (!stringRepr)
++- return nullptr;
+++ return false;
++
++ // Create the sized type object.
++ Rooted<SizedArrayTypeDescr*> obj(cx);
++ obj = ArrayMetaTypeDescr::create<SizedArrayTypeDescr>(cx, unsizedTypeDescr,
++ elementType,
++ stringRepr, size.value());
++ if (!obj)
++ return false;
++@@ -788,25 +788,25 @@ UnsizedArrayTypeDescr::dimension(JSConte
++ obj->initReservedSlot(JS_DESCR_SLOT_SIZED_ARRAY_LENGTH,
++ Int32Value(length));
++
++ // Add `length` property.
++ RootedValue lengthVal(cx, Int32Value(length));
++ if (!JSObject::defineProperty(cx, obj, cx->names().length,
++ lengthVal, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // Add `unsized` property, which is a link from the sized
++ // array to the unsized array.
++ RootedValue unsizedTypeDescrValue(cx, ObjectValue(*unsizedTypeDescr));
++ if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
++ unsizedTypeDescrValue, nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++ bool
++ js::IsTypedObjectArray(JSObject &obj)
++ {
++@@ -1248,17 +1248,17 @@ DefineSimpleTypeDescr(JSContext *cx,
++ if (!JS_DefineFunctions(cx, descr, T::typeObjectMethods))
++ return false;
++
++ // Create the typed prototype for the scalar type. This winds up
++ // not being user accessible, but we still create one for consistency.
++ Rooted<TypedProto*> proto(cx);
++ proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
++ if (!proto)
++- return nullptr;
+++ return false;
++ proto->initTypeDescrSlot(*descr);
++ descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
++
++ RootedValue descrValue(cx, ObjectValue(*descr));
++ if (!JSObject::defineProperty(cx, module, className,
++ descrValue, nullptr, nullptr, 0))
++ {
++ return false;
++@@ -1353,66 +1353,66 @@ GlobalObject::initTypedObjectModule(JSCo
++ if (!JS_DefineFunctions(cx, module, TypedObjectMethods))
++ return false;
++
++ // uint8, uint16, any, etc
++
++ #define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
++ if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
++ cx->names().name_)) \
++- return nullptr;
+++ return false;
++ JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
++ #undef BINARYDATA_SCALAR_DEFINE
++
++ #define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
++ if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
++ cx->names().name_)) \
++- return nullptr;
+++ return false;
++ JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
++ #undef BINARYDATA_REFERENCE_DEFINE
++
++ // ArrayType.
++
++ RootedObject arrayType(cx);
++ arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
++ cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
++ if (!arrayType)
++- return nullptr;
+++ return false;
++
++ RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
++ if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
++ arrayTypeValue,
++ nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // StructType.
++
++ RootedObject structType(cx);
++ structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
++ cx, global, module, TypedObjectModuleObject::StructTypePrototype);
++ if (!structType)
++- return nullptr;
+++ return false;
++
++ RootedValue structTypeValue(cx, ObjectValue(*structType));
++ if (!JSObject::defineProperty(cx, module, cx->names().StructType,
++ structTypeValue,
++ nullptr, nullptr,
++ JSPROP_READONLY | JSPROP_PERMANENT))
++- return nullptr;
+++ return false;
++
++ // Everything is setup, install module on the global object:
++ RootedValue moduleValue(cx, ObjectValue(*module));
++ global->setConstructor(JSProto_TypedObject, moduleValue);
++ if (!JSObject::defineProperty(cx, global, cx->names().TypedObject,
++ moduleValue,
++ nullptr, nullptr,
++ 0))
++ {
++- return nullptr;
+++ return false;
++ }
++
++ return module;
++ }
++
++ JSObject *
++ js_InitTypedObjectModuleObject(JSContext *cx, HandleObject obj)
++ {
++@@ -2444,17 +2444,17 @@ TypedObject::constructUnsized(JSContext
++ }
++
++ // Length constructor.
++ if (args[0].isInt32()) {
++ int32_t length = args[0].toInt32();
++ if (length < 0) {
++ JS_ReportErrorNumber(cx, js_GetErrorMessage,
++ nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
++- return nullptr;
+++ return false;
++ }
++ Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
++ if (!obj)
++ return false;
++ args.rval().setObject(*obj);
++ return true;
++ }
++
++diff --git a/js/src/frontend/BytecodeCompiler.cpp b/js/src/frontend/BytecodeCompiler.cpp
++--- a/js/src/frontend/BytecodeCompiler.cpp
+++++ b/js/src/frontend/BytecodeCompiler.cpp
++@@ -539,17 +539,17 @@ CompileFunctionBody(JSContext *cx, Mutab
++
++ MaybeCallSourceHandler(cx, options, srcBuf);
++
++ if (!CheckLength(cx, srcBuf))
++ return false;
++
++ RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
++ if (!sourceObject)
++- return nullptr;
+++ return false;
++ ScriptSource *ss = sourceObject->source();
++
++ SourceCompressionTask sct(cx);
++ JS_ASSERT(!options.sourceIsLazy);
++ if (!cx->compartment()->options().discardSource()) {
++ if (!ss->setSourceCopy(cx, srcBuf, true, &sct))
++ return false;
++ }
+diff --git a/libraries/source/spidermonkey/FixBug1119228.diff b/libraries/source/spidermonkey/FixBug1119228.diff
+new file mode 100644
+index 0000000..85c0d64
+--- /dev/null
++++ b/libraries/source/spidermonkey/FixBug1119228.diff
+@@ -0,0 +1,65 @@
++# Backport of
++# HG changeset patch
++# User Ehsan Akhgari <ehsan at mozilla.com>
++# Date 1420727118 18000
++# Node ID bcacb5692ad902fc0ec6ebea2ad382a8a3fd5183
++# Parent 48f8a884901ba9753d3bddab08f25c60e1915601
++Bug 1119228 - Fix a fatal warning in PossiblyFail; r=jandem
++
++Recent clang emits the following warning (which is treated as an error) on this code:
++error: implicit conversion of nullptr constant to 'bool' [-Werror,-Wnull-conversion]
++
++
++diff --git a/js/public/Utility.h b/js/public/Utility.h
++--- a/js/public/Utility.h
+++++ b/js/public/Utility.h
++@@ -83,19 +83,28 @@ static MOZ_NEVER_INLINE void js_failedAl
++ # define JS_OOM_POSSIBLY_FAIL() \
++ do \
++ { \
++ if (++OOM_counter > OOM_maxAllocations) { \
++ JS_OOM_CALL_BP_FUNC();\
++ return nullptr; \
++ } \
++ } while (0)
+++# define JS_OOM_POSSIBLY_FAIL_BOOL() \
+++ do \
+++ { \
+++ if (++OOM_counter > OOM_maxAllocations) { \
+++ JS_OOM_CALL_BP_FUNC();\
+++ return false; \
+++ } \
+++ } while (0)
++
++ # else
++ # define JS_OOM_POSSIBLY_FAIL() do {} while(0)
+++# define JS_OOM_POSSIBLY_FAIL_BOOL() do {} while(0)
++ # endif /* DEBUG || JS_OOM_BREAKPOINT */
++
++ static inline void* js_malloc(size_t bytes)
++ {
++ JS_OOM_POSSIBLY_FAIL();
++ return malloc(bytes);
++ }
++
++--- a/js/src/jsgcinlines.h
+++++ b/js/src/jsgcinlines.h
++@@ -403,17 +403,17 @@
++ }
++ return nullptr;
++ }
++ #endif /* JSGC_GENERATIONAL */
++
++ static inline bool
++ PossiblyFail()
++ {
++- JS_OOM_POSSIBLY_FAIL();
+++ JS_OOM_POSSIBLY_FAIL_BOOL();
++ return true;
++ }
++
++ template <AllowGC allowGC>
++ static inline bool
++ CheckAllocatorState(ThreadSafeContext *cx, AllocKind kind)
++ {
++ if (!cx->isJSContext())
+diff --git a/libraries/source/spidermonkey/build.sh b/libraries/source/spidermonkey/build.sh
+index 2833be4..5c74026 100755
+--- a/libraries/source/spidermonkey/build.sh
++++ b/libraries/source/spidermonkey/build.sh
+@@ -84,6 +84,10 @@ patch -p1 -i ../FixTraceLoggerFlushing.diff
+ # It makes quite a big difference for performance.
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1046176
+ patch -p1 -i ../FixForOfBailouts.diff
++
++# Fix build failures on GCC 5.1 and Clang 3.6
++patch -p1 -i ../FixBug1021171.diff
++patch -p1 -i ../FixBug1119228.diff
+ cd ..
+
+ # Clean up header files that may be left over by earlier versions of SpiderMonkey
Copied: 0ad/repos/community-staging-x86_64/PKGBUILD (from rev 142081, 0ad/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,68 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh at lutzhaase.com>
+# Contributor: t3ddy <t3ddy1988 "at" gmail {dot} com>
+# Contributor: Adrián Chaves Fernández (Gallaecio) <adriyetichaves at gmail.com>
+pkgname=0ad
+pkgver=a18
+_pkgver=0.0.18-alpha
+pkgrel=5
+pkgdesc="Cross-platform, 3D and historically-based real-time strategy game"
+arch=('i686' 'x86_64')
+url="http://play0ad.com/"
+license=('GPL2' 'CCPL')
+depends=('binutils' 'boost-libs' 'curl' 'enet' 'libogg' 'libpng' 'libvorbis'
+ 'libxml2' 'openal' 'sdl' 'wxgtk2.8' 'zlib' 'libgl' '0ad-data' 'glu'
+ 'gloox' 'miniupnpc' 'icu' 'nspr')
+makedepends=('boost' 'cmake' 'mesa' 'zip' 'python2' 'libsm')
+source=("https://sourceforge.net/projects/zero-ad/files/releases/$pkgname-$_pkgver-unix-build.tar.xz"
+ "miniupnpc14.patch"
+ "9f24795fa4935aa1adcdea8c1008541011b3964f.patch")
+md5sums=('84aedae3ab86955f87c55607600daa12'
+ 'a0d8ea2026b51a41af4f17ef89f89630'
+ 'dd14fef832a4eded98bbdd87cba00f8f')
+
+prepare() {
+ cd "$srcdir/$pkgname-$_pkgver/"
+ sed -i "s/env python/env python2/g" libraries/source/cxxtest-4.4/bin/cxxtestgen
+ patch -Np1 < $srcdir/miniupnpc14.patch
+ patch -Np1 < $srcdir/9f24795fa4935aa1adcdea8c1008541011b3964f.patch
+}
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver/build/workspaces"
+
+ unset CPPFLAGS # for le spidermonkey
+
+ export WX_CONFIG=/usr/bin/wx-config-2.8
+ ./update-workspaces.sh \
+ --with-system-miniupnpc \
+ --bindir=/usr/bin \
+ --libdir=/usr/lib/0ad \
+ --datadir=/usr/share/${pkgname}/data
+
+ cd "$srcdir/$pkgname-$_pkgver/build/workspaces/gcc"
+
+ make
+}
+
+package() {
+ install -d "${pkgdir}"/usr/{bin,lib/0ad,share/"${pkgname}"/data}
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ install -Dm755 binaries/system/pyrogenesis "${pkgdir}/usr/bin"
+ install -Dm755 binaries/system/*.so "${pkgdir}/usr/lib/0ad"
+
+ cp -r binaries/data/l10n/ ${pkgdir}/usr/share/${pkgname}/data/
+
+ install -Dm755 build/resources/${pkgname}.sh "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm644 build/resources/${pkgname}.desktop \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm644 build/resources/${pkgname}.png \
+ "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+}
+
+# Fails
+#check() {
+# cd "$srcdir/$pkgname-$_pkgver"
+# LD_LIBRARY_PATH=binaries/system binaries/system/test
+#}
Copied: 0ad/repos/community-staging-x86_64/miniupnpc14.patch (from rev 142081, 0ad/trunk/miniupnpc14.patch)
===================================================================
--- community-staging-x86_64/miniupnpc14.patch (rev 0)
+++ community-staging-x86_64/miniupnpc14.patch 2015-09-28 15:47:33 UTC (rev 142082)
@@ -0,0 +1,15 @@
+diff -uprb 0ad-0.0.18-alpha.orig/source/network/NetServer.cpp 0ad-0.0.18-alpha/source/network/NetServer.cpp
+--- 0ad-0.0.18-alpha.orig/source/network/NetServer.cpp 2015-01-24 16:46:52.000000000 +0200
++++ 0ad-0.0.18-alpha/source/network/NetServer.cpp 2015-09-28 18:19:09.433132021 +0300
+@@ -236,7 +236,11 @@ void* CNetServerWorker::SetupUPnP(void*)
+ ret = 1;
+ }
+ // No cached URL, or it did not respond. Try getting a valid UPnP device for 10 seconds.
++#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 14
++ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 2, 0)) != NULL)
++#else
+ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 0)) != NULL)
++#endif
+ {
+ ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress));
+ allocatedUrls = ret != 0; // urls is allocated on non-zero return values
More information about the arch-commits
mailing list