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
Responsible Changed From-To: freebsd-ports-bugs->gecko Over to maintainer (via the GNATS Auto Assign Tool)
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"
State Changed From-To: open->closed Committed. Thanks!