Bug 179034

Summary: [patch] www/libxul fix with clang 3.3 and update to 17.0.2
Product: Ports & Packages Reporter: Nikolai Lifanov <lifanov>
Component: Individual Port(s)Assignee: freebsd-gecko (Nobody) <gecko>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
patch.txt none

Description Nikolai Lifanov 2013-05-28 02:00:00 UTC
Since import of clang 3.3 snapshot to CURRENT, www/libxul was broken on amd64.

Fix: While attempting to fix this patch-by-patch, I realized that this is
time-intensive, so I split up libxul 10.* and copied over and fixed up
a version based on 17.*.

The plan was to add libxul10 (or libxul100) to Mk/bsd.gecko.mk and test
which ports work with what and add libxul based on mozilla dist from
www/firefox-esr.

With a few bulk runs (9.1-RELEASE amd64, CURRENT amd64) of the reverse
dependencies I could find (exact list:

	audio/tuxguitar
	deskutils/chmsee
	deskutils/google-gadgets
	editors/morla
	java/icedtea-web
	misc/xiphos
	multimedia/gxine
	net/libproxy-mozjs
	science/gchemutils
	www/gecko-mediaplayer
	www/gecko-sharp20
	www/helixplugin
	www/moonshine
	www/openvrml
	www/xpi-conkeror
	x11-toolkits/swt
	x11-toolkits/swt-devel
	),

100% of the ones that work on libxul 10 also work on libxul 17, while
libxul 17 can piggyback on the patches from www/firefox-esr and works
great on CURRENT!

I think that libxul 17 is a suitable repacement for libxul 10.
Please update.
How-To-Repeat: Be on a CURRENT system running a clang 3.3 snapshot.
make -C /usr/ports/www/libxul
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-05-28 09:39:56 UTC
Responsible Changed
From-To: freebsd-ports-bugs->gecko

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 dfilter service freebsd_committer freebsd_triage 2013-06-04 16:48:03 UTC
Author: flo
Date: Tue Jun  4 15:47:49 2013
New Revision: 319872
URL: http://svnweb.freebsd.org/changeset/ports/319872

Log:
  Update to 17.0.6 (this should also fix the build on head after the
  clang 3.3 merge)
  
  PR:             ports/179034 [1]
  Submitted by:   Jan Beich <jbeich@tormail.org>,
                  Nikolai Lifanov <lifanov@mail.lifanov.com> [1]

Added:
  head/www/libxul/files/extra-bug780531   (contents, props changed)
  head/www/libxul/files/patch-bug722975   (contents, props changed)
  head/www/libxul/files/patch-bug732340   (contents, props changed)
  head/www/libxul/files/patch-bug784631   (contents, props changed)
  head/www/libxul/files/patch-bug786995   (contents, props changed)
  head/www/libxul/files/patch-bug787904   (contents, props changed)
  head/www/libxul/files/patch-bug788955   (contents, props changed)
  head/www/libxul/files/patch-bug789656   (contents, props changed)
  head/www/libxul/files/patch-bug799441   (contents, props changed)
  head/www/libxul/files/patch-bug806139   (contents, props changed)
  head/www/libxul/files/patch-bug810716   (contents, props changed)
  head/www/libxul/files/patch-bug828003   (contents, props changed)
  head/www/libxul/files/patch-bug854936   (contents, props changed)
  head/www/libxul/files/patch-clang32-libc++-visibility-hack   (contents, props changed)
  head/www/libxul/files/patch-clang33   (contents, props changed)
  head/www/libxul/files/patch-config-baseconfig.mk   (contents, props changed)
  head/www/libxul/files/patch-z-bug762445   (contents, props changed)
Deleted:
  head/www/libxul/files/patch-bug653551
  head/www/libxul/files/patch-bug691898
  head/www/libxul/files/patch-bug696030
  head/www/libxul/files/patch-bug714312
  head/www/libxul/files/patch-bug725655
  head/www/libxul/files/patch-bug728968
  head/www/libxul/files/patch-bug729155
  head/www/libxul/files/patch-bug741737
  head/www/libxul/files/patch-bug761077
  head/www/libxul/files/patch-bug778056
  head/www/libxul/files/patch-bug779847
  head/www/libxul/files/patch-bug781457
  head/www/libxul/files/patch-bug784776
  head/www/libxul/files/patch-clang32-visibility-hack
  head/www/libxul/files/patch-config_autoconf.mk.in
  head/www/libxul/files/patch-dom-ipc-ContentChild.cpp
  head/www/libxul/files/patch-gfx-qcms-qcmstypes.h
  head/www/libxul/files/patch-toolkit-xre-nsEmbedFunctions.cpp
Modified:
  head/graphics/gnash/Makefile
  head/www/gecko-mediaplayer/Makefile
  head/www/libxul/Makefile
  head/www/libxul/distinfo
  head/www/libxul/files/patch-alsapulse   (contents, props changed)
  head/www/libxul/files/patch-bug753046
  head/www/libxul/files/patch-bug778078   (contents, props changed)
  head/www/libxul/files/patch-bug783463   (contents, props changed)
  head/www/libxul/files/patch-bug788039   (contents, props changed)
  head/www/libxul/files/patch-bug788108   (contents, props changed)
  head/www/libxul/files/patch-bug789693
  head/www/libxul/files/patch-bug791366
  head/www/libxul/files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp

Modified: head/graphics/gnash/Makefile
==============================================================================
--- head/graphics/gnash/Makefile	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/graphics/gnash/Makefile	Tue Jun  4 15:47:49 2013	(r319872)
@@ -3,7 +3,7 @@
 
 PORTNAME=	gnash
 PORTVERSION=	0.8.10
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	graphics
 MASTER_SITES=	GNU/${PORTNAME}/${PORTVERSION}/
 

Modified: head/www/gecko-mediaplayer/Makefile
==============================================================================
--- head/www/gecko-mediaplayer/Makefile	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/gecko-mediaplayer/Makefile	Tue Jun  4 15:47:49 2013	(r319872)
@@ -3,6 +3,7 @@
 
 PORTNAME=	gecko-mediaplayer
 PORTVERSION=	1.0.8
+PORTREVISION=	1
 CATEGORIES=	www multimedia gnome
 MASTER_SITES=	GOOGLE_CODE
 

Modified: head/www/libxul/Makefile
==============================================================================
--- head/www/libxul/Makefile	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/Makefile	Tue Jun  4 15:47:49 2013	(r319872)
@@ -2,25 +2,26 @@
 # $FreeBSD$
 
 PORTNAME=	libxul
-DISTVERSION=	10.0.12
+DISTVERSION=	17.0.6
 CATEGORIES?=	www devel
-MASTER_SITES=	${MASTER_SITE_MOZILLA}
-MASTER_SITE_SUBDIR=	firefox/releases/${DISTVERSION}esr/source
+MASTER_SITES=	MOZILLA/firefox/releases/${DISTVERSION}esr/source
 DISTNAME=	firefox-${DISTVERSION}esr.source
 
 MAINTAINER?=	gecko@FreeBSD.org
 COMMENT?=	Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps
 
-BUILD_DEPENDS=	nspr>=4.8.8:${PORTSDIR}/devel/nspr \
+BUILD_DEPENDS=	nspr>=4.9.2:${PORTSDIR}/devel/nspr \
 		nss>=3.13.6_1:${PORTSDIR}/security/nss \
-		sqlite3>=3.7.7.1:${PORTSDIR}/databases/sqlite3 \
+		sqlite3>=3.7.13:${PORTSDIR}/databases/sqlite3 \
+		${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
 		cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \
 		unzip:${PORTSDIR}/archivers/unzip
 
-WRKSRC=		${WRKDIR}/mozilla-esr10
-CONFLICTS=	mozilla-[0-9]* libxul-1.9.*
+WRKSRC=		${WRKDIR}/mozilla-esr17
+CONFLICTS=	libxul-1.9.*
 
 USE_AUTOTOOLS=	autoconf213:env
+USE_PYTHON_BUILD=-2.7
 WANT_GNOME=	yes
 USE_QT4=	# empty
 QT_NONSTANDARD=	yes
@@ -45,8 +46,6 @@ PLIST_DIRSTRY=	share/idl
 MOZ_PKGCONFIG_FILES=	libxul-embedding libxul mozilla-js \
 			mozilla-plugin
 
-OPTIONS_DEFAULT=GIO
-
 .include "${.CURDIR}/../../www/firefox/Makefile.options"
 .include <bsd.port.pre.mk>
 
@@ -54,10 +53,6 @@ OPTIONS_DEFAULT=GIO
 MOZ_PKGCONFIG_FILES+=	mozilla-nss
 .endif
 
-.if !empty(CXX:M*clang++*) || (${CXX:Mc++} && ${OSVERSION} > 1000023)
-CXXFLAGS+=	-Wno-return-type-c-linkage
-.endif
-
 post-patch:
 	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
 		${WRKSRC}/xulrunner/stub/nsXULStub.cpp

Modified: head/www/libxul/distinfo
==============================================================================
--- head/www/libxul/distinfo	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/distinfo	Tue Jun  4 15:47:49 2013	(r319872)
@@ -1,2 +1,2 @@
-SHA256 (firefox-10.0.12esr.source.tar.bz2) = 9f12cb7fd18fc51e995cd67b70a090f32fcd8dcf636be1b840281f2612d9db40
-SIZE (firefox-10.0.12esr.source.tar.bz2) = 75510903
+SHA256 (firefox-17.0.6esr.source.tar.bz2) = a8d05a2ce61c5b8c0ab93acb01191e282f7387d285ac59a9db2d9fd685cb6401
+SIZE (firefox-17.0.6esr.source.tar.bz2) = 91112621

Added: head/www/libxul/files/extra-bug780531
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/extra-bug780531	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,13 @@
+--- configure.in~
++++ configure.in
+@@ -5151,8 +5148,8 @@ fi
+ 
+ AC_SUBST(MOZ_WEBRTC)
+ 
+-case "$target_cpu" in
+-arm*)
++case "$target" in
++arm-*-linux*|*-dragonfly*|*-freebsd*|*-netbsd*|*-openbsd*)
+     MOZ_SAMPLE_TYPE_S16LE=1
+     AC_DEFINE(MOZ_SAMPLE_TYPE_S16LE)
+     AC_SUBST(MOZ_SAMPLE_TYPE_S16LE)

Modified: head/www/libxul/files/patch-alsapulse
==============================================================================
--- head/www/libxul/files/patch-alsapulse	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-alsapulse	Tue Jun  4 15:47:49 2013	(r319872)
@@ -1,74 +1,65 @@
---- config/autoconf.mk.in~
-+++ config/autoconf.mk.in
-@@ -568,7 +568,13 @@ MOZ_LIBNOTIFY_CFLAGS	= @MOZ_LIBNOTIFY_CF
- MOZ_LIBNOTIFY_LIBS	= @MOZ_LIBNOTIFY_LIBS@
- MOZ_ENABLE_LIBNOTIFY	= @MOZ_ENABLE_LIBNOTIFY@
- 
-+MOZ_ALSA                = @MOZ_ALSA@
- MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS@
-+MOZ_ALSA_CFLAGS         = @MOZ_ALSA_CFLAGS@
-+
-+MOZ_PULSEAUDIO          = @MOZ_PULSEAUDIO@
-+MOZ_PULSEAUDIO_LIBS     = @MOZ_PULSEAUDIO_LIBS@
-+MOZ_PULSEAUDIO_CFLAGS   = @MOZ_PULSEAUDIO_CFLAGS@
- 
- GLIB_CFLAGS	= @GLIB_CFLAGS@
- GLIB_LIBS	= @GLIB_LIBS@
---- configure.in~
+diff --git configure.in configure.in
+index 5980b76..11f5f77 100644
+--- configure.in
 +++ configure.in
-@@ -5758,17 +5775,48 @@ dnl ====================================
+@@ -5600,13 +5600,25 @@ dnl ========================================================
  dnl = Check alsa availability on Linux if using sydneyaudio
  dnl ========================================================
  
 +MOZ_ARG_ENABLE_BOOL(alsa,
-+[  --enable-alsa          Enable Alsa support],
++[  --enable-alsa          Enable Alsa support (default on Linux)],
 +MOZ_ALSA=1,
 +MOZ_ALSA= MOZ_ALSA_FORCE=$enableval)
 +
  dnl If using sydneyaudio with Linux, ensure that the alsa library is available
--if test -n "$MOZ_SYDNEYAUDIO"; then
-+if test -n "$MOZ_SYDNEYAUDIO" -a "$MOZ_ALSA_FORCE" != "no"; then
-    case "$target_os" in
- linux*)
-+      MOZ_ALSA=1
-+      ;;
-+   esac
+-if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux"; then
++if test -n "$MOZ_SYDNEYAUDIO" -a "$OS_TARGET" = "Linux" -a "$MOZ_ALSA_FORCE" != "no"; then
++    MOZ_ALSA=1
 +fi
 +
 +if test -n "$MOZ_ALSA"; then
-       PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
++    AC_DEFINE(MOZ_CUBEB)
+     PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
           [echo "$MOZ_ALSA_PKG_ERRORS"
            AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux.  Disable with --disable-ogg --disable-wave --disable-webm.  (On Ubuntu, you might try installing the package libasound2-dev.)])])
--      ;;
--   esac
  fi
  
-+AC_SUBST(MOZ_ALSA_CFLAGS)
 +AC_SUBST(MOZ_ALSA)
 +
-+dnl ========================================================
-+dnl = Enable PulseAudio
-+dnl ========================================================
-+
-+MOZ_ARG_ENABLE_BOOL(pulseaudio,
-+[  --enable-pulseaudio          Enable PulseAudio support],
-+MOZ_PULSEAUDIO=1,
-+MOZ_PULSEAUDIO=)
-+
-+if test -n "$MOZ_PULSEAUDIO"; then
-+    PKG_CHECK_MODULES(MOZ_PULSEAUDIO, libpulse, ,
-+         [echo "$MOZ_PULSEAUDIO_PKG_ERRORS"
-+          AC_MSG_ERROR([pulseaudio audio backend requires libpulse package])])
-+fi
-+
-+AC_SUBST(MOZ_PULSEAUDIO_CFLAGS)
-+AC_SUBST(MOZ_PULSEAUDIO_LIBS)
-+AC_SUBST(MOZ_PULSEAUDIO)
-+
  dnl ========================================================
- dnl Permissions System
+ dnl = Enable PulseAudio
  dnl ========================================================
---- media/libsydneyaudio/src/Makefile.in~
+diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in
+index 5ab4dd8..c8df26f 100644
+--- media/libcubeb/src/Makefile.in
++++ media/libcubeb/src/Makefile.in
+@@ -24,10 +24,6 @@ endif
+ 
+ ifeq ($(OS_TARGET),Android)
+ # No Android implementation of libcubeb yet.
+-else ifeq ($(OS_TARGET),Linux)
+-CSRCS         = \
+-              cubeb_alsa.c \
+-              $(NULL)
+ endif
+ 
+ ifeq ($(OS_TARGET),Darwin)
+@@ -42,6 +38,12 @@ CSRCS           = \
+                 $(NULL)
+ endif
+ 
++ifdef MOZ_ALSA
++CSRCS         = \
++              cubeb_alsa.c \
++              $(NULL)
++endif
++
+ ifdef MOZ_PULSEAUDIO
+ CSRCS		= \
+ 		cubeb_pulse.c \
+diff --git media/libsydneyaudio/src/Makefile.in media/libsydneyaudio/src/Makefile.in
+index 8dda8ce..b19641d 100644
+--- media/libsydneyaudio/src/Makefile.in
 +++ media/libsydneyaudio/src/Makefile.in
 @@ -30,10 +30,6 @@ else ifeq ($(MOZ_WIDGET_TOOLKIT),android)
  CSRCS		= \
@@ -100,20 +91,24 @@
  ifeq ($(OS_ARCH),WINNT)
  OS_LIBS += winmm.lib
  endif
---- toolkit/library/libxul-config.mk~
-+++ toolkit/library/libxul-config.mk
-@@ -348,10 +348,12 @@ ifdef MOZ_NATIVE_LIBVPX
- EXTRA_DSO_LDOPTS += $(MOZ_LIBVPX_LIBS)
- endif
+diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+index 43384e9..e46a6e3 100644
+--- toolkit/library/Makefile.in
++++ toolkit/library/Makefile.in
+@@ -370,14 +370,11 @@ endif
+ 
+ EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib) 
  
 -ifdef MOZ_SYDNEYAUDIO
 -ifeq ($(OS_ARCH),Linux)
++ifneq (,$(MOZ_CUBEB)$(MOZ_SYDNEYAUDIO))
 +ifdef MOZ_ALSA
  EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)
  endif
-+
-+ifdef MOZ_PULSEAUDIO
-+EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS)
+-endif
+-
+ ifdef MOZ_PULSEAUDIO
+-ifdef MOZ_CUBEB
+ EXTRA_DSO_LDOPTS += $(MOZ_PULSEAUDIO_LIBS)
+ endif
  endif
- 
- ifdef HAVE_CLOCK_MONOTONIC

Added: head/www/libxul/files/patch-bug722975
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug722975	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,61 @@
+# HG changeset patch
+# Parent 9d3c9b863c697634e434b687d456bb82fa794ecf
+# User  Uli Schlachter <psychon@znc.in>
+Bug 722975 - --enable-system-cairo build is broken after Bug 715658 fixed
+
+
+diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
+--- gfx/thebes/gfxPlatform.cpp
++++ gfx/thebes/gfxPlatform.cpp
+@@ -484,21 +484,19 @@ gfxPlatform::CreateDrawTargetForSurface(
+ 
+ cairo_user_data_key_t kSourceSurface;
+ 
+ void SourceBufferDestroy(void *srcBuffer)
+ {
+   static_cast<SourceSurface*>(srcBuffer)->Release();
+ }
+ 
+-void SourceSnapshotDetached(cairo_surface_t *nullSurf)
++void SourceSnapshotDetached(void *nullSurf)
+ {
+-  gfxImageSurface* origSurf =
+-    static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface));
+-
++  gfxImageSurface *origSurf = static_cast<gfxImageSurface*>(nullSurf);
+   origSurf->SetData(&kSourceSurface, NULL, NULL);
+ }
+ 
+ RefPtr<SourceSurface>
+ gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
+ {
+   void *userData = aSurface->GetData(&kSourceSurface);
+ 
+@@ -588,24 +586,19 @@ gfxPlatform::GetSourceSurfaceForSurface(
+       }
+ 
+       srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(),
+                                                            imgSurface->Stride(),
+                                                            size, format);
+ 
+     }
+ 
+-    cairo_surface_t *nullSurf =
+-	cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
+-    cairo_surface_set_user_data(nullSurf,
+-                                &kSourceSurface,
+-                                imgSurface,
+-                                NULL);
+-    cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached);
+-    cairo_surface_destroy(nullSurf);
++    cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic",
++                                (const unsigned char *) "data", 4,
++                                SourceSnapshotDetached, imgSurface.get());
+   }
+ 
+   srcBuffer->AddRef();
+   aSurface->SetData(&kSourceSurface, srcBuffer, SourceBufferDestroy);
+ 
+   return srcBuffer;
+ }
+ 

Added: head/www/libxul/files/patch-bug732340
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug732340	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,13 @@
+--- gfx/harfbuzz/src/hb-ot-layout.cc.orig	2012-06-24 22:14:46.463741874 -0400
++++ gfx/harfbuzz/src/hb-ot-layout.cc	2012-06-24 22:15:06.784770042 -0400
+@@ -537,4 +537,10 @@ hb_ot_layout_position_finish (hb_face_t 
+   GPOS::position_finish (buffer);
+ }
+ 
++#if !defined(__clang__) && defined(__GNUC__) && __GNUC_MINOR__ <= 3
++template int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const &) const;
++template int SortedArrayOf<Record<Script> >::search<unsigned int>(unsigned int const &) const;
++template int SortedArrayOf<IntType<unsigned short> >::search<unsigned int>(unsigned int const &) const;
++template int SortedArrayOf<RangeRecord>::search<unsigned int>(unsigned int const &) const;
++#endif
+ 

Modified: head/www/libxul/files/patch-bug753046
==============================================================================
--- head/www/libxul/files/patch-bug753046	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-bug753046	Tue Jun  4 15:47:49 2013	(r319872)
@@ -56,7 +56,7 @@ $NetBSD: patch-ipc_chromium_Makefile.in,
 
 --- ipc/chromium/Makefile.in.orig	2012-02-16 06:40:33.000000000 +0000
 +++ ipc/chromium/Makefile.in
-@@ -278,6 +278,34 @@ endif
+@@ -278,6 +278,33 @@ endif
  
  endif # } OS_LINUX
  
@@ -64,7 +64,6 @@ $NetBSD: patch-ipc_chromium_Makefile.in,
 +
 +CPPSRCS += \
 +  atomicops_internals_x86_gcc.cc \
-+  file_util_linux.cc \
 +  process_util_bsd.cc \
 +  time_posix.cc \
 +  $(NULL)
@@ -381,37 +380,29 @@ diff --git ipc/chromium/src/base/dir_rea
 index 9a34492..62b280c 100644
 --- ipc/chromium/src/base/dir_reader_posix.h
 +++ ipc/chromium/src/base/dir_reader_posix.h
-@@ -18,6 +18,8 @@
+@@ -18,16 +18,20 @@
+ // seems worse than falling back to enumerating all file descriptors so we will
+ // probably never implement this on the Mac.
  
- #if defined(OS_LINUX)
+-#if defined(OS_LINUX) && !defined(OS_OPENBSD)
++#if defined(OS_LINUX)
  #include "base/dir_reader_linux.h"
 +#elif defined(OS_BSD)
 +#include "base/dir_reader_bsd.h"
  #else
  #include "base/dir_reader_fallback.h"
  #endif
-@@ -26,6 +28,8 @@
  
- #if defined(OS_LINUX)
+ namespace base {
+ 
+-#if defined(OS_LINUX) && !defined(OS_OPENBSD)
++#if defined(OS_LINUX)
  typedef DirReaderLinux DirReaderPosix;
 +#elif defined(OS_BSD)
 +typedef DirReaderBSD DirReaderPosix;
  #else
  typedef DirReaderFallback DirReaderPosix;
  #endif
-diff --git ipc/chromium/src/base/file_util_linux.cc ipc/chromium/src/base/file_util_linux.cc
-index 171e44f..0c6dfcc 100644
---- ipc/chromium/src/base/file_util_linux.cc
-+++ ipc/chromium/src/base/file_util_linux.cc
-@@ -28,7 +28,7 @@ bool GetTempDir(FilePath* path) {
- }
- 
- bool GetShmemTempDir(FilePath* path) {
--#ifdef ANDROID
-+#if defined(ANDROID) || defined(OS_BSD)
-   return GetTempDir(path);
- #else
-   *path = FilePath("/dev/shm");
 $NetBSD: patch-ipc_chromium_src_base_file__util__posix.cc,v 1.2 2012/03/06 12:34:09 ryoon Exp $
 
 --- ipc/chromium/src/base/file_util_posix.cc.orig	2011-12-20 23:28:19.000000000 +0000
@@ -469,7 +460,7 @@ $NetBSD: patch-ipc_chromium_src_base_pla
 
 --- ipc/chromium/src/base/platform_thread_posix.cc.orig	2012-03-13 01:36:53.000000000 +0000
 +++ ipc/chromium/src/base/platform_thread_posix.cc
-@@ -9,9 +9,17 @@
+@@ -9,16 +9,24 @@
  
  #if defined(OS_MACOSX)
  #include <mach/mach.h>
@@ -477,21 +468,31 @@ $NetBSD: patch-ipc_chromium_src_base_pla
 +#include <lwp.h>
  #elif defined(OS_LINUX)
  #include <sys/syscall.h>
- #include <unistd.h>
-+#elif defined(OS_DRAGONFLY)
-+#include <unistd.h>
+-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
+ #include <sys/prctl.h>
+-#elif !defined(__NetBSD__)
+-#include <pthread_np.h>
 +#elif defined(OS_FREEBSD)
 +#include <sys/param.h>
 +#include <sys/thr.h>
-+#include <pthread_np.h>
+ #endif
++
++#if !defined(OS_MACOSX)
+ #include <unistd.h>
  #endif
  
++#if defined(OS_BSD) && !defined(OS_NETBSD)
++#include <pthread_np.h>
++#endif
++
  #if defined(OS_MACOSX)
-@@ -38,9 +45,20 @@
+ namespace base {
+ void InitThreading();
+@@ -38,9 +45,20 @@ PlatformThreadId PlatformThread::CurrentId() {
    // into the kernel.
  #if defined(OS_MACOSX)
    return mach_thread_self();
--#elif defined (__OpenBSD__)
+-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 +#elif defined(OS_NETBSD)
 +  return _lwp_self();
 +#elif defined(OS_DRAGONFLY)
@@ -511,6 +512,18 @@ $NetBSD: patch-ipc_chromium_src_base_pla
  #elif defined(OS_LINUX)
    return syscall(__NR_gettid);
  #endif
+@@ -102,9 +102,9 @@ void PlatformThread::SetName(const char* name) {
+   // Note that glibc also has a 'pthread_setname_np' api, but it may not be
+   // available everywhere and it's only benefit over using prctl directly is
+   // that it can set the name of threads other than the current thread.
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
++#if defined(OS_BSD) && !defined(OS_NETBSD)
+   pthread_set_name_np(pthread_self(), name);
+-#elif defined(__NetBSD__)
++#elif defined(OS_NETBSD)
+   pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #else
+   prctl(PR_SET_NAME, reinterpret_cast<uintptr_t>(name), 0, 0, 0); 
 $NetBSD: patch-ipc_chromium_src_base_process__util.h,v 1.1 2012/03/06 12:34:09 ryoon Exp $
 
 --- ipc/chromium/src/base/process_util.h.orig	2011-12-21 00:28:19.000000000 +0100
@@ -552,7 +565,7 @@ $NetBSD: patch-ipc_chromium_src_base_pro
 
 --- ipc/chromium/src/base/process_util_bsd.cc.orig	2012-04-01 00:04:28.000000000 +0000
 +++ ipc/chromium/src/base/process_util_bsd.cc
-@@ -0,0 +1,318 @@
+@@ -0,0 +1,367 @@
 +// Copyright (c) 2008 The Chromium Authors. All rights reserved.
 +// Use of this source code is governed by a BSD-style license that can be
 +// found in the LICENSE file.
@@ -587,6 +600,20 @@ $NetBSD: patch-ipc_chromium_src_base_pro
 +#define HAVE_POSIX_SPAWN	1
 +#endif
 +
++/*
++ * On platforms that are not gonk based, we fall back to an arbitrary
++ * UID. This is generally the UID for user `nobody', albeit it is not
++ * always the case.
++ */
++
++#if defined(OS_NETBSD) || defined(OS_OPENBSD)
++# define CHILD_UNPRIVILEGED_UID 32767
++# define CHILD_UNPRIVILEGED_GID 32767
++#else
++# define CHILD_UNPRIVILEGED_UID 65534
++# define CHILD_UNPRIVILEGED_GID 65534
++#endif
++
 +#ifndef __dso_public
 +# ifdef __exported
 +#  define __dso_public	__exported
@@ -635,6 +662,17 @@ $NetBSD: patch-ipc_chromium_src_base_pro
 +               const environment_map& env_vars_to_set,
 +               bool wait, ProcessHandle* process_handle,
 +               ProcessArchitecture arch) {
++  return LaunchApp(argv, fds_to_remap, env_vars_to_set,
++                   SAME_PRIVILEGES_AS_PARENT,
++                   wait, process_handle);
++}
++
++bool LaunchApp(const std::vector<std::string>& argv,
++               const file_handle_mapping_vector& fds_to_remap,
++               const environment_map& env_vars_to_set,
++               ChildPrivileges privs,
++               bool wait, ProcessHandle* process_handle,
++               ProcessArchitecture arch) {
 +  bool retval = true;
 +
 +  char* argv_copy[argv.size() + 1];
@@ -749,6 +787,17 @@ $NetBSD: patch-ipc_chromium_src_base_pro
 +               const environment_map& env_vars_to_set,
 +               bool wait, ProcessHandle* process_handle,
 +               ProcessArchitecture arch) {
++  return LaunchApp(argv, fds_to_remap, env_vars_to_set,
++                   SAME_PRIVILEGES_AS_PARENT,
++                   wait, process_handle);
++}
++
++bool LaunchApp(const std::vector<std::string>& argv,
++               const file_handle_mapping_vector& fds_to_remap,
++               const environment_map& env_vars_to_set,
++               ChildPrivileges privs,
++               bool wait, ProcessHandle* process_handle,
++               ProcessArchitecture arch) {
 +  scoped_array<char*> argv_cstr(new char*[argv.size() + 1]);
 +  // Illegal to allocate memory after fork and before execvp
 +  InjectiveMultimap fd_shuffle1, fd_shuffle2;
@@ -771,19 +820,32 @@ $NetBSD: patch-ipc_chromium_src_base_pro
 +
 +    CloseSuperfluousFds(fd_shuffle2);
 +
++    for (size_t i = 0; i < argv.size(); i++)
++      argv_cstr[i] = const_cast<char*>(argv[i].c_str());
++    argv_cstr[argv.size()] = NULL;
++
++    if (privs == UNPRIVILEGED) {
++      if (setgid(CHILD_UNPRIVILEGED_GID) != 0) {
++        DLOG(ERROR) << "FAILED TO setgid() CHILD PROCESS, path: " << argv_cstr[0];
++        _exit(127);
++      }
++      if (setuid(CHILD_UNPRIVILEGED_UID) != 0) {
++        DLOG(ERROR) << "FAILED TO setuid() CHILD PROCESS, path: " << argv_cstr[0];
++        _exit(127);
++      }
++      if (chdir("/") != 0)
++        gProcessLog.print("==> could not chdir()\n");
++    }
++
 +    for (environment_map::const_iterator it = env_vars_to_set.begin();
 +         it != env_vars_to_set.end(); ++it) {
 +      if (setenv(it->first.c_str(), it->second.c_str(), 1/*overwrite*/))
 +        _exit(127);
 +    }
-+
-+    for (size_t i = 0; i < argv.size(); i++)
-+      argv_cstr[i] = const_cast<char*>(argv[i].c_str());
-+    argv_cstr[argv.size()] = NULL;
-+    execvp(argv_cstr[0], argv_cstr.get());
++    execv(argv_cstr[0], argv_cstr.get());
 +    // if we get here, we're in serious trouble and should complain loudly
 +    DLOG(ERROR) << "FAILED TO exec() CHILD PROCESS, path: " << argv_cstr[0];
-+    exit(127);
++    _exit(127);
 +  } else {
 +    gProcessLog.print("==> process %d launched child process %d\n",
 +                      GetCurrentProcId(), pid);
@@ -945,57 +1007,6 @@ $NetBSD: patch-ipc_chromium_src_base_sys
  #else
    long pages = sysconf(_SC_PHYS_PAGES);
    long page_size = sysconf(_SC_PAGE_SIZE);
-$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prcpucfg.h,v 1.2 2012/03/06 12:34:09 ryoon Exp $
-
---- ipc/chromium/src/base/third_party/nspr/prcpucfg.h.orig	2011-12-20 23:28:19.000000000 +0000
-+++ ipc/chromium/src/base/third_party/nspr/prcpucfg.h
-@@ -34,7 +34,7 @@
- #include "base/third_party/nspr/prcpucfg_win.h"
- #elif defined(__APPLE__)
- #include "base/third_party/nspr/prcpucfg_mac.h"
--#elif defined(__linux__) || defined(ANDROID)
-+#elif defined(__linux__) || defined(ANDROID) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
- #include "base/third_party/nspr/prcpucfg_linux.h"
- #elif defined(__OpenBSD__)
- #include "base/third_party/nspr/prcpucfg_openbsd.h"
-$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prtime.cc,v 1.1 2012/03/06 12:34:09 ryoon Exp $
-
---- ipc/chromium/src/base/third_party/nspr/prtime.cc.orig	2011-12-20 23:28:19.000000000 +0000
-+++ ipc/chromium/src/base/third_party/nspr/prtime.cc
-@@ -212,7 +212,7 @@ PR_ImplodeTime(const PRExplodedTime *exp
-     LL_ADD(retVal, retVal, temp);
- 
-     return retVal;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_DRAGONFLY)
-     struct tm exp_tm = {0};
-     exp_tm.tm_sec  = exploded->tm_sec;
-     exp_tm.tm_min  = exploded->tm_min;
-@@ -245,6 +245,24 @@ PR_ImplodeTime(const PRExplodedTime *exp
-     result *= kSecondsToMicroseconds;
-     result += exploded->tm_usec;
-     return result;
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
-+    struct tm exp_tm = {0};
-+    exp_tm.tm_sec  = exploded->tm_sec;
-+    exp_tm.tm_min  = exploded->tm_min;
-+    exp_tm.tm_hour = exploded->tm_hour;
-+    exp_tm.tm_mday = exploded->tm_mday;
-+    exp_tm.tm_mon  = exploded->tm_month;
-+    exp_tm.tm_year = exploded->tm_year - 1900;
-+
-+    // time_t is 64bit
-+    time_t absolute_time = timegm(&exp_tm);
-+
-+    PRTime result = static_cast<PRTime>(absolute_time);
-+    result -= exploded->tm_params.tp_gmt_offset +
-+              exploded->tm_params.tp_dst_offset;
-+    result *= kSecondsToMicroseconds;
-+    result += exploded->tm_usec;
-+    return result;
- #else
- #error No PR_ImplodeTime implemented on your platform.
- #endif
 diff --git ipc/chromium/src/base/time_posix.cc ipc/chromium/src/base/time_posix.cc
 index abf2a56..48791f6 100644
 --- ipc/chromium/src/base/time_posix.cc
@@ -1140,11 +1151,11 @@ $NetBSD: patch-ipc_glue_GeckoChildProces
          nsCString path;
          greDir->GetNativePath(path);
 -# ifdef OS_LINUX
--#  ifdef ANDROID
+-#  ifdef MOZ_WIDGET_ANDROID
 +# if defined(OS_LINUX) || defined(OS_BSD)
-+#  if defined(ANDROID) || defined(OS_BSD)
++#  if defined(MOZ_WIDGET_ANDROID) || defined(OS_BSD)
          path += "/lib";
- #  endif  // ANDROID
+ #  endif  // MOZ_WIDGET_ANDROID
          const char *ld_library_path = PR_GetEnv("LD_LIBRARY_PATH");
 @@ -557,7 +557,7 @@
    childArgv.push_back(pidstring);
@@ -1161,7 +1172,7 @@ $NetBSD: patch-ipc_glue_GeckoChildProces
    base::LaunchApp(childArgv, mFileMap,
 -#if defined(OS_LINUX) || defined(OS_MACOSX)
 +#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-                   newEnvVars,
+                   newEnvVars, privs,
  #endif
                    false, &process, arch);
 diff --git ipc/glue/SharedMemorySysV.h ipc/glue/SharedMemorySysV.h

Modified: head/www/libxul/files/patch-bug778078
==============================================================================
--- head/www/libxul/files/patch-bug778078	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-bug778078	Tue Jun  4 15:47:49 2013	(r319872)
@@ -1,11 +1,11 @@
 --- toolkit/xre/nsAppRunner.cpp~
 +++ toolkit/xre/nsAppRunner.cpp
-@@ -3133,7 +3133,7 @@ XRE_main(int argc, char* argv[], const n
-     gQtOnlyArgv[gQtOnlyArgc] = nsnull;
- #endif
- #if defined(MOZ_WIDGET_GTK2)
+@@ -3833,7 +3833,7 @@ XREMain::XRE_main(int argc, char* argv[]
+   ScopedLogging log;
+ 
+ #if defined(MOZ_WIDGET_GTK)
 -#ifdef MOZ_MEMORY
 +#if defined(MOZ_MEMORY) || defined(__FreeBSD__) || defined(__NetBSD__)
-     // Disable the slice allocator, since jemalloc already uses similar layout
-     // algorithms, and using a sub-allocator tends to increase fragmentation.
-     // This must be done before g_thread_init() is called.
+   // Disable the slice allocator, since jemalloc already uses similar layout
+   // algorithms, and using a sub-allocator tends to increase fragmentation.
+   // This must be done before g_thread_init() is called.

Modified: head/www/libxul/files/patch-bug783463
==============================================================================
--- head/www/libxul/files/patch-bug783463	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-bug783463	Tue Jun  4 15:47:49 2013	(r319872)
@@ -1,20 +1,14 @@
---- widget/src/qt/nsNativeThemeQt.cpp~
-+++ widget/src/qt/nsNativeThemeQt.cpp
-@@ -25,7 +25,6 @@
- #include "nsThemeConstants.h"
- #include "nsIServiceManager.h"
- #include "nsIDOMHTMLInputElement.h"
--#include <malloc.h>
- 
- 
- #include "gfxASurface.h"
---- widget/src/qt/nsSound.cpp~
-+++ widget/src/qt/nsSound.cpp
-@@ -40,6 +40,7 @@
- #include <QSound>
- 
- #include <string.h>
-+#include <unistd.h>
- 
- #include "nscore.h"
- #include "plstr.h"
+--- gfx/skia/Makefile.in~
++++ gfx/skia/Makefile.in
+@@ -339,10 +339,9 @@ CPPSRCS += \
+ 	SkMMapStream.cpp \
+ 	SkOSFile.cpp \
+ 	$(NULL)
+-ifeq (Linux,$(OS_TARGET))
++ifneq (,$(or $(MOZ_X11),$(filter Linux,$(OS_TARGET))))
+ CPPSRCS += \
+ 	SkFontHost_linux.cpp \
+-	SkFontHost_tables.cpp \
+ 	SkTime_Unix.cpp \
+ 	$(NULL)
+ endif

Added: head/www/libxul/files/patch-bug784631
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug784631	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,52 @@
+commit 66b3921
+Author: Terrence Cole <terrence@mozilla.com>
+Date:   Tue Sep 11 12:31:04 2012 -0700
+
+    Bug 784631 - Fix some clang build errors in SpiderMonkey; r=Waldo f=espindola
+    
+    Computed gotos are not in the C++ standard: clang and gcc differ on semantics.
+---
+ js/src/jsinterp.cpp | 3 ++-
+ js/src/jsutil.h     | 8 ++++----
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git js/src/jsinterp.cpp js/src/jsinterp.cpp
+index 0094c72..27a64a7 100644
+--- js/src/jsinterp.cpp
++++ js/src/jsinterp.cpp
+@@ -1231,6 +1231,7 @@ js::Interpret(JSContext *cx, StackFrame *entryFrame, InterpMode interpMode)
+     RootedPropertyName rootName0(cx);
+     RootedId rootId0(cx);
+     RootedShape rootShape0(cx);
++    DebugOnly<uint32_t> blockDepth;
+ 
+     if (!entryFrame)
+         entryFrame = regs.fp();
+@@ -3650,7 +3651,7 @@ BEGIN_CASE(JSOP_LEAVEBLOCK)
+ BEGIN_CASE(JSOP_LEAVEFORLETIN)
+ BEGIN_CASE(JSOP_LEAVEBLOCKEXPR)
+ {
+-    DebugOnly<uint32_t> blockDepth = regs.fp()->blockChain().stackDepth();
++    blockDepth = regs.fp()->blockChain().stackDepth();
+ 
+     regs.fp()->popBlock(cx);
+ 
+diff --git js/src/jsutil.h js/src/jsutil.h
+index 8838b6f..016a877 100644
+--- js/src/jsutil.h
++++ js/src/jsutil.h
+@@ -432,10 +432,10 @@ typedef size_t jsbitmap;
+ #if defined(__clang__)
+ # define JS_SILENCE_UNUSED_VALUE_IN_EXPR(expr)                                \
+     JS_BEGIN_MACRO                                                            \
+-        _Pragma("clang diagnostic push")                                      \
+-        _Pragma("clang diagnostic ignored \"-Wunused-value\"")                \
+-        expr;                                                                 \
+-        _Pragma("clang diagnostic pop")                                       \
++        _Pragma("(clang diagnostic push)")                                    \
++        _Pragma("(clang diagnostic ignored \"-Wunused-value\")")              \
++        {expr;}                                                               \
++        _Pragma("(clang diagnostic pop)")                                     \
+     JS_END_MACRO
+ #elif (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+ # define JS_SILENCE_UNUSED_VALUE_IN_EXPR(expr)                                \

Added: head/www/libxul/files/patch-bug786995
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug786995	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,36 @@
+# Bug 786995 - configure should check for SSSE3 support in the whole toolchain
+
+--- configure.in.orig	2012-09-02 00:37:29.000000000 +0200
++++ configure.in	2012-09-02 00:38:50.000000000 +0200
+@@ -1710,15 +1710,15 @@
+     _MOZ_RTTI_FLAGS_OFF=-fno-rtti
+ 
+     # Check for -mssse3 on $CC
+-    AC_MSG_CHECKING([for -mssse3 option to $CC])
+-    HAVE_COMPILER_FLAG_MSSSE3=
++    AC_MSG_CHECKING([if toolchain supports -mssse3 option])
++    HAVE_TOOLCHAIN_SUPPORT_MSSSE3=
+     _SAVE_CFLAGS=$CFLAGS
+     CFLAGS="$CFLAGS -mssse3"
+-    AC_TRY_COMPILE(,,AC_MSG_RESULT([yes])
+-                     [HAVE_COMPILER_FLAG_MSSSE3=1],
++    AC_TRY_COMPILE([asm ("pmaddubsw %xmm2,%xmm3");],,AC_MSG_RESULT([yes])
++                     [HAVE_TOOLCHAIN_SUPPORT_MSSSE3=1],
+                      AC_MSG_RESULT([no]))
+     CFLAGS=$_SAVE_CFLAGS
+-    AC_SUBST(HAVE_COMPILER_FLAG_MSSSE3)
++    AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+ 
+     # Turn on GNU-specific warnings:
+     # -Wall - turn on a lot of warnings
+--- gfx/skia/Makefile.in.orig	2012-09-02 00:39:00.000000000 +0200
++++ gfx/skia/Makefile.in	2012-09-02 00:39:21.000000000 +0200
+@@ -365,7 +365,7 @@
+ 	SkUtils_opts_SSE2.cpp \
+ 	opts_check_SSE2.cpp \
+ 	$(NULL)
+-ifdef HAVE_COMPILER_FLAG_MSSSE3
++ifdef HAVE_TOOLCHAIN_SUPPORT_MSSSE3
+ DEFINES += -DSK_BUILD_SSSE3
+ CPPSRCS += SkBitmapProcState_opts_SSSE3.cpp
+ endif

Added: head/www/libxul/files/patch-bug787904
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug787904	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,12 @@
+--- js/src/gc/Heap.h
++++ js/src/gc/Heap.h
+@@ -108,7 +108,8 @@ struct Cell
+  * Bug 692267: Move page size definition to gc/Memory.h and include it
+  *             directly once jsgc.h is no longer an installed header.
+  */
+-#if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
++#if (defined(SOLARIS) || defined(__FreeBSD__)) && \
++    (defined(__sparc) || defined(__sparcv9) || defined(__ia64))
+ const size_t PageShift = 13;
+ #else
+ const size_t PageShift = 12;

Modified: head/www/libxul/files/patch-bug788039
==============================================================================
--- head/www/libxul/files/patch-bug788039	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-bug788039	Tue Jun  4 15:47:49 2013	(r319872)
@@ -1,16 +1,5 @@
 # Bug 788039 - With no prefix search libevent via pkg-config.
 
---- config/autoconf.mk.in~
-+++ config/autoconf.mk.in
-@@ -227,7 +227,7 @@ MOZ_HUNSPELL_CFLAGS = @MOZ_HUNSPELL_CFLA
- 
- MOZ_NATIVE_LIBEVENT = @MOZ_NATIVE_LIBEVENT@
- MOZ_LIBEVENT_LIBS = @MOZ_LIBEVENT_LIBS@
--MOZ_LIBEVENT_INCLUDES = @MOZ_LIBEVENT_INCLUDES@
-+MOZ_LIBEVENT_CFLAGS = @MOZ_LIBEVENT_CFLAGS@
- 
- MOZ_NATIVE_LIBVPX = @MOZ_NATIVE_LIBVPX@
- MOZ_LIBVPX_LIBS = @MOZ_LIBVPX_LIBS@
 --- configure.in~
 +++ configure.in
 @@ -3854,7 +3854,7 @@ fi

Modified: head/www/libxul/files/patch-bug788108
==============================================================================
--- head/www/libxul/files/patch-bug788108	Tue Jun  4 15:47:06 2013	(r319871)
+++ head/www/libxul/files/patch-bug788108	Tue Jun  4 15:47:49 2013	(r319872)
@@ -7,7 +7,7 @@
 -//A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
 -#ifdef __FreeBSD__
 -#include <ieeefp.h>
--#ifdef __alpha__
+-#if !defined(__i386__) && !defined(__x86_64__)
 -static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
 -#else
 -static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;

Added: head/www/libxul/files/patch-bug788955
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/libxul/files/patch-bug788955	Tue Jun  4 15:47:49 2013	(r319872)
@@ -0,0 +1,299 @@
+diff --git Makefile.in Makefile.in
+index e341462..f75bd55 100644
+--- Makefile.in
++++ Makefile.in
+@@ -48,8 +48,10 @@ endif
+ ifdef MOZ_MEMORY
+ tier_base_dirs += memory/mozjemalloc
+ ifdef MOZ_JEMALLOC
++ifndef MOZ_NATIVE_JEMALLOC
+ tier_base_dirs += memory/jemalloc
+ endif
++endif
+ tier_base_dirs += memory/build
+ endif
+ ifndef MOZ_NATIVE_ZLIB
+diff --git allmakefiles.sh allmakefiles.sh
+index 6a9be4b..d2e49e3 100755
+--- allmakefiles.sh
++++ allmakefiles.sh
+@@ -59,7 +59,7 @@ if [ ! "$LIBXUL_SDK" ]; then
+     mozglue/Makefile
+     mozglue/build/Makefile
+   "
+-  if [ "$MOZ_JEMALLOC" ]; then
++  if [ "$MOZ_JEMALLOC" -a -z "$MOZ_NATIVE_JEMALLOC" ]; then
+     add_makefiles "
+       memory/jemalloc/Makefile
+     "
+diff --git configure.in configure.in
+index bb05782..2f32516 100644
+--- configure.in
++++ configure.in
+@@ -3711,21 +3711,22 @@ fi
+ 
+ dnl Check for the existence of various allocation headers/functions
+ 
++MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h"
+ MALLOC_H=
+-MOZ_CHECK_HEADER(malloc.h,        [MALLOC_H=malloc.h])
+-if test "$MALLOC_H" = ""; then
+-  MOZ_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h])
+-  if test "$MALLOC_H" = ""; then
+-    MOZ_CHECK_HEADER(sys/malloc.h,    [MALLOC_H=sys/malloc.h])
++
++for file in $MALLOC_HEADERS; do
++  MOZ_CHECK_HEADER($file, [MALLOC_H=$file])
++  if test "$MALLOC_H" != ""; then
++    AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
++    break
+   fi
+-fi
+-if test "$MALLOC_H" != ""; then
+-   AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
+-fi
++done
+ 
+ MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
+ AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
+ 
++AC_CHECK_FUNCS(malloc_usable_size)
++
+ dnl See if compiler supports some gcc-style attributes
+ 
+ AC_CACHE_CHECK(for __attribute__((always_inline)),
+@@ -6939,6 +6940,18 @@ else
+ fi
+ 
+ if test -z "$MOZ_MEMORY"; then
++  if test -n "$MOZ_JEMALLOC"; then
++    MOZ_NATIVE_JEMALLOC=1
++    AC_CHECK_FUNCS(mallctl nallocm,,
++      [MOZ_NATIVE_JEMALLOC=
++       break])
++    if test -n "$MOZ_NATIVE_JEMALLOC"; then
++      MOZ_MEMORY=1
++      AC_DEFINE(MOZ_MEMORY)
++      AC_DEFINE(MOZ_JEMALLOC)
++      AC_DEFINE(MOZ_NATIVE_JEMALLOC)
++    fi
++  fi
+   case "${target}" in
+     *-mingw*)
+       if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
+@@ -7033,6 +7046,7 @@ else
+ fi # MOZ_MEMORY
+ AC_SUBST(MOZ_MEMORY)
+ AC_SUBST(MOZ_JEMALLOC)
++AC_SUBST(MOZ_NATIVE_JEMALLOC)
+ AC_SUBST(MOZ_GLUE_LDFLAGS)
+ AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS)
+ AC_SUBST(WIN32_CRT_LIBS)
+@@ -8820,10 +8834,22 @@ fi
+ 
+ # Run jemalloc configure script
+ 
+-if test "$MOZ_JEMALLOC" -a "$MOZ_MEMORY"; then
++if test -z "$MOZ_NATIVE_JEMALLOC" -a "$MOZ_JEMALLOC" -a "$MOZ_MEMORY" ; then
+   ac_configure_args="$_SUBDIR_CONFIG_ARGS --build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_"
+-  if test "$OS_ARCH" = "Linux"; then
+-    MANGLE="malloc calloc valloc free realloc memalign posix_memalign malloc_usable_size"
++  case "$OS_ARCH" in
++    Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
++      MANGLE="malloc calloc valloc free realloc posix_memalign"
++      case "$OS_ARCH" in
++        Linux)
++          MANGLE="$MANGLE memalign malloc_usable_size"
++          ;;
++        FreeBSD)
++          MANGLE="$MANGLE malloc_usable_size"
++          ;;
++      esac
++      ;;
++  esac
++  if test -n "$MANGLE"; then
+     MANGLED=
+     JEMALLOC_WRAPPER=
+     if test -n "$_WRAP_MALLOC"; then
+diff --git memory/build/Makefile.in memory/build/Makefile.in
+index dca0f48..af93ee0 100644
+--- memory/build/Makefile.in
++++ memory/build/Makefile.in
+@@ -22,7 +22,9 @@ CSRCS = extraMallocFuncs.c
+ 
+ ifdef MOZ_JEMALLOC
+ CSRCS += mozjemalloc_compat.c
++ifndef MOZ_NATIVE_JEMALLOC
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/jemalloc)
++endif
+ else
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/mozjemalloc)
+ endif
+diff --git memory/build/extraMallocFuncs.c memory/build/extraMallocFuncs.c
+index 9d87629..03c8320 100644
+--- memory/build/extraMallocFuncs.c
++++ memory/build/extraMallocFuncs.c
+@@ -94,8 +94,16 @@ wrap(wcsdup)(const wchar_t *src)
+ #endif
+ 
+ #ifdef MOZ_JEMALLOC
++
++#undef wrap
++#if defined(MOZ_NATIVE_JEMALLOC)
++#define wrap(a) a
++#else
++#define wrap(a) je_ ## a
++#endif
++

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 3 Florian Smeets freebsd_committer freebsd_triage 2013-06-04 16:58:44 UTC
State Changed
From-To: open->closed

Committed. Thanks!