r15523 - in packages/trunk/0ad/debian: . patches
Vincent Cheng
vcheng at moszumanska.debian.org
Sat Aug 29 03:49:44 UTC 2015
Author: vcheng
Date: 2015-08-29 03:49:43 +0000 (Sat, 29 Aug 2015)
New Revision: 15523
Added:
packages/trunk/0ad/debian/patches/gcc-5.1.patch
Modified:
packages/trunk/0ad/debian/changelog
packages/trunk/0ad/debian/patches/series
Log:
0ad: import patch from ubuntu to fix gcc-5 FTBFS
Modified: packages/trunk/0ad/debian/changelog
===================================================================
--- packages/trunk/0ad/debian/changelog 2015-08-20 09:39:20 UTC (rev 15522)
+++ packages/trunk/0ad/debian/changelog 2015-08-29 03:49:43 UTC (rev 15523)
@@ -1,3 +1,11 @@
+0ad (0.0.18-2) UNRELEASED; urgency=medium
+
+ [ Logan Rosen ]
+ * debian/patches/gcc-5.1.patch: Pull patch from upstream Git to fix build
+ with GCC 5.1.
+
+ -- Vincent Cheng <vcheng at debian.org> Fri, 28 Aug 2015 20:46:34 -0700
+
0ad (0.0.18-1) unstable; urgency=medium
* New upstream release.
Added: packages/trunk/0ad/debian/patches/gcc-5.1.patch
===================================================================
--- packages/trunk/0ad/debian/patches/gcc-5.1.patch (rev 0)
+++ packages/trunk/0ad/debian/patches/gcc-5.1.patch 2015-08-29 03:49:43 UTC (rev 15523)
@@ -0,0 +1,337 @@
+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
Modified: packages/trunk/0ad/debian/patches/series
===================================================================
--- packages/trunk/0ad/debian/patches/series 2015-08-20 09:39:20 UTC (rev 15522)
+++ packages/trunk/0ad/debian/patches/series 2015-08-29 03:49:43 UTC (rev 15523)
@@ -1,3 +1,4 @@
enable-hardening-relro.patch
allow-build-with-root.patch
fix-bindir.patch
+gcc-5.1.patch
More information about the Pkg-games-commits
mailing list