Hello community,
here is the log from the commit of package seamonkey for openSUSE:Factory checked in at 2015-06-30 10:42:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/seamonkey (Old)
and /work/SRC/openSUSE:Factory/.seamonkey.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seamonkey"
Changes:
--------
--- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes 2015-03-23 12:19:31.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey.changes 2015-06-30 10:42:41.000000000 +0200
@@ -1,0 +2,10 @@
+Sat Jun 27 08:13:54 UTC 2015 - antoine.belvire(a)laposte.net
+
+- Fix compilation issues:
+ * Add mozilla-add-D_GLIBCXX_USE_CXX11_ABI-0-to-CXXFLAG.patch (bmo#1153109)
+ * Add mozilla-reintroduce-pixman-code-path.patch (bmo#1136958)
+ * Add mozilla-visitSubstr.patch (bmo#1108834)
+ * Add mozilla-undef-CONST.patch (bmo#1111395)
+ * Add mozilla-disable-JEMALLOC_STATIC_SIZES-on-ppc.patch
+
+-------------------------------------------------------------------
New:
----
mozilla-add-D_GLIBCXX_USE_CXX11_ABI-0-to-CXXFLAG.patch
mozilla-disable-JEMALLOC_STATIC_SIZES-on-ppc.patch
mozilla-reintroduce-pixman-code-path.patch
mozilla-undef-CONST.patch
mozilla-visitSubstr.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ seamonkey.spec ++++++
--- /var/tmp/diff_new_pack.5TBqpY/_old 2015-06-30 10:42:46.000000000 +0200
+++ /var/tmp/diff_new_pack.5TBqpY/_new 2015-06-30 10:42:46.000000000 +0200
@@ -87,6 +87,16 @@
Patch11: mozilla-icu-strncat.patch
Patch12: mozilla-openaes-decl.patch
Patch13: mozilla-fix-prototype.patch
+# PATCH-FIX-UPSTREAM mozilla-add-D_GLIBCXX_USE_CXX11_ABI-0-to-CXXFLAG.patch -- fix build with GCC 5 (bmo#1153109)
+Patch14: mozilla-add-D_GLIBCXX_USE_CXX11_ABI-0-to-CXXFLAG.patch
+# PATCH-FIX-UPSTREAM mozilla-reintroduce-pixman-code-path.patch -- fix build on ppc (bmo#1136958)
+Patch15: mozilla-reintroduce-pixman-code-path.patch
+# PATCH-FIX-UPSTREAM mozilla-visitSubstr.patch -- fix build on ppc (bmo#1108834)
+Patch16: mozilla-visitSubstr.patch
+# PATCH-FIX-UPSTREAM mozilla-undef-CONST.patch -- fix build on ppc (bmo#1111395)
+Patch17: mozilla-undef-CONST.patch
+# PATCH-FIX-UPSTREAM mozilla-disable-JEMALLOC_STATIC_SIZES-on-ppc.patch -- fix build on ppc (from deb#763900)
+Patch18: mozilla-disable-JEMALLOC_STATIC_SIZES-on-ppc.patch
Patch100: seamonkey-ua-locale.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: /bin/sh coreutils
@@ -194,6 +204,11 @@
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
popd
# comm patches
%patch100 -p1
++++++ mozilla-add-D_GLIBCXX_USE_CXX11_ABI-0-to-CXXFLAG.patch ++++++
>From 32b9943e0d2c7c28d9d113c0e83d121c356fe5d5 Mon Sep 17 00:00:00 2001
From: Mike Hommey <mh+mozilla(a)glandium.org>
Date: Fri, 10 Apr 2015 16:53:05 +0900
Subject: [PATCH] Bug 1153109 - Add -D_GLIBCXX_USE_CXX11_ABI=0 to CXXFLAGS when
building with --enable-stdcxx-compat
---
configure.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configure.in b/configure.in
index 95d2a70..6c858b3 100644
--- a/configure.in
+++ b/configure.in
@@ -7375,16 +7375,18 @@ STDCXX_COMPAT=
MOZ_ARG_ENABLE_BOOL(stdcxx-compat,
[ --enable-stdcxx-compat Enable compatibility with older libstdc++],
STDCXX_COMPAT=1)
if test -n "$STDCXX_COMPAT"; then
eval $(CXX="$CXX" HOST_CXX="$HOST_CXX" $PYTHON -m mozbuild.configure.libstdcxx)
AC_SUBST(MOZ_LIBSTDCXX_TARGET_VERSION)
AC_SUBST(MOZ_LIBSTDCXX_HOST_VERSION)
+ CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+ HOST_CXXFLAGS="$HOST_CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
fi
dnl ========================================================
dnl =
dnl = Profiling and Instrumenting
dnl =
dnl ========================================================
MOZ_ARG_HEADER(Profiling and Instrumenting)
--
2.3.5.1.g2355df5
++++++ mozilla-disable-JEMALLOC_STATIC_SIZES-on-ppc.patch ++++++
--- a/memory/mozjemalloc/jemalloc.c 2014-08-25 15:17:22.000000000 +0200
+++ b/memory/mozjemalloc/jemalloc.c 2014-10-03 11:30:51.183346370 +0200
@@ -1088,7 +1088,7 @@
* controlling the malloc behavior are defined as compile-time constants
* for best performance and cannot be altered at runtime.
*/
-#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__)
+#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__powerpc__)
#define MALLOC_STATIC_SIZES 1
#endif
++++++ mozilla-reintroduce-pixman-code-path.patch ++++++
# HG changeset patch
# User Mike Hommey <mh(a)glandium.org>
# Date 1425858139 -32400
# Node ID 48e130d698364f246d9ab870044617fbf9e21f20
# Parent 08d7c1951e618f91863d34bddfdffe880bf78bf6
Bug 1136958 - Reintroduce pixman code path removed in bug 1097776 for --disable-skia builds. r=jmuizelaar, a=sledru
diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
--- a/gfx/layers/basic/BasicCompositor.cpp
+++ b/gfx/layers/basic/BasicCompositor.cpp
@@ -12,18 +12,23 @@
#include "gfx2DGlue.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/Helpers.h"
#include "gfxUtils.h"
#include "YCbCrUtils.h"
#include <algorithm>
#include "ImageContainer.h"
#include "gfxPrefs.h"
+#ifdef MOZ_ENABLE_SKIA
#include "skia/SkCanvas.h" // for SkCanvas
#include "skia/SkBitmapDevice.h" // for SkBitmapDevice
+#else
+#define PIXMAN_DONT_DEFINE_STDINT
+#include "pixman.h" // for pixman_f_transform, etc
+#endif
namespace mozilla {
using namespace mozilla::gfx;
namespace layers {
class DataTextureSourceBasic : public DataTextureSource
, public TextureSourceBasic
@@ -172,16 +177,17 @@ DrawSurfaceWithTextureCoords(DrawTarget
// Only use REPEAT if aTextureCoords is outside (0, 0, 1, 1).
gfx::Rect unitRect(0, 0, 1, 1);
ExtendMode mode = unitRect.Contains(aTextureCoords) ? ExtendMode::CLAMP : ExtendMode::REPEAT;
FillRectWithMask(aDest, aDestRect, aSource, aFilter, DrawOptions(aOpacity),
mode, aMask, aMaskTransform, &matrix);
}
+#ifdef MOZ_ENABLE_SKIA
static SkMatrix
Matrix3DToSkia(const gfx3DMatrix& aMatrix)
{
SkMatrix transform;
transform.setAll(aMatrix._11,
aMatrix._21,
aMatrix._41,
aMatrix._12,
@@ -190,20 +196,20 @@ Matrix3DToSkia(const gfx3DMatrix& aMatri
aMatrix._14,
aMatrix._24,
aMatrix._44);
return transform;
}
static void
-SkiaTransform(DataSourceSurface* aDest,
- DataSourceSurface* aSource,
- const gfx3DMatrix& aTransform,
- const Point& aDestOffset)
+Transform(DataSourceSurface* aDest,
+ DataSourceSurface* aSource,
+ const gfx3DMatrix& aTransform,
+ const Point& aDestOffset)
{
if (aTransform.IsSingular()) {
return;
}
IntSize destSize = aDest->GetSize();
SkImageInfo destInfo = SkImageInfo::Make(destSize.width,
destSize.height,
@@ -229,16 +235,88 @@ SkiaTransform(DataSourceSurface* aDest,
SkPaint paint;
paint.setXfermodeMode(SkXfermode::kSrc_Mode);
paint.setAntiAlias(true);
paint.setFilterLevel(SkPaint::kLow_FilterLevel);
SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
}
+#else
+static pixman_transform
+Matrix3DToPixman(const gfx3DMatrix& aMatrix)
+{
+ pixman_f_transform transform;
+
+ transform.m[0][0] = aMatrix._11;
+ transform.m[0][1] = aMatrix._21;
+ transform.m[0][2] = aMatrix._41;
+ transform.m[1][0] = aMatrix._12;
+ transform.m[1][1] = aMatrix._22;
+ transform.m[1][2] = aMatrix._42;
+ transform.m[2][0] = aMatrix._14;
+ transform.m[2][1] = aMatrix._24;
+ transform.m[2][2] = aMatrix._44;
+
+ pixman_transform result;
+ pixman_transform_from_pixman_f_transform(&result, &transform);
+
+ return result;
+}
+
+static void
+Transform(DataSourceSurface* aDest,
+ DataSourceSurface* aSource,
+ const gfx3DMatrix& aTransform,
+ const Point& aDestOffset)
+{
+ IntSize destSize = aDest->GetSize();
+ pixman_image_t* dest = pixman_image_create_bits(PIXMAN_a8r8g8b8,
+ destSize.width,
+ destSize.height,
+ (uint32_t*)aDest->GetData(),
+ aDest->Stride());
+
+ IntSize srcSize = aSource->GetSize();
+ pixman_image_t* src = pixman_image_create_bits(PIXMAN_a8r8g8b8,
+ srcSize.width,
+ srcSize.height,
+ (uint32_t*)aSource->GetData(),
+ aSource->Stride());
+
+ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
+
+ pixman_transform pixTransform = Matrix3DToPixman(aTransform);
+ pixman_transform pixTransformInverted;
+
+ // If the transform is singular then nothing would be drawn anyway, return here
+ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+ return;
+ }
+ pixman_image_set_transform(src, &pixTransformInverted);
+
+ pixman_image_composite32(PIXMAN_OP_SRC,
+ src,
+ nullptr,
+ dest,
+ aDestOffset.x,
+ aDestOffset.y,
+ 0,
+ 0,
+ 0,
+ 0,
+ destSize.width,
+ destSize.height);
+
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+}
+#endif
static inline IntRect
RoundOut(Rect r)
{
r.RoundOut();
return IntRect(r.x, r.y, r.width, r.height);
}
@@ -368,22 +446,26 @@ BasicCompositor::DrawQuad(const gfx::Rec
}
if (!aTransform.Is2D()) {
dest->Flush();
RefPtr<SourceSurface> snapshot = dest->Snapshot();
RefPtr<DataSourceSurface> source = snapshot->GetDataSurface();
RefPtr<DataSourceSurface> temp =
- Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8, true);
+ Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8
+#ifdef MOZ_ENABLE_SKIA
+ , true
+#endif
+ );
if (NS_WARN_IF(!temp)) {
return;
}
- SkiaTransform(temp, source, new3DTransform, transformBounds.TopLeft());
+ Transform(temp, source, new3DTransform, transformBounds.TopLeft());
transformBounds.MoveTo(0, 0);
buffer->DrawSurface(temp, transformBounds, transformBounds);
}
buffer->PopClip();
}
diff --git a/gfx/layers/basic/BasicLayerManager.cpp b/gfx/layers/basic/BasicLayerManager.cpp
--- a/gfx/layers/basic/BasicLayerManager.cpp
+++ b/gfx/layers/basic/BasicLayerManager.cpp
@@ -41,18 +41,23 @@
#include "nsAutoPtr.h" // for nsRefPtr
#include "nsCOMPtr.h" // for already_AddRefed
#include "nsDebug.h" // for NS_ASSERTION, etc
#include "nsISupportsImpl.h" // for gfxContext::Release, etc
#include "nsPoint.h" // for nsIntPoint
#include "nsRect.h" // for nsIntRect
#include "nsRegion.h" // for nsIntRegion, etc
#include "nsTArray.h" // for nsAutoTArray
+#ifdef MOZ_ENABLE_SKIA
#include "skia/SkCanvas.h" // for SkCanvas
#include "skia/SkBitmapDevice.h" // for SkBitmapDevice
+#else
+#define PIXMAN_DONT_DEFINE_STDINT
+#include "pixman.h" // for pixman_f_transform, etc
+#endif
class nsIWidget;
namespace mozilla {
namespace layers {
using namespace mozilla::gfx;
/**
@@ -601,16 +606,17 @@ void
BasicLayerManager::SetRoot(Layer* aLayer)
{
NS_ASSERTION(aLayer, "Root can't be null");
NS_ASSERTION(aLayer->Manager() == this, "Wrong manager");
NS_ASSERTION(InConstruction(), "Only allowed in construction phase");
mRoot = aLayer;
}
+#ifdef MOZ_ENABLE_SKIA
static SkMatrix
BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
{
SkMatrix transform;
transform.setAll(aMatrix._11,
aMatrix._21,
aMatrix._41,
aMatrix._12,
@@ -619,20 +625,20 @@ BasicLayerManager_Matrix3DToSkia(const g
aMatrix._14,
aMatrix._24,
aMatrix._44);
return transform;
}
static void
-SkiaTransform(const gfxImageSurface* aDest,
- RefPtr<DataSourceSurface> aSrc,
- const gfx3DMatrix& aTransform,
- gfxPoint aDestOffset)
+Transform(const gfxImageSurface* aDest,
+ RefPtr<DataSourceSurface> aSrc,
+ const gfx3DMatrix& aTransform,
+ gfxPoint aDestOffset)
{
if (aTransform.IsSingular()) {
return;
}
IntSize destSize = ToIntSize(aDest->GetSize());
SkImageInfo destInfo = SkImageInfo::Make(destSize.width,
destSize.height,
@@ -658,16 +664,88 @@ SkiaTransform(const gfxImageSurface* aDe
SkPaint paint;
paint.setXfermodeMode(SkXfermode::kSrc_Mode);
paint.setAntiAlias(true);
paint.setFilterLevel(SkPaint::kLow_FilterLevel);
SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
}
+#else
+static pixman_transform
+BasicLayerManager_Matrix3DToPixman(const gfx3DMatrix& aMatrix)
+{
+ pixman_f_transform transform;
+
+ transform.m[0][0] = aMatrix._11;
+ transform.m[0][1] = aMatrix._21;
+ transform.m[0][2] = aMatrix._41;
+ transform.m[1][0] = aMatrix._12;
+ transform.m[1][1] = aMatrix._22;
+ transform.m[1][2] = aMatrix._42;
+ transform.m[2][0] = aMatrix._14;
+ transform.m[2][1] = aMatrix._24;
+ transform.m[2][2] = aMatrix._44;
+
+ pixman_transform result;
+ pixman_transform_from_pixman_f_transform(&result, &transform);
+
+ return result;
+}
+
+static void
+Transform(const gfxImageSurface* aDest,
+ RefPtr<DataSourceSurface> aSrc,
+ const gfx3DMatrix& aTransform,
+ gfxPoint aDestOffset)
+{
+ IntSize destSize = ToIntSize(aDest->GetSize());
+ pixman_image_t* dest = pixman_image_create_bits(aDest->Format() == gfxImageFormat::ARGB32 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
+ destSize.width,
+ destSize.height,
+ (uint32_t*)aDest->Data(),
+ aDest->Stride());
+
+ IntSize srcSize = aSrc->GetSize();
+ pixman_image_t* src = pixman_image_create_bits(aSrc->GetFormat() == SurfaceFormat::B8G8R8A8 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
+ srcSize.width,
+ srcSize.height,
+ (uint32_t*)aSrc->GetData(),
+ aSrc->Stride());
+
+ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
+
+ pixman_transform pixTransform = BasicLayerManager_Matrix3DToPixman(aTransform);
+ pixman_transform pixTransformInverted;
+
+ // If the transform is singular then nothing would be drawn anyway, return here
+ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+ return;
+ }
+ pixman_image_set_transform(src, &pixTransformInverted);
+
+ pixman_image_composite32(PIXMAN_OP_SRC,
+ src,
+ nullptr,
+ dest,
+ aDestOffset.x,
+ aDestOffset.y,
+ 0,
+ 0,
+ 0,
+ 0,
+ destSize.width,
+ destSize.height);
+
+ pixman_image_unref(dest);
+ pixman_image_unref(src);
+}
+#endif
/**
* Transform a surface using a gfx3DMatrix and blit to the destination if
* it is efficient to do so.
*
* @param aSource Source surface.
* @param aDest Desintation context.
* @param aBounds Area represented by aSource.
@@ -699,17 +777,17 @@ Transform3D(RefPtr<SourceSurface> aSourc
aDestRect.height),
gfxImageFormat::ARGB32);
gfxPoint offset = aDestRect.TopLeft();
// Include a translation to the correct origin.
gfx3DMatrix translation = gfx3DMatrix::Translation(aBounds.x, aBounds.y, 0);
// Transform the content and offset it such that the content begins at the origin.
- SkiaTransform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
+ Transform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
// If we haven't actually drawn to aDest then return our temporary image so
// that the caller can do this.
return destImage.forget();
}
void
BasicLayerManager::PaintSelfOrChildren(PaintLayerContext& aPaintContext,
++++++ mozilla-undef-CONST.patch ++++++
# HG changeset patch
# User Steve Singer <steve(a)ssinger.info>
# Date 1418563440 -3600
# Node ID 61d908954a18a4b9b306633a86594699cf3a62ea
# Parent 827b1ad5126d5946bca017eff1b2fd2f1a2ffa02
Bug 1111395 - undef CONST to fix problems in some unified builds . r=luke
diff --git a/js/src/dtoa.c b/js/src/dtoa.c
--- a/js/src/dtoa.c
+++ b/js/src/dtoa.c
@@ -3241,8 +3241,9 @@ dtoa
#endif
Bfree(PASS_STATE b);
*s = 0;
*decpt = k + 1;
if (rve)
*rve = s;
return s0;
}
+#undef CONST
++++++ mozilla-visitSubstr.patch ++++++
# HG changeset patch
# Parent 5a37a113c5187c82af6d56b1ba620b40d8500da9
# User Steve Singer <steve(a)ssinger.info>
Bug 1108834 - Add visitSubstr to Lowering-None
diff --git a/js/src/jit/none/Lowering-none.h b/js/src/jit/none/Lowering-none.h
--- a/js/src/jit/none/Lowering-none.h
+++ b/js/src/jit/none/Lowering-none.h
@@ -84,16 +84,17 @@ class LIRGeneratorNone : public LIRGener
bool visitAsmJSCompareExchangeHeap(MAsmJSCompareExchangeHeap *ins) { MOZ_CRASH(); }
bool visitAsmJSAtomicBinopHeap(MAsmJSAtomicBinopHeap *ins) { MOZ_CRASH(); }
LTableSwitch *newLTableSwitch(LAllocation, LDefinition, MTableSwitch *) { MOZ_CRASH(); }
LTableSwitchV *newLTableSwitchV(MTableSwitch *) { MOZ_CRASH(); }
bool visitSimdTernaryBitwise(MSimdTernaryBitwise *ins) { MOZ_CRASH(); }
bool visitSimdSplatX4(MSimdSplatX4 *ins) { MOZ_CRASH(); }
bool visitSimdValueX4(MSimdValueX4 *lir) { MOZ_CRASH(); }
+ bool visitSubstr(MSubstr *) { MOZ_CRASH(); }
};
typedef LIRGeneratorNone LIRGeneratorSpecific;
} // namespace jit
} // namespace js
#endif /* jit_none_Lowering_none_h */