Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Mar 2010 14:09:46 GMT
From:      svn-freebsd-gecko@chruetertee.ch
To:        freebsd-gecko@freebsd.org
Subject:   [SVN-Commit] r291 - in branches/experimental/www/firefox3-devel: . files
Message-ID:  <201003221409.o2ME9kTU054386@trillian.chruetertee.ch>

next in thread | raw e-mail | index | archive | help
Author: beat
Date: Mon Mar 22 14:09:45 2010
New Revision: 291

Log:
- Update patch releng6_pulseaudio to reflect recent source changes
- Temporarily mark broken on FreeBSD 6.x
- Add experimental knob WITH_OOPP_IPC to enable Out-Of-Process-Plugins
  feature. This needs additional work, cleanup, testing and review.
  Current status:
  - It builds :)
  - Flash plugin seem not to work:
    For application/x-shockwave-flash found plugin npwrapper.libflashplayer.so
    LoadPlugin() /usr/home/beat/.mozilla/plugins/npwrapper.libflashplayer.so returned 2b6ff7a0

    ###!!! [Parent][RPCChannel] Error: Channel error: cannot send/recv

    WARNING: Plugin host deleted the module without shutting down.: file PluginModuleParent.cpp, line 118

    ###!!! [Parent][RPCChannel] Error: Channel error: cannot send/recv

    WARNING: [PluginModuleParent::ActorDestroy] abnormal shutdown without minidump!: file PluginModuleParent.cpp, line 270
    ++DOMWINDOW == 19 (0x2f4c4c30) [serial = 20] [outer = 0x2e1bde00]
    WARNING: nsPluginTag not found in nsPluginHost::PluginCrashed: file nsPluginHost.cpp, line 5028
  - When disabling OOPP with dom.ipc.plugins.enabled=false Firefox coredumps on startup.

  ==> Feel free to contact me if you like to work on this.

Added:
   branches/experimental/www/firefox3-devel/files/extrapatch-ipc-chromium
Modified:
   branches/experimental/www/firefox3-devel/Makefile
   branches/experimental/www/firefox3-devel/files/releng6_pulseaudio

Modified: branches/experimental/www/firefox3-devel/Makefile
==============================================================================
--- branches/experimental/www/firefox3-devel/Makefile	Fri Mar 19 09:55:10 2010	(r290)
+++ branches/experimental/www/firefox3-devel/Makefile	Mon Mar 22 14:09:45 2010	(r291)
@@ -50,8 +50,7 @@
 		--enable-svg --enable-svg-renderer=cairo \
 		--enable-application=browser \
 		--enable-official-branding --disable-updater \
-		--enable-canvas --enable-libxul --disable-necko-wifi \
-		--disable-ipc
+		--enable-canvas --enable-libxul --disable-necko-wifi
 
 SYSTEM_PREFS=		${FAKEDIR}/lib/${MOZILLA}/defaults/pref/firefox.js
 
@@ -64,10 +63,18 @@
 .if ${OSVERSION} < 700000
 LIB_DEPENDS+=	pulse.0:${PORTSDIR}/audio/pulseaudio
 EXTRA_PATCHES=	${FILESDIR}/releng6_pulseaudio
+BROKEN=		Does not build
 .else
 EXTRA_PATCHES=	${FILESDIR}/libsydney_oss
 .endif
 
+.if defined(WITH_OOPP_IPC)
+LIB_DEPENDS+=	execinfo.1:${PORTSDIR}/devel/libexecinfo
+EXTRA_PATCHES+=	${FILESDIR}/extrapatch-ipc-chromium
+.else
+MOZ_OPTIONS+=	--disable-ipc
+.endif
+
 WRKSRC:=	${WRKSRC}-central
 
 GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
@@ -86,6 +93,11 @@
 		notify.1:${PORTSDIR}/devel/libnotify
 .endif
 
+pre-patch:
+.if defined(WITH_OOPP_IPC)
+	@${MKDIR} ${WRKSRC}/ipc/chromium/src/third_party/libevent/freebsd
+.endif
+
 post-extract::
 	@${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \
 		-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \

Added: branches/experimental/www/firefox3-devel/files/extrapatch-ipc-chromium
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/experimental/www/firefox3-devel/files/extrapatch-ipc-chromium	Mon Mar 22 14:09:45 2010	(r291)
@@ -0,0 +1,1031 @@
+--- ipc/chromium/Makefile.in.orig	2010-03-15 14:55:38.000000000 +0100
++++ ipc/chromium/Makefile.in	2010-03-21 21:21:32.000000000 +0100
+@@ -269,6 +269,20 @@
+ 
+ endif # } OS_LINUX
+ 
++ifdef OS_FREEBSD # {
++
++CPPSRCS += \
++  atomicops_internals_x86_gcc.cc \
++  base_paths_linux.cc \
++  data_pack.cc \
++  file_util_linux.cc \
++  idle_timer_none.cc \
++  process_util_linux.cc \
++  time_posix.cc \
++  $(NULL)
++
++endif # } OS_FREEBSD
++
+ # libevent
+ 
+ ifdef OS_POSIX # {
+@@ -305,6 +319,11 @@
+   $(NULL)
+ endif # }
+ 
++ifdef OS_FREEBSD # {
++LOCAL_INCLUDES += -I$(srcdir)/src/third_party/libevent/freebsd
++CSRCS += kqueue.c
++endif # }
++
+ endif # }
+ 
+ include $(topsrcdir)/config/rules.mk
+--- ipc/chromium/chromium-config.mk.orig	2010-03-01 00:29:43.000000000 +0100
++++ ipc/chromium/chromium-config.mk	2010-03-12 13:54:37.000000000 +0100
+@@ -70,6 +70,17 @@
+   $(NULL)
+ 
+ else # } {
++ifeq ($(OS_ARCH),FreeBSD) # {
++
++OS_FREEBSD = 1
++OS_POSIX = 1
++
++DEFINES += \
++  -DOS_FREEBSD=1 \
++  -DOS_POSIX=1 \
++  $(NULL)
++
++else # } {
+ ifeq ($(OS_ARCH),WINNT) # {
+ OS_LIBS += $(call EXPAND_LIBNAME,psapi shell32 dbghelp)
+ 
+@@ -111,5 +122,6 @@
+ 
+ endif # }
+ endif # }
++endif # }
+ 
+-endif # }
+\ No newline at end of file
++endif # }
+--- ipc/chromium/src/base/base_paths.h.orig	2010-03-16 17:59:50.000000000 +0100
++++ ipc/chromium/src/base/base_paths.h	2010-03-16 18:00:10.000000000 +0100
+@@ -13,7 +13,7 @@
+ #include "base/base_paths_win.h"
+ #elif defined(OS_MACOSX)
+ #include "base/base_paths_mac.h"
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "base/base_paths_linux.h"
+ #endif
+ #include "base/path_service.h"
+--- ipc/chromium/src/base/debug_util_posix.cc.orig	2010-03-15 13:55:39.000000000 +0000
++++ ipc/chromium/src/base/debug_util_posix.cc	2010-03-22 07:50:19.000000000 +0000
+@@ -69,7 +69,7 @@
+   return being_debugged;
+ }
+ 
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ 
+ // We can look in /proc/self/status for TracerPid.  We are likely used in crash
+ // handling, so we are careful not to use the heap or have side effects.
+@@ -77,7 +77,11 @@
+ // can't detach without forking(), and that's not so great.
+ // static
+ bool DebugUtil::BeingDebugged() {
++#ifdef OS_FREEBSD
++  int status_fd = open("/usr/compat/linux/proc/self/status", O_RDONLY);
++#else
+   int status_fd = open("/proc/self/status", O_RDONLY);
++#endif
+   if (status_fd == -1)
+     return false;
+ 
+--- ipc/chromium/src/base/file_util.h.orig	2010-03-16 18:43:57.000000000 +0100
++++ ipc/chromium/src/base/file_util.h	2010-03-16 18:50:58.000000000 +0100
+@@ -13,6 +13,9 @@
+ #if defined(OS_WIN)
+ #include <windows.h>
+ #elif defined(OS_POSIX)
++#if defined(OS_FREEBSD)
++#include <sys/types.h>
++#endif
+ #include <fts.h>
+ #include <sys/stat.h>
+ #endif
+--- ipc/chromium/src/base/file_util_posix.cc.orig	2010-03-16 19:12:55.000000000 +0100
++++ ipc/chromium/src/base/file_util_posix.cc	2010-03-16 19:19:24.000000000 +0100
+@@ -69,10 +69,10 @@
+           (strcmp(ent->d_name, "..") == 0))
+         continue;
+ 
+-      struct stat64 st;
+-      int test = stat64(path.Append(ent->d_name).value().c_str(), &st);
++      struct stat st;
++      int test = stat(path.Append(ent->d_name).value().c_str(), &st);
+       if (test != 0) {
+-        LOG(ERROR) << "stat64 failed: " << strerror(errno);
++        LOG(ERROR) << "stat failed: " << strerror(errno);
+         continue;
+       }
+       // Here, we use Time::TimeT(), which discards microseconds. This
+@@ -104,8 +104,8 @@
+ // here.
+ bool Delete(const FilePath& path, bool recursive) {
+   const char* path_str = path.value().c_str();
+-  struct stat64 file_info;
+-  int test = stat64(path_str, &file_info);
++  struct stat file_info;
++  int test = stat(path_str, &file_info);
+   if (test != 0) {
+     // The Windows version defines this condition as success.
+     bool ret = (errno == ENOENT || errno == ENOTDIR);
+@@ -274,19 +274,19 @@
+ }
+ 
+ bool PathExists(const FilePath& path) {
+-  struct stat64 file_info;
+-  return (stat64(path.value().c_str(), &file_info) == 0);
++  struct stat file_info;
++  return (stat(path.value().c_str(), &file_info) == 0);
+ }
+ 
+ bool PathIsWritable(const FilePath& path) {
+   FilePath test_path(path);
+-  struct stat64 file_info;
+-  if (stat64(test_path.value().c_str(), &file_info) != 0) {
++  struct stat file_info;
++  if (stat(test_path.value().c_str(), &file_info) != 0) {
+     // If the path doesn't exist, test the parent dir.
+     test_path = test_path.DirName();
+     // If the parent dir doesn't exist, then return false (the path is not
+     // directly writable).
+-    if (stat64(test_path.value().c_str(), &file_info) != 0)
++    if (stat(test_path.value().c_str(), &file_info) != 0)
+       return false;
+   }
+   if (S_IWOTH & file_info.st_mode)
+@@ -299,8 +299,8 @@
+ }
+ 
+ bool DirectoryExists(const FilePath& path) {
+-  struct stat64 file_info;
+-  if (stat64(path.value().c_str(), &file_info) == 0)
++  struct stat file_info;
++  if (stat(path.value().c_str(), &file_info) == 0)
+     return S_ISDIR(file_info.st_mode);
+   return false;
+ }
+@@ -433,8 +433,8 @@
+ }
+ 
+ bool GetFileInfo(const FilePath& file_path, FileInfo* results) {
+-  struct stat64 file_info;
+-  if (stat64(file_path.value().c_str(), &file_info) != 0)
++  struct stat file_info;
++  if (stat(file_path.value().c_str(), &file_info) != 0)
+     return false;
+   results->is_directory = S_ISDIR(file_info.st_mode);
+   results->size = file_info.st_size;
+--- ipc/chromium/src/base/platform_file_posix.cc.orig	2010-03-16 19:01:11.000000000 +0100
++++ ipc/chromium/src/base/platform_file_posix.cc	2010-03-16 19:01:58.000000000 +0100
+@@ -7,6 +7,8 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ 
++#include <sys/stat.h>
++
+ #include "base/logging.h"
+ #include "base/string_util.h"
+ 
+--- ipc/chromium/src/base/platform_thread.h.orig	2010-03-16 17:30:10.000000000 +0100
++++ ipc/chromium/src/base/platform_thread.h	2010-03-16 17:33:59.000000000 +0100
+@@ -22,7 +22,7 @@
+ #elif defined(OS_POSIX)
+ #include <pthread.h>
+ typedef pthread_t PlatformThreadHandle;
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include <unistd.h>
+ typedef pid_t PlatformThreadId;
+ #elif defined(OS_MACOSX)
+--- ipc/chromium/src/base/process_util.h.orig	2010-03-21 21:46:28.000000000 +0100
++++ ipc/chromium/src/base/process_util.h	2010-03-21 21:53:45.000000000 +0100
+@@ -13,7 +13,7 @@
+ #if defined(OS_WIN)
+ #include <windows.h>
+ #include <tlhelp32.h>
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include <dirent.h>
+ #include <limits.h>
+ #include <sys/types.h>
+@@ -263,7 +263,7 @@
+ #if defined(OS_WIN)
+   HANDLE snapshot_;
+   bool started_iteration_;
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+   DIR *procfs_dir_;
+ #elif defined(OS_MACOSX)
+   std::vector<kinfo_proc> kinfo_procs_;
+--- ipc/chromium/src/base/process_util_posix.cc.orig	2010-03-16 19:04:36.000000000 +0100
++++ ipc/chromium/src/base/process_util_posix.cc	2010-03-16 19:08:26.000000000 +0100
+@@ -101,6 +101,9 @@
+ #if defined(OS_LINUX)
+   static const rlim_t kSystemDefaultMaxFds = 8192;
+   static const char fd_dir[] = "/proc/self/fd";
++#elif defined(OS_FREEBSD)
++  static const rlim_t kSystemDefaultMaxFds = 8192;
++  static const char fd_dir[] = "/dev/fd";
+ #elif defined(OS_MACOSX)
+   static const rlim_t kSystemDefaultMaxFds = 256;
+   static const char fd_dir[] = "/dev/fd";
+@@ -177,7 +180,7 @@
+ void SetAllFDsToCloseOnExec() {
+ #if defined(OS_LINUX)
+   const char fd_dir[] = "/proc/self/fd";
+-#elif defined(OS_MACOSX)
++#elif defined(OS_MACOSX) || defined(OS_FREEBSD)
+   const char fd_dir[] = "/dev/fd";
+ #endif
+   ScopedDIR dir_closer(opendir(fd_dir));
+--- ipc/chromium/src/base/third_party/nspr/prcpucfg.h.orig	2010-03-16 17:44:58.000000000 +0100
++++ ipc/chromium/src/base/third_party/nspr/prcpucfg.h	2010-03-16 17:46:06.000000000 +0100
+@@ -36,6 +36,8 @@
+ #include "base/third_party/nspr/prcpucfg_mac.h"
+ #elif defined(__linux__)
+ #include "base/third_party/nspr/prcpucfg_linux.h"
++#elif defined(__FreeBSD__)
++#include "base/third_party/nspr/prcpucfg_freebsd.h"
+ #else
+ #error Provide a prcpucfg.h appropriate for your platform
+ #endif
+--- /dev/null	2010-03-16 17:44:00.000000000 +0100
++++ ipc/chromium/src/base/third_party/nspr/prcpucfg_freebsd.h	2010-03-16 17:43:05.000000000 +0100
+@@ -0,0 +1,382 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * The contents of this file are subject to the Mozilla Public License Version
++ * 1.1 (the "License"); you may not use this file except in compliance with
++ * the License. You may obtain a copy of the License at
++ * http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an "AS IS" basis,
++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++ * for the specific language governing rights and limitations under the
++ * License.
++ *
++ * The Original Code is the Netscape Portable Runtime (NSPR).
++ *
++ * The Initial Developer of the Original Code is
++ * Netscape Communications Corporation.
++ * Portions created by the Initial Developer are Copyright (C) 1998-2000
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++#ifndef nspr_cpucfg___
++#define nspr_cpucfg___
++
++#ifndef XP_UNIX
++#define XP_UNIX
++#endif
++
++#ifndef FREEBSD
++#define FREEBSD
++#endif
++
++#define PR_AF_INET6 28  /* same as AF_INET6 */
++
++#ifndef HAVE_LONG_LONG
++#define HAVE_LONG_LONG
++#endif
++
++#if defined(__i386__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef  IS_BIG_ENDIAN
++#undef	HAVE_ALIGNED_DOUBLES
++#undef	HAVE_ALIGNED_LONGLONGS
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   4
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   4
++#define PR_BYTES_PER_DWORD  8
++#define PR_BYTES_PER_WORD_LOG2   2
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    32
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    32
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   5
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   5
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    4
++#define PR_ALIGN_OF_INT64   4
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  4
++#define PR_ALIGN_OF_POINTER 4
++
++#elif defined(__alpha__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef  IS_BIG_ENDIAN
++#define	HAVE_ALIGNED_DOUBLES
++#define	HAVE_ALIGNED_LONGLONGS
++#define IS_64
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   8
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   8
++#define PR_BYTES_PER_DWORD  8
++#define PR_BYTES_PER_WORD_LOG2   3
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    64
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    64
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   6
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   6
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    8
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 8
++
++#elif defined(__sparc__)
++
++#undef  IS_LITTLE_ENDIAN
++#define IS_BIG_ENDIAN 1
++#define	HAVE_ALIGNED_DOUBLES
++#define	HAVE_ALIGNED_LONGLONGS
++#define IS_64
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   8
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   8
++#define PR_BYTES_PER_DWORD  8
++#define PR_BYTES_PER_WORD_LOG2   3
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    64
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    64
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   6
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   6
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    8
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 8
++
++#elif defined(__ia64__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef  IS_BIG_ENDIAN
++#define	HAVE_ALIGNED_DOUBLES
++#define	HAVE_ALIGNED_LONGLONGS
++#define IS_64
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   8
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   8
++#define PR_BYTES_PER_DWORD  8
++#define PR_BYTES_PER_WORD_LOG2   3
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    64
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    64
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   6
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   6
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    8
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 8
++#define PR_ALIGN_OF_WORD    8
++
++#elif defined(__amd64__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef  IS_BIG_ENDIAN
++#define	HAVE_ALIGNED_DOUBLES
++#define	HAVE_ALIGNED_LONGLONGS
++#define IS_64
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   8
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   8
++#define PR_BYTES_PER_DWORD  8
++#define PR_BYTES_PER_WORD_LOG2   3
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    64
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    64
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   6
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   6
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    8
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 8
++#define PR_ALIGN_OF_WORD    8
++
++#elif defined(__powerpc__)
++
++#undef  IS_LITTLE_ENDIAN
++#define IS_BIG_ENDIAN    1
++
++#define PR_BYTES_PER_BYTE   1
++#define PR_BYTES_PER_SHORT  2
++#define PR_BYTES_PER_INT    4
++#define PR_BYTES_PER_INT64  8
++#define PR_BYTES_PER_LONG   4
++#define PR_BYTES_PER_FLOAT  4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD   4
++#define PR_BYTES_PER_DWORD  8
++
++#define PR_BITS_PER_BYTE    8
++#define PR_BITS_PER_SHORT   16
++#define PR_BITS_PER_INT     32
++#define PR_BITS_PER_INT64   64
++#define PR_BITS_PER_LONG    32
++#define PR_BITS_PER_FLOAT   32
++#define PR_BITS_PER_DOUBLE  64
++#define PR_BITS_PER_WORD    32
++
++#define PR_BITS_PER_BYTE_LOG2   3
++#define PR_BITS_PER_SHORT_LOG2  4
++#define PR_BITS_PER_INT_LOG2    5
++#define PR_BITS_PER_INT64_LOG2  6
++#define PR_BITS_PER_LONG_LOG2   5
++#define PR_BITS_PER_FLOAT_LOG2  5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2   5
++
++#define PR_ALIGN_OF_SHORT   2
++#define PR_ALIGN_OF_INT     4
++#define PR_ALIGN_OF_LONG    4
++#define PR_ALIGN_OF_INT64   8
++#define PR_ALIGN_OF_FLOAT   4
++#define PR_ALIGN_OF_DOUBLE  8
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD    4
++
++#define PR_BYTES_PER_WORD_LOG2   2
++#define PR_BYTES_PER_DWORD_LOG2  3
++
++#else
++
++#error "Unknown CPU architecture"
++
++#endif
++
++#ifndef NO_NSPR_10_SUPPORT
++
++#define BYTES_PER_BYTE		PR_BYTES_PER_BYTE
++#define BYTES_PER_SHORT 	PR_BYTES_PER_SHORT
++#define BYTES_PER_INT 		PR_BYTES_PER_INT
++#define BYTES_PER_INT64		PR_BYTES_PER_INT64
++#define BYTES_PER_LONG		PR_BYTES_PER_LONG
++#define BYTES_PER_FLOAT		PR_BYTES_PER_FLOAT
++#define BYTES_PER_DOUBLE	PR_BYTES_PER_DOUBLE
++#define BYTES_PER_WORD		PR_BYTES_PER_WORD
++#define BYTES_PER_DWORD		PR_BYTES_PER_DWORD
++
++#define BITS_PER_BYTE		PR_BITS_PER_BYTE
++#define BITS_PER_SHORT		PR_BITS_PER_SHORT
++#define BITS_PER_INT		PR_BITS_PER_INT
++#define BITS_PER_INT64		PR_BITS_PER_INT64
++#define BITS_PER_LONG		PR_BITS_PER_LONG
++#define BITS_PER_FLOAT		PR_BITS_PER_FLOAT
++#define BITS_PER_DOUBLE		PR_BITS_PER_DOUBLE
++#define BITS_PER_WORD		PR_BITS_PER_WORD
++
++#define BITS_PER_BYTE_LOG2	PR_BITS_PER_BYTE_LOG2
++#define BITS_PER_SHORT_LOG2	PR_BITS_PER_SHORT_LOG2
++#define BITS_PER_INT_LOG2	PR_BITS_PER_INT_LOG2
++#define BITS_PER_INT64_LOG2	PR_BITS_PER_INT64_LOG2
++#define BITS_PER_LONG_LOG2	PR_BITS_PER_LONG_LOG2
++#define BITS_PER_FLOAT_LOG2	PR_BITS_PER_FLOAT_LOG2
++#define BITS_PER_DOUBLE_LOG2 	PR_BITS_PER_DOUBLE_LOG2
++#define BITS_PER_WORD_LOG2	PR_BITS_PER_WORD_LOG2
++
++#define ALIGN_OF_SHORT		PR_ALIGN_OF_SHORT
++#define ALIGN_OF_INT		PR_ALIGN_OF_INT
++#define ALIGN_OF_LONG		PR_ALIGN_OF_LONG
++#define ALIGN_OF_INT64		PR_ALIGN_OF_INT64
++#define ALIGN_OF_FLOAT		PR_ALIGN_OF_FLOAT
++#define ALIGN_OF_DOUBLE		PR_ALIGN_OF_DOUBLE
++#define ALIGN_OF_POINTER	PR_ALIGN_OF_POINTER
++#define ALIGN_OF_WORD		PR_ALIGN_OF_WORD
++
++#define BYTES_PER_WORD_LOG2	PR_BYTES_PER_WORD_LOG2
++#define BYTES_PER_DWORD_LOG2	PR_BYTES_PER_DWORD_LOG2
++#define WORDS_PER_DWORD_LOG2	PR_WORDS_PER_DWORD_LOG2
++
++#endif /* NO_NSPR_10_SUPPORT */
++
++#endif /* nspr_cpucfg___ */
+--- ipc/chromium/src/base/third_party/nspr/prtime.cc.orig	2010-03-16 17:49:59.000000000 +0100
++++ ipc/chromium/src/base/third_party/nspr/prtime.cc	2010-03-16 17:50:20.000000000 +0100
+@@ -149,7 +149,7 @@
+     result *= kSecondsToMicroseconds;
+     result += exploded->tm_usec;
+     return result;
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+     struct tm exp_tm = {0};
+     exp_tm.tm_sec  = exploded->tm_sec;
+     exp_tm.tm_min  = exploded->tm_min;
+--- ipc/chromium/src/build/build_config.h.orig	2010-03-15 14:55:39.000000000 +0100
++++ ipc/chromium/src/build/build_config.h	2010-03-21 14:54:06.000000000 +0100
+@@ -4,7 +4,7 @@
+ 
+ // This file adds defines about the platform we're currently building on.
+ //  Operating System:
+-//    OS_WIN / OS_MACOSX / OS_LINUX / OS_POSIX (MACOSX or LINUX)
++//    OS_WIN / OS_MACOSX / OS_LINUX / OS_FREEBSD / OS_POSIX (MACOSX, FREEBSD or LINUX)
+ //  Compiler:
+ //    COMPILER_MSVC / COMPILER_GCC
+ //  Processor:
+@@ -19,6 +19,8 @@
+ #define OS_MACOSX 1
+ #elif defined(__linux__)
+ #define OS_LINUX 1
++#elif defined(__FreeBSD__)
++#define OS_FREEBSD 1
+ #elif defined(_WIN32)
+ #define OS_WIN 1
+ #else
+@@ -27,7 +29,7 @@
+ 
+ // For access to standard POSIX features, use OS_POSIX instead of a more
+ // specific macro.
+-#if defined(OS_MACOSX) || defined(OS_LINUX)
++#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_FREEBSD)
+ #define OS_POSIX 1
+ #endif
+ 
+--- ipc/chromium/src/chrome/common/ipc_message_utils.h.orig	2010-03-22 08:58:26.000000000 +0000
++++ ipc/chromium/src/chrome/common/ipc_message_utils.h	2010-03-22 09:04:57.000000000 +0000
+@@ -219,7 +219,7 @@
+   }
+ };
+ 
+-#if !(defined(OS_MACOSX) || (defined(CHROMIUM_MOZILLA_BUILD) && (defined(OS_LINUX) || defined(OS_WIN)) && defined(ARCH_CPU_64_BITS)))
++#if !(defined(OS_MACOSX) || (defined(CHROMIUM_MOZILLA_BUILD) && (defined(OS_LINUX) || defined(OS_WIN) || defined(OS_FREEBSD)) && defined(ARCH_CPU_64_BITS)))
+ // There size_t is a synonym for |unsigned long| ...
+ template <>
+ struct ParamTraits<size_t> {
+@@ -235,7 +235,7 @@
+   }
+ };
+ 
+-#elif !defined(OS_MACOSX)
++#elif !defined(OS_MACOSX) || !defined(OS_FREEBSD)
+ // ... so we need to define traits for |unsigned int|.
+ // XXX duplicating OS_MACOSX version below so as not to conflict
+ template <>
+@@ -272,7 +272,7 @@
+ };
+ #endif  // defined(OS_MACOSX)
+ 
+-#if !(defined(CHROMIUM_MOZILLA_BUILD) && defined(OS_LINUX) && defined(ARCH_CPU_64_BITS))
++#if !(defined(CHROMIUM_MOZILLA_BUILD) && (defined(OS_LINUX) || defined(OS_FREEBSD)) && defined(ARCH_CPU_64_BITS))
+ // int64 is |long int| on 64-bit systems, uint64 is |unsigned long|
+ template <>
+ struct ParamTraits<int64> {
+--- ipc/chromium/src/chrome/common/transport_dib.h.orig	2010-03-16 18:53:00.000000000 +0100
++++ ipc/chromium/src/chrome/common/transport_dib.h	2010-03-16 18:53:49.000000000 +0100
+@@ -13,7 +13,7 @@
+ 
+ #if defined(OS_WIN)
+ #include <windows.h>
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+ #include "chrome/common/x11_util.h"
+ #endif
+ 
+@@ -70,7 +70,7 @@
+   typedef base::SharedMemoryHandle Handle;
+   // On Mac, the inode number of the backing file is used as an id.
+   typedef base::SharedMemoryId Id;
+-#elif defined(OS_LINUX)
++#elif defined(OS_LINUX) || defined(OS_FREEBSD)
+   typedef int Handle;  // These two ints are SysV IPC shared memory keys
+   typedef int Id;
+ #endif
+--- /dev/null	2010-03-12 13:07:40.000000000 +0100
++++ ipc/chromium/src/third_party/libevent/freebsd/config.h	2010-03-12 13:07:40.000000000 +0100
+@@ -0,0 +1,254 @@
++/* config.h.  Generated from config.h.in by configure.  */
++/* config.h.in.  Generated from configure.in by autoheader.  */
++
++/* Define if clock_gettime is available in libc */
++#define DNS_USE_CPU_CLOCK_FOR_ID 1
++
++/* Define is no secure id variant is available */
++/* #undef DNS_USE_GETTIMEOFDAY_FOR_ID */
++
++/* Define to 1 if you have the `clock_gettime' function. */
++#define HAVE_CLOCK_GETTIME 1
++
++/* Define if /dev/poll is available */
++/* #undef HAVE_DEVPOLL */
++
++/* Define to 1 if you have the <dlfcn.h> header file. */
++#define HAVE_DLFCN_H 1
++
++/* Define if your system supports the epoll system calls */
++/* #undef HAVE_EPOLL */
++
++/* Define to 1 if you have the `epoll_ctl' function. */
++/* #undef HAVE_EPOLL_CTL */
++
++/* Define if your system supports event ports */
++/* #undef HAVE_EVENT_PORTS */
++
++/* Define to 1 if you have the `fcntl' function. */
++#define HAVE_FCNTL 1
++
++/* Define to 1 if you have the <fcntl.h> header file. */
++#define HAVE_FCNTL_H 1
++
++/* Define to 1 if you have the `getaddrinfo' function. */
++#define HAVE_GETADDRINFO 1
++
++/* Define to 1 if you have the `getnameinfo' function. */
++#define HAVE_GETNAMEINFO 1
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the `inet_ntop' function. */
++#define HAVE_INET_NTOP 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `kqueue' function. */
++#define HAVE_KQUEUE 1
++
++/* Define to 1 if you have the `nsl' library (-lnsl). */
++/* #undef HAVE_LIBNSL */
++
++/* Define to 1 if you have the `resolv' library (-lresolv). */
++/* #undef HAVE_LIBRESOLV */
++
++/* Define to 1 if you have the `rt' library (-lrt). */
++#define HAVE_LIBRT 1
++
++/* Define to 1 if you have the `socket' library (-lsocket). */
++/* #undef HAVE_LIBSOCKET */
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define to 1 if you have the <netinet/in6.h> header file. */
++/* #undef HAVE_NETINET_IN6_H */
++
++/* Define to 1 if you have the `poll' function. */
++#define HAVE_POLL 1
++
++/* Define to 1 if you have the <poll.h> header file. */
++#define HAVE_POLL_H 1
++
++/* Define to 1 if you have the `port_create' function. */
++/* #undef HAVE_PORT_CREATE */
++
++/* Define to 1 if you have the <port.h> header file. */
++/* #undef HAVE_PORT_H */
++
++/* Define to 1 if you have the `select' function. */
++#define HAVE_SELECT 1
++
++/* Define if F_SETFD is defined in <fcntl.h> */
++#define HAVE_SETFD 1
++
++/* Define to 1 if you have the `sigaction' function. */
++#define HAVE_SIGACTION 1
++
++/* Define to 1 if you have the `signal' function. */
++#define HAVE_SIGNAL 1
++
++/* Define to 1 if you have the <signal.h> header file. */
++#define HAVE_SIGNAL_H 1
++
++/* Define to 1 if you have the <stdarg.h> header file. */
++#define HAVE_STDARG_H 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strlcpy' function. */
++#define HAVE_STRLCPY 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtok_r' function. */
++#define HAVE_STRTOK_R 1
++
++/* Define to 1 if you have the `strtoll' function. */
++#define HAVE_STRTOLL 1
++
++/* Define to 1 if the system has the type `struct in6_addr'. */
++#define HAVE_STRUCT_IN6_ADDR 1
++
++/* Define to 1 if you have the <sys/devpoll.h> header file. */
++/* #undef HAVE_SYS_DEVPOLL_H */
++
++/* Define to 1 if you have the <sys/epoll.h> header file. */
++/* #undef HAVE_SYS_EPOLL_H */
++
++/* Define to 1 if you have the <sys/event.h> header file. */
++#define HAVE_SYS_EVENT_H 1
++
++/* Define to 1 if you have the <sys/ioctl.h> header file. */
++#define HAVE_SYS_IOCTL_H 1
++
++/* Define to 1 if you have the <sys/param.h> header file. */
++#define HAVE_SYS_PARAM_H 1
++
++/* Define to 1 if you have the <sys/queue.h> header file. */
++#define HAVE_SYS_QUEUE_H 1
++
++/* Define to 1 if you have the <sys/select.h> header file. */
++#define HAVE_SYS_SELECT_H 1
++
++/* Define to 1 if you have the <sys/socket.h> header file. */
++#define HAVE_SYS_SOCKET_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
++#define HAVE_TAILQFOREACH 1
++
++/* Define if timeradd is defined in <sys/time.h> */
++#define HAVE_TIMERADD 1
++
++/* Define if timerclear is defined in <sys/time.h> */
++#define HAVE_TIMERCLEAR 1
++
++/* Define if timercmp is defined in <sys/time.h> */
++#define HAVE_TIMERCMP 1
++
++/* Define if timerisset is defined in <sys/time.h> */
++#define HAVE_TIMERISSET 1
++
++/* Define to 1 if the system has the type `uint16_t'. */
++#define HAVE_UINT16_T 1
++
++/* Define to 1 if the system has the type `uint32_t'. */
++#define HAVE_UINT32_T 1
++
++/* Define to 1 if the system has the type `uint64_t'. */
++#define HAVE_UINT64_T 1
++
++/* Define to 1 if the system has the type `uint8_t'. */
++#define HAVE_UINT8_T 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define to 1 if you have the `vasprintf' function. */
++#define HAVE_VASPRINTF 1
++
++/* Define if kqueue works correctly with pipes */
++#define HAVE_WORKING_KQUEUE 1
++
++/* Name of package */
++#define PACKAGE "libevent"
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION ""
++
++/* The size of `int', as computed by sizeof. */
++#define SIZEOF_INT 4
++
++/* The size of `long', as computed by sizeof. */
++#define SIZEOF_LONG 4
++
++/* The size of `long long', as computed by sizeof. */
++#define SIZEOF_LONG_LONG 8
++
++/* The size of `short', as computed by sizeof. */
++#define SIZEOF_SHORT 2
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
++#define TIME_WITH_SYS_TIME 1
++
++/* Version number of package */
++#define VERSION "1.4.7-stable"
++
++/* Define to appropriate substitue if compiler doesnt have __func__ */
++/* #undef __func__ */
++
++/* Define to empty if `const' does not conform to ANSI C. */
++/* #undef const */
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++   calls it, or to nothing if 'inline' is not supported under any name.  */
++#ifndef __cplusplus
++/* #undef inline */
++#endif
++
++/* Define to `int' if <sys/types.h> does not define. */
++/* #undef pid_t */
++
++/* Define to `unsigned int' if <sys/types.h> does not define. */
++/* #undef size_t */
++
++/* Define to unsigned int if you dont have it */
++/* #undef socklen_t */
+--- ipc/glue/Makefile.in.orig	2010-03-17 00:49:47.000000000 +0100
++++ ipc/glue/Makefile.in	2010-03-17 00:50:15.000000000 +0100
+@@ -45,7 +45,7 @@
+ 
+ MODULE = ipc
+ LIBRARY_NAME = mozipc_s
+-FORCE_STATIC_LIB = 1
++#FORCE_STATIC_LIB = 1
+ LIBXUL_LIBRARY = 1
+ EXPORT_LIBRARY = 1
+ 
+--- toolkit/library/Makefile.in.orig	2010-03-21 22:12:05.000000000 +0100
++++ toolkit/library/Makefile.in	2010-03-21 22:12:38.000000000 +0100
+@@ -162,7 +162,7 @@
+ SDK_LIBRARY = $(SHARED_LIBRARY)
+ endif
+ 
+-EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS)
++EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS) -lexecinfo
+ 
+ ifndef MOZ_ENABLE_LIBXUL
+ EXTRA_DSO_LDOPTS += \
+--- dom/plugins/PluginModuleChild.cpp.orig	2010-03-16 19:55:39.000000000 +0100
++++ dom/plugins/PluginModuleChild.cpp	2010-03-16 19:56:45.000000000 +0100
+@@ -159,7 +159,7 @@
+ 
+     // TODO: use PluginPRLibrary here
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+     mShutdownFunc =
+         (NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
+ 
+@@ -1497,7 +1497,7 @@
+     PLUGIN_LOG_DEBUG_METHOD;
+     AssertPluginThread();
+ 
+-#if defined(OS_LINUX)
++#if defined(OS_LINUX) || defined(OS_FREEBSD)
+     *_retval = mInitializeFunc(&sBrowserFuncs, &mFunctions);
+     return true;
+ 

Modified: branches/experimental/www/firefox3-devel/files/releng6_pulseaudio
==============================================================================
--- branches/experimental/www/firefox3-devel/files/releng6_pulseaudio	Fri Mar 19 09:55:10 2010	(r290)
+++ branches/experimental/www/firefox3-devel/files/releng6_pulseaudio	Mon Mar 22 14:09:45 2010	(r291)
@@ -13,20 +13,21 @@
  ifeq ($(OS_ARCH),Linux)
  CSRCS		= \
  		sydney_audio_alsa.c \
---- toolkit/library/Makefile.in.orig	2009-08-11 17:22:45.000000000 +0200
-+++ toolkit/library/Makefile.in	2009-08-11 17:23:22.000000000 +0200
-@@ -231,12 +231,12 @@
+
+--- toolkit/library/Makefile.in.orig	2010-03-15 13:56:01.000000000 +0000
++++ toolkit/library/Makefile.in	2010-03-19 16:02:11.000000000 +0000
+@@ -210,12 +210,12 @@
  endif
  
  ifeq (gtk2,$(MOZ_WIDGET_TOOLKIT))
 -EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0
-+EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0  -lpulse -lpthread
++EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) $(MOZ_PANGO_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) -lgthread-2.0 -lpulse -lpthread
  EXTRA_DSO_LDOPTS += $(FT2_LIBS)
  endif
  
  ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
 -EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XT_LIBS) $(MOZ_QT_LIBS) -lgthread-2.0
 +EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(XT_LIBS) $(MOZ_QT_LIBS) -lgthread-2.0 -lpulse -lpthread
- EXTRA_DSO_LDOPTS += $(FT2_LIBS)
+ EXTRA_DSO_LDOPTS += $(FT2_LIBS) $(MOZ_PANGO_LIBS)
  endif
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003221409.o2ME9kTU054386>