summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authormartin <martin@pkgsrc.org>2014-06-19 20:31:03 +0000
committermartin <martin@pkgsrc.org>2014-06-19 20:31:03 +0000
commit0bb278eeddaa7c3b5e3f87ecdb78609faf9ebb4a (patch)
tree8b03b515514a94c05243a97e05ca409cb836233e /www
parent4e6ca5cfe571a5cd4be13d65a3f50fbfdbb2dd66 (diff)
downloadpkgsrc-0bb278eeddaa7c3b5e3f87ecdb78609faf9ebb4a.tar.gz
Fix bugzilla ticket 1026499: generated C++ code does not obey alignement
restrictions, make the code generator issue explicit alignment requests.
Diffstat (limited to 'www')
-rw-r--r--www/firefox/Makefile5
-rw-r--r--www/firefox/distinfo6
-rw-r--r--www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_ast.py26
-rw-r--r--www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_cgen.py28
-rw-r--r--www/firefox/patches/patch-ipc_ipdl_ipdl_lower.py18
-rw-r--r--www/firefox/patches/patch-mfbt_Alignment.h26
6 files changed, 106 insertions, 3 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index fd009455b05..d12dcb3e0b6 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.170 2014/06/11 00:40:59 ryoon Exp $
+# $NetBSD: Makefile,v 1.171 2014/06/19 20:31:03 martin Exp $
FIREFOX_VER= ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
MOZ_BRANCH= 30.0
@@ -6,6 +6,7 @@ MOZ_BRANCH_MINOR=
DISTNAME= firefox-${FIREFOX_VER}.source
PKGNAME= firefox-${MOZ_BRANCH}${MOZ_BRANCH_MINOR:S/b/beta/:S/esr//}
+PKGREVISION= 1
CATEGORIES= www
MASTER_SITES= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
MASTER_SITES+= ${MASTER_SITE_MOZILLA_ALL:=firefox/releases/${FIREFOX_VER}/source/}
@@ -16,7 +17,7 @@ WRKSRC= ${WRKDIR}/mozilla-release
MAINTAINER= ryoon@NetBSD.org
HOMEPAGE= http://www.mozilla.com/en-US/firefox/
-COMMENT= Web browser with support for extensions (version 29.x)
+COMMENT= Web browser with support for extensions (version 30.x)
LICENSE= mpl-1.1
MOZILLA_DIR= # empty
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 2755cf1eae9..55d718b151b 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.155 2014/06/14 16:20:07 joerg Exp $
+$NetBSD: distinfo,v 1.156 2014/06/19 20:31:03 martin Exp $
SHA1 (firefox-30.0.source.tar.bz2) = 21dce1a2d4b8085c5f7f66b5f4f60bc37598285d
RMD160 (firefox-30.0.source.tar.bz2) = a1fce7102f9dde33c6db7869ebe600d028998875
@@ -71,6 +71,9 @@ SHA1 (patch-ipc_chromium_src_chrome_common_transport__dib.h) = 7af18973c005d7b14
SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 9a158075e31e2c8d6159bd4b97d0b272e193f3db
SHA1 (patch-ipc_glue_ScopedXREEmbed.cpp) = 97c39f25527dac4c22b38ce446ca2cd4cef08fd0
SHA1 (patch-ipc_glue_StringUtil.cpp) = f238adebb5bdf57f7109a781c6f3fb195763f3c0
+SHA1 (patch-ipc_ipdl_ipdl_cxx_ast.py) = 30ed99c84cc203018bc606208d520c75e1e0d0d9
+SHA1 (patch-ipc_ipdl_ipdl_cxx_cgen.py) = 9fc8d9aeadc3677b7adc820a181bfe4aecfc8124
+SHA1 (patch-ipc_ipdl_ipdl_lower.py) = 245733ff4462388d55a1398a4dc3d767bb002236
SHA1 (patch-js__src__vm__SPSProfiler.cpp) = 989ba25e4c5308d21d07baa802decce13609a475
SHA1 (patch-js_src_Makefile.in) = f6ce5f02a9292e3e524424c5e810850232efe524
SHA1 (patch-js_src_ctypes_CTypes.h) = 768a084239f92a424c1c7dc9eaaf9be9456ca9f0
@@ -101,6 +104,7 @@ SHA1 (patch-media_webrtc_trunk_webrtc_modules_video__capture_video__capture.gypi
SHA1 (patch-media_webrtc_trunk_webrtc_system__wrappers_source_spreadsortlib_spreadsort.hpp) = 78a9522f0e37cfc3ec8267e6c15de9dba0ec7ff3
SHA1 (patch-memory_jemalloc_Makefile.in) = 772e996c8da254f952d0f3a0c9325a177c838543
SHA1 (patch-memory_mozalloc_mozalloc__abort.cpp) = 9d9036ddd28c7b8ce37860e0120df2997a3a0c59
+SHA1 (patch-mfbt_Alignment.h) = 07bece1799e15d46d725c3579bf87ec64c32a08b
SHA1 (patch-mfbt_Poison.cpp) = b582943c02f57835451c9eecd004c9912d42ce84
SHA1 (patch-modules_libjar_nsZipArchive.cpp) = 6aff0f8ed42575d8ca36a524e12e9a1f7351004a
SHA1 (patch-netwerk_dns_Makefile.in) = b6bd9814d909dd6f7cff10dbeac3bedd79c2508e
diff --git a/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_ast.py b/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_ast.py
new file mode 100644
index 00000000000..e2853e665c9
--- /dev/null
+++ b/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_ast.py
@@ -0,0 +1,26 @@
+$NetBSD: patch-ipc_ipdl_ipdl_cxx_ast.py,v 1.1 2014/06/19 20:31:03 martin Exp $
+
+Part of https://bugzilla.mozilla.org/show_bug.cgi?id=1026499:
+Make sure storage provided for attributes is properly aligned
+in the generated C++ code.
+
+--- ipc/ipdl/ipdl/cxx/ast.py.orig 2014-06-06 03:15:27.000000000 +0200
++++ ipc/ipdl/ipdl/cxx/ast.py 2014-06-17 21:33:50.000000000 +0200
+@@ -336,12 +336,13 @@
+ Type.VOIDPTR = Type('void', ptr=1)
+
+ class TypeArray(Node):
+- def __init__(self, basetype, nmemb):
+- '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr'''
++ def __init__(self, basetype, nmemb, alignType):
++ '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr, |alignType| is a type'''
+ self.basetype = basetype
+ self.nmemb = nmemb
++ self.alignType = alignType
+ def __deepcopy__(self, memo):
+- return TypeArray(deepcopy(self.basetype, memo), nmemb)
++ return TypeArray(deepcopy(self.basetype, memo), nmemb, alignType)
+
+ class TypeEnum(Node):
+ def __init__(self, name=None):
+
diff --git a/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_cgen.py b/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_cgen.py
new file mode 100644
index 00000000000..9d12d0e9984
--- /dev/null
+++ b/www/firefox/patches/patch-ipc_ipdl_ipdl_cxx_cgen.py
@@ -0,0 +1,28 @@
+$NetBSD: patch-ipc_ipdl_ipdl_cxx_cgen.py,v 1.1 2014/06/19 20:31:03 martin Exp $
+
+Part of https://bugzilla.mozilla.org/show_bug.cgi?id=1026499:
+Make sure storage provided for attributes is properly aligned
+in the generated C++ code.
+
+--- ipc/ipdl/ipdl/cxx/cgen.py.orig 2014-06-06 03:15:27.000000000 +0200
++++ ipc/ipdl/ipdl/cxx/cgen.py 2014-06-18 18:10:27.000000000 +0200
+@@ -101,6 +101,7 @@
+ def visitDecl(self, d):
+ # C-syntax arrays make code generation much more annoying
+ if isinstance(d.type, TypeArray):
++ self.write('MOZ_ALIGNED_DECL(')
+ d.type.basetype.accept(self)
+ else:
+ d.type.accept(self)
+@@ -111,7 +112,9 @@
+ if isinstance(d.type, TypeArray):
+ self.write('[')
+ d.type.nmemb.accept(self)
+- self.write(']')
++ self.write('], MOZ_ALIGNOF(')
++ d.type.alignType.accept(self)
++ self.write('))')
+
+ def visitParam(self, p):
+ self.visitDecl(p)
+
diff --git a/www/firefox/patches/patch-ipc_ipdl_ipdl_lower.py b/www/firefox/patches/patch-ipc_ipdl_ipdl_lower.py
new file mode 100644
index 00000000000..a3fb9f3540a
--- /dev/null
+++ b/www/firefox/patches/patch-ipc_ipdl_ipdl_lower.py
@@ -0,0 +1,18 @@
+$NetBSD: patch-ipc_ipdl_ipdl_lower.py,v 1.5 2014/06/19 20:31:03 martin Exp $
+
+Part of https://bugzilla.mozilla.org/show_bug.cgi?id=1026499:
+Make sure storage provided for attributes is properly aligned
+in the generated C++ code.
+
+--- ipc/ipdl/ipdl/lower.py.orig 2014-06-06 03:15:27.000000000 +0200
++++ ipc/ipdl/ipdl/lower.py 2014-06-17 22:35:35.000000000 +0200
+@@ -768,7 +768,7 @@
+ if self.recursive:
+ return self.ptrToType()
+ else:
+- return TypeArray(Type('char'), ExprSizeof(self.internalType()))
++ return TypeArray(Type('char'), ExprSizeof(self.internalType()), self.internalType())
+
+ def unionValue(self):
+ # NB: knows that Union's storage C union is named |mValue|
+
diff --git a/www/firefox/patches/patch-mfbt_Alignment.h b/www/firefox/patches/patch-mfbt_Alignment.h
new file mode 100644
index 00000000000..32aabe6cc3f
--- /dev/null
+++ b/www/firefox/patches/patch-mfbt_Alignment.h
@@ -0,0 +1,26 @@
+$NetBSD: patch-mfbt_Alignment.h,v 1.1 2014/06/19 20:31:03 martin Exp $
+
+Make MOZ_ALIGNOF() use gcc's builtin __alignof__.
+From https://bugzilla.mozilla.org/show_bug.cgi?id=1026499
+
+--- mfbt/Alignment.h.orig 2014-06-06 03:15:37.000000000 +0200
++++ mfbt/Alignment.h 2014-06-18 18:12:22.000000000 +0200
+@@ -14,6 +14,9 @@
+
+ namespace mozilla {
+
++#if defined(__GNUC__)
++#define MOZ_ALIGNOF(T) __alignof__(T)
++#else
+ /*
+ * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many
+ * bytes of alignment a given type needs.
+@@ -32,6 +35,7 @@
+ };
+
+ #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment
++#endif
+
+ /*
+ * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types.
+