+diff -Nurb firefox-43.0b3/browser/installer/package-manifest.in firefox-43.0b3/browser/installer/package-manifest.in --- firefox-43.0b3/browser/installer/package-manifest.in 2015-11-09 23:55:53.000000000 +0100 +++ firefox-43.0b3/browser/installer/package-manifest.in 2015-11-11 04:46:30.234444306 +0100 @@ -1,3 +1,8 @@ +;* +;* Copyright 2015 OpenSXCE.org Martin Bochnig +;* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +;* + ; This Source Code Form is subject to the terms of the Mozilla Public ; License, v. 2.0. If a copy of the MPL was not distributed with this ; file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -810,13 +815,6 @@ #endif #endif -; for Solaris SPARC -#ifdef SOLARIS -bin/libfreebl_32fpu_3.so -bin/libfreebl_32int_3.so -bin/libfreebl_32int64_3.so -#endif - ; [Updater] ; #ifdef MOZ_UPDATER diff -Nurb firefox-43.0b3/config/system-headers firefox-43.0b3/config/system-headers --- firefox-43.0b3/config/system-headers 2015-11-09 23:55:56.000000000 +0100 +++ firefox-43.0b3/config/system-headers 2015-11-11 02:58:17.492081093 +0100 @@ -1064,7 +1064,6 @@ sys/stat.h sys/statvfs.h sys/syscall.h -sys/sysctl.h sys/sysinfo.h sys/sysmp.h sys/syssgi.h diff -Nurb firefox-43.0b3/dom/media/AudioStream.h firefox-43.0b3/dom/media/AudioStream.h --- firefox-43.0b3/dom/media/AudioStream.h 2015-11-09 23:56:07.000000000 +0100 +++ firefox-43.0b3/dom/media/AudioStream.h 2015-11-11 04:43:51.521691999 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* This Source Code Form is subject to the terms of the Mozilla Public @@ -17,6 +21,7 @@ #include "mozilla/UniquePtr.h" #include "CubebUtils.h" #include "soundtouch/SoundTouchFactory.h" +#include "soundtouch/SoundTouch.h" namespace mozilla { diff -Nurb firefox-43.0b3/dom/plugins/base/npapi.h firefox-43.0b3/dom/plugins/base/npapi.h --- firefox-43.0b3/dom/plugins/base/npapi.h 2015-11-09 23:56:12.000000000 +0100 +++ firefox-43.0b3/dom/plugins/base/npapi.h 2015-11-11 04:43:27.875790631 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -283,7 +287,7 @@ * gcc 3.x generated vtables on UNIX and OSX are incompatible with * previous compilers. */ -#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3)) +#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ == 3)) #define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK #else #define _NP_ABI_MIXIN_FOR_GCC3 0 diff -Nurb firefox-43.0b3/ipc/app/moz.build firefox-43.0b3/ipc/app/moz.build --- firefox-52.1.0esr/ipc/app/moz.build.~1~ 2017-05-04 18:32:43.374260575 +0300 +++ firefox-52.1.0esr/ipc/app/moz.build 2017-05-04 18:33:53.277261765 +0300 @@ -1,3 +1,8 @@ +#* +#* Copyright 2015 OpenSXCE.org Martin Bochnig +#* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +#* + # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public @@ -111,4 +116,14 @@ if CONFIG['GNU_CXX']: CXXFLAGS += ['-Wshadow'] +OS_LIBS += [ + '$(DEPTH)/security/nss/lib/util/libnssutil3.so', + '$(DEPTH)/security/nss/lib/ssl/libssl3.so', + '$(DEPTH)/security/nss/lib/smime/libsmime3.so', + '$(DEPTH)/security/nss/lib/nss/libnss3.so', + '$(DEPTH)/config/external/sqlite/libmozsqlite3.so', + '$(DEPTH)/config/external/lgpllibs/liblgpllibs.so', + '-lsendfile' + ] + DEFINES['MOZ_PLUGIN_CONTAINER'] = 1; diff -Nurb firefox-43.0b3/ipc/chromium/chromium-config.mozbuild firefox-43.0b3/ipc/chromium/chromium-config.mozbuild --- firefox-43.0b3/ipc/chromium/chromium-config.mozbuild 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/chromium-config.mozbuild 2015-11-11 04:47:34.468768986 +0100 @@ -68,5 +73,11 @@ 'OS_BSD': 1, }) + elif CONFIG['OS_ARCH'] == 'SunOS': + DEFINES.update({ + 'OS_SOLARIS': 1, + 'OS_POSIX': 1, + }) + else: DEFINES['OS_LINUX'] = 1 diff -Nurb firefox-43.0b3/ipc/chromium/moz.build firefox-43.0b3/ipc/chromium/moz.build --- firefox-52.1.0esr/ipc/chromium/moz.build.~1~ 2017-04-11 05:13:12.000000000 +0300 +++ firefox-52.1.0esr/ipc/chromium/moz.build 2017-05-05 17:44:55.396555699 +0300 @@ -33,6 +33,9 @@ 'src/chrome/common/ipc_message.cc', ] +if CONFIG['OS_ARCH'] == 'SunOS': + os_solaris = 1 + if os_win: SOURCES += [ 'src/base/condition_variable_win.cc', @@ -134,12 +137,24 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': DEFINES['HAVE_ANDROID_OS'] = True -if os_bsd or os_linux: +if os_bsd or os_linux or os_solaris: if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: SOURCES += [ 'src/base/message_pump_glib.cc', ] +if os_solaris: + SOURCES += [ + 'src/base/atomicops_internals_x86_gcc.cc', + 'src/base/process_util_linux.cc', + 'src/base/time_posix.cc', + ] + if not CONFIG['MOZ_NATIVE_LIBEVENT']: + SOURCES += [ + 'src/third_party/libevent/devpoll.c', + ] + LOCAL_INCLUDES += ['src/third_party/libevent/linux'] + ost = CONFIG['OS_TEST'] if '86' not in ost and 'arm' not in ost and 'aarch64' != ost and 'mips' not in ost: SOURCES += [ diff -Nurb firefox-43.0b3/ipc/chromium/src/base/message_loop.cc firefox-43.0b3/ipc/chromium/src/base/message_loop.cc --- firefox-43.0b3/ipc/chromium/src/base/message_loop.cc 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/base/message_loop.cc 2015-11-11 04:41:51.712388429 +0100 @@ -19,7 +23,7 @@ #if defined(OS_POSIX) #include "base/message_pump_libevent.h" #endif -#if defined(OS_LINUX) || defined(OS_BSD) +#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) #if defined(MOZ_WIDGET_GTK) #include "base/message_pump_glib.h" #endif @@ -145,7 +149,7 @@ if (type_ == TYPE_UI) { #if defined(OS_MACOSX) pump_ = base::MessagePumpMac::Create(); -#elif defined(OS_LINUX) || defined(OS_BSD) +#elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) pump_ = new base::MessagePumpForUI(); #endif // OS_LINUX } else if (type_ == TYPE_IO) { diff -Nurb firefox-43.0b3/ipc/chromium/src/base/message_pump_glib.cc firefox-43.0b3/ipc/chromium/src/base/message_pump_glib.cc --- firefox-52.1.0esr/ipc/chromium/src/base/message_pump_glib.cc.~1~ 2017-04-11 05:13:12.000000000 +0300 +++ firefox-52.1.0esr/ipc/chromium/src/base/message_pump_glib.cc 2017-05-04 18:39:21.261050452 +0300 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ // Copyright (c) 2008 The Chromium Authors. All rights reserved. @@ -8,6 +12,7 @@ #include #include +#include #include #include @@ -131,6 +136,12 @@ // Create our wakeup pipe, which is used to flag when work was scheduled. int fds[2]; CHECK(pipe(fds) == 0); + + int flags = fcntl(fds[0], F_GETFL, 0); + if (flags == -1) + flags = 0; + fcntl(fds[0], F_SETFL, flags | O_NDELAY); + wakeup_pipe_read_ = fds[0]; wakeup_pipe_write_ = fds[1]; wakeup_gpollfd_->fd = wakeup_pipe_read_; @@ -239,10 +250,9 @@ if (wakeup_gpollfd_->revents & G_IO_IN) { pipe_full_ = false; - char msg; - if (HANDLE_EINTR(read(wakeup_pipe_read_, &msg, 1)) != 1 || msg != '!') { - NOTREACHED() << "Error reading from the wakeup pipe."; - } + char buf[32]; + while (HANDLE_EINTR(read(wakeup_pipe_read_, &buf, 32))); + // Since we ate the message, we need to record that we have more work, // because HandleCheck() may be called without HandleDispatch being called // afterwards. @@ -311,6 +321,10 @@ // variables as we would then need locks all over. This ensures that if // we are sleeping in a poll that we will wake up. char msg = '!'; + char buf[32]; + + while (HANDLE_EINTR(read(wakeup_pipe_read_, &buf, 32))); + if (HANDLE_EINTR(write(wakeup_pipe_write_, &msg, 1)) != 1) { NOTREACHED() << "Could not write to the UI message loop wakeup pipe!"; } diff -Nurb firefox-43.0b3/ipc/chromium/src/base/message_pump_libevent.cc firefox-43.0b3/ipc/chromium/src/base/message_pump_libevent.cc --- firefox-43.0b3/ipc/chromium/src/base/message_pump_libevent.cc 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/base/message_pump_libevent.cc 2015-11-11 04:41:03.966933389 +0100 @@ -6,6 +10,10 @@ #include #include +#if defined(OS_SOLARIS) +#include +#include +#endif #if defined(ANDROID) || defined(OS_POSIX) #include #endif diff -Nurb firefox-43.0b3/ipc/chromium/src/base/process_util.h firefox-43.0b3/ipc/chromium/src/base/process_util.h --- firefox-43.0b3/ipc/chromium/src/base/process_util.h 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/base/process_util.h 2015-11-11 04:39:22.965415698 +0100 @@ -17,7 +21,7 @@ #ifndef STDOUT_FILENO #define STDOUT_FILENO 1 #endif -#elif defined(OS_LINUX) || defined(__GLIBC__) +#elif defined(OS_LINUX) || defined(OS_SOLARIS) || defined(__GLIBC__) #include #include #include @@ -25,6 +29,10 @@ #include #endif +#if defined(OS_SOLARIS) +#define NAME_MAX 14 +#endif + #include #include #include diff -Nurb firefox-43.0b3/ipc/chromium/src/base/sys_info_posix.cc firefox-43.0b3/ipc/chromium/src/base/sys_info_posix.cc --- firefox-44.0/ipc/chromium/src/base/sys_info_posix.cc.~1~ 2016-01-24 02:23:38.000000000 +0300 +++ firefox-44.0/ipc/chromium/src/base/sys_info_posix.cc 2016-01-28 09:07:30.519222021 +0300 @@ -119,7 +123,7 @@ // static std::string SysInfo::OperatingSystemName() { - utsname info; + struct utsname info; if (uname(&info) < 0) { NOTREACHED(); return ""; @@ -129,7 +133,7 @@ // static std::string SysInfo::CPUArchitecture() { - utsname info; + struct utsname info; if (uname(&info) < 0) { NOTREACHED(); return ""; diff -Nurb firefox-43.0b3/ipc/chromium/src/base/time.h firefox-43.0b3/ipc/chromium/src/base/time.h --- firefox-43.0b3/ipc/chromium/src/base/time.h 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/base/time.h 2015-11-11 04:37:56.089579002 +0100 @@ -62,6 +66,10 @@ return delta_; } +#if defined(OS_POSIX) + struct timespec ToTimeSpec() const; +#endif + // Returns the time delta in some unit. The F versions return a floating // point value, the "regular" versions return a rounded-down value. int InDays() const; @@ -224,6 +232,9 @@ static Time FromDoubleT(double dt); double ToDoubleT() const; +#if defined(OS_POSIX) + struct timeval ToTimeVal() const; +#endif #if defined(OS_WIN) static Time FromFileTime(FILETIME ft); diff -Nurb firefox-43.0b3/ipc/chromium/src/base/time_posix.cc firefox-43.0b3/ipc/chromium/src/base/time_posix.cc --- firefox-43.0b3/ipc/chromium/src/base/time_posix.cc 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/base/time_posix.cc 2015-11-11 04:37:32.672493005 +0100 @@ -65,11 +69,13 @@ timestruct.tm_wday = exploded.day_of_week; // mktime/timegm ignore this timestruct.tm_yday = 0; // mktime/timegm ignore this timestruct.tm_isdst = -1; // attempt to figure it out +#ifndef OS_SOLARIS timestruct.tm_gmtoff = 0; // not a POSIX field, so mktime/timegm ignore timestruct.tm_zone = NULL; // not a POSIX field, so mktime/timegm ignore +#endif time_t seconds; -#ifdef ANDROID +#if defined(ANDROID) || defined(OS_SOLARIS) seconds = mktime(×truct); #else if (is_local) @@ -167,7 +173,7 @@ // With numer and denom = 1 (the expected case), the 64-bit absolute time // reported in nanoseconds is enough to last nearly 585 years. -#elif defined(OS_OPENBSD) || defined(OS_POSIX) && \ +#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_POSIX) && \ defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0 struct timespec ts; @@ -192,4 +198,25 @@ return Now(); } +struct timespec TimeDelta::ToTimeSpec() const { + int64_t microseconds = InMicroseconds(); + time_t seconds = 0; + if (microseconds >= Time::kMicrosecondsPerSecond) { + seconds = InSeconds(); + microseconds -= seconds * Time::kMicrosecondsPerSecond; + } + struct timespec result = + {seconds, + microseconds * Time::kNanosecondsPerMicrosecond}; + return result; +} + +struct timeval Time::ToTimeVal() const { + struct timeval result; + int64_t us = us_ - kTimeTToMicrosecondsOffset; + result.tv_sec = us / Time::kMicrosecondsPerSecond; + result.tv_usec = us % Time::kMicrosecondsPerSecond; + return result; +} + } // namespace base diff -Nurb firefox-43.0b3/ipc/chromium/src/build/build_config.h firefox-43.0b3/ipc/chromium/src/build/build_config.h --- firefox-43.0b3/ipc/chromium/src/build/build_config.h 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/build/build_config.h 2015-11-11 04:37:06.456569677 +0100 @@ -30,6 +34,8 @@ #define OS_NETBSD 1 #elif defined(__OpenBSD__) #define OS_OPENBSD 1 +#elif defined(__sun__) || defined(__sun) +#define OS_SOLARIS 1 #elif defined(_WIN32) #define OS_WIN 1 #else @@ -45,7 +51,7 @@ // For access to standard POSIX features, use OS_POSIX instead of a more // specific macro. -#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) +#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS) #define OS_POSIX 1 #endif diff -Nurb firefox-43.0b3/ipc/chromium/src/third_party/libevent/arc4random.c firefox-43.0b3/ipc/chromium/src/third_party/libevent/arc4random.c --- firefox-43.0b3/ipc/chromium/src/third_party/libevent/arc4random.c 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/third_party/libevent/arc4random.c 2015-11-11 04:36:11.632868848 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* Portable arc4random.c based on arc4random.c from OpenBSD. * Portable version by Chris Davis, adapted for Libevent by Nick Mathewson * Copyright (c) 2010 Chris Davis, Niels Provos, and Nick Mathewson @@ -41,6 +45,8 @@ * RC4 is a registered trademark of RSA Laboratories. */ +#include "build/build_config.h" + #ifndef ARC4RANDOM_EXPORT #define ARC4RANDOM_EXPORT #endif @@ -59,7 +65,7 @@ #include #include #ifdef _EVENT_HAVE_SYS_SYSCTL_H -#include +;//#include #endif #endif #include @@ -167,6 +173,10 @@ } #endif +#if defined (OS_SOLARIS) + #undef _EVENT_HAVE_SYS_SYSCTL_H +#endif + #if defined(_EVENT_HAVE_SYS_SYSCTL_H) && defined(_EVENT_HAVE_SYSCTL) #if _EVENT_HAVE_DECL_CTL_KERN && _EVENT_HAVE_DECL_KERN_RANDOM && _EVENT_HAVE_DECL_RANDOM_UUID #define TRY_SEED_SYSCTL_LINUX diff -Nurb firefox-43.0b3/ipc/chromium/src/third_party/libevent/event.c firefox-43.0b3/ipc/chromium/src/third_party/libevent/event.c --- firefox-43.0b3/ipc/chromium/src/third_party/libevent/event.c 2015-11-09 23:55:51.000000000 +0100 +++ firefox-43.0b3/ipc/chromium/src/third_party/libevent/event.c 2015-11-11 04:35:48.184109611 +0100 @@ -1,4 +1,8 @@ /* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ +/* * Copyright (c) 2000-2007 Niels Provos * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson * @@ -79,7 +83,7 @@ extern const struct eventop pollops; #endif #ifdef _EVENT_HAVE_EPOLL -extern const struct eventop epollops; +//extern const struct eventop epollops; #endif #ifdef _EVENT_HAVE_WORKING_KQUEUE extern const struct eventop kqops; @@ -100,7 +104,7 @@ &kqops, #endif #ifdef _EVENT_HAVE_EPOLL - &epollops, +// &epollops, #endif #ifdef _EVENT_HAVE_DEVPOLL &devpollops, @@ -2883,8 +2887,8 @@ #endif if (evsig_global_setup_locks_(enable_locks) < 0) return -1; - if (evutil_secure_rng_global_setup_locks_(enable_locks) < 0) - return -1; +// if (evutil_secure_rng_global_setup_locks_(enable_locks) < 0) +// return -1; return 0; } #endif diff -Nurb firefox-43.0b3/ipc/glue/MessageLink.cpp firefox-43.0b3/ipc/glue/MessageLink.cpp --- firefox-43.0b3/ipc/glue/MessageLink.cpp 2015-11-09 23:55:52.000000000 +0100 +++ firefox-43.0b3/ipc/glue/MessageLink.cpp 2015-11-11 04:33:46.543611894 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ @@ -28,6 +32,10 @@ #include "nsISupportsImpl.h" #include "nsXULAppAPI.h" +#if defined(__sun__) || defined(__sun) +#include +#endif + using namespace mozilla; using namespace std; @@ -350,7 +358,7 @@ mExistingListener = mTransport->set_listener(this); #ifdef DEBUG if (mExistingListener) { - queue pending; + std::queue pending; mExistingListener->GetQueuedMessages(pending); MOZ_ASSERT(pending.empty()); } @@ -367,7 +375,7 @@ { AssertIOThread(); - queue pending; + std::queue pending; { MonitorAutoLock lock(*mChan->mMonitor); diff -Nurb firefox-43.0b3/js/xpconnect/shell/moz.build firefox-43.0b3/js/xpconnect/shell/moz.build --- firefox-52.1.0esr/js/xpconnect/shell/moz.build.~1~ 2017-05-04 17:49:11.276627344 +0300 +++ firefox-52.1.0esr/js/xpconnect/shell/moz.build 2017-05-04 18:04:06.492161813 +0300 @@ -55,6 +55,17 @@ 'xul.dll', ] +OS_LIBS += [ + '$(DEPTH)/security/nss/lib/util/libnssutil3.so', + '$(DEPTH)/security/nss/lib/ssl/libssl3.so', + '$(DEPTH)/security/nss/lib/smime/libsmime3.so', + '$(DEPTH)/security/nss/lib/nss/libnss3.so', + '$(DEPTH)/config/external/sqlite/libmozsqlite3.so', + '$(DEPTH)/config/external/lgpllibs/liblgpllibs.so', + '-lsendfile', + ] + + CFLAGS += CONFIG['TK_CFLAGS'] CXXFLAGS += CONFIG['TK_CFLAGS'] OS_LIBS += CONFIG['TK_LIBS'] diff -Nurb firefox-43.0b3/media/libvpx/vpx_ports/x86_abi_support.asm firefox-43.0b3/media/libvpx/vpx_ports/x86_abi_support.asm --- firefox-43.0b3/media/libvpx/vpx_ports/x86_abi_support.asm 2015-11-09 23:55:58.000000000 +0100 +++ firefox-43.0b3/media/libvpx/vpx_ports/x86_abi_support.asm 2015-11-11 04:29:26.094036788 +0100 @@ -1,3 +1,7 @@ +;/* +;* Copyright 2015 OpenSXCE.org Martin Bochnig +;* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +;*/ ; ; Copyright (c) 2010 The WebM project authors. All Rights Reserved. ; @@ -231,6 +235,11 @@ %else %define HIDDEN_DATA(x) x %endif + %ifidn SOLARIS,1 + %define HIDDEN_DATA(x) x:data hidden + %else + %define HIDDEN_DATA(x) x + %endif %else %macro GET_GOT 1 %endmacro diff -Nurb firefox-43.0b3/memory/mozalloc/mozalloc.cpp firefox-43.0b3/memory/mozalloc/mozalloc.cpp --- firefox-43.0b3/memory/mozalloc/mozalloc.cpp 2015-11-09 23:56:05.000000000 +0100 +++ firefox-43.0b3/memory/mozalloc/mozalloc.cpp 2015-11-11 04:28:01.758090217 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ @@ -196,6 +200,14 @@ } #endif // if defined(HAVE_VALLOC) +//#if defined(MOZ_MEMORY_SOLARIS) +#include "jemalloc_types.h" +extern "C" { +extern size_t malloc_usable_size_impl(const void *ptr); +extern void jemalloc_stats(jemalloc_stats_t* stats); +} +//#endif + #ifndef MOZ_STATIC_RUNTIME size_t moz_malloc_usable_size(void *ptr) @@ -206,7 +218,22 @@ #if defined(XP_DARWIN) return malloc_size(ptr); #elif defined(HAVE_MALLOC_USABLE_SIZE) || defined(MOZ_MEMORY) +//#if defined(SOLARIS) + static bool checked = false; + static bool using_jemalloc = false; + if (!checked) { + checked = true; + jemalloc_stats_t stats; + jemalloc_stats(&stats); + using_jemalloc = stats.allocated; + } + if (using_jemalloc) return malloc_usable_size_impl(ptr); + else + return 0; +//#else +// return malloc_usable_size_impl(ptr); +//#endif #elif defined(XP_WIN) return _msize(ptr); #else diff -Nurb firefox-43.0b3/memory/mozalloc/mozalloc_abort.cpp firefox-43.0b3/memory/mozalloc/mozalloc_abort.cpp --- firefox-43.0b3/memory/mozalloc/mozalloc_abort.cpp 2015-11-09 23:56:05.000000000 +0100 +++ firefox-43.0b3/memory/mozalloc/mozalloc_abort.cpp 2015-11-11 04:27:36.734597408 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : */ @@ -68,7 +72,7 @@ // // That segmentation fault will be interpreted as another bug by ASan and as a // result, ASan will just exit(1) instead of aborting. -void abort(void) +void std::abort(void) { #ifdef MOZ_WIDGET_ANDROID char msg[64] = {}; diff -Nurb firefox-43.0b3/mfbt/Poison.cpp firefox-43.0b3/mfbt/Poison.cpp --- firefox-43.0b3/mfbt/Poison.cpp 2015-11-09 23:56:05.000000000 +0100 +++ firefox-43.0b3/mfbt/Poison.cpp 2015-11-11 04:27:10.386453594 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public @@ -129,7 +133,11 @@ static bool ProbeRegion(uintptr_t aRegion, uintptr_t aSize) { +#if !defined(__sun__) if (madvise(reinterpret_cast(aRegion), aSize, MADV_NORMAL)) { +#else + if (posix_madvise(reinterpret_cast(aRegion), aSize, MADV_NORMAL)) { +#endif return true; } else { return false; diff -Nurb firefox-43.0b3/mfbt/decimal/Decimal.cpp firefox-43.0b3/mfbt/decimal/Decimal.cpp --- firefox-43.0b3/mfbt/decimal/Decimal.cpp 2015-11-09 23:56:05.000000000 +0100 +++ firefox-43.0b3/mfbt/decimal/Decimal.cpp 2015-11-11 04:26:47.694174422 +0100 @@ -1,4 +1,8 @@ /* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ +/* * Copyright (C) 2012 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,6 +37,7 @@ #include #include +#include using namespace moz_decimal_utils; @@ -686,13 +691,13 @@ Decimal Decimal::fromDouble(double doubleValue) { - if (std::isfinite(doubleValue)) - return fromString(mozToString(doubleValue)); + if (isnand(doubleValue)) + return nan(); - if (std::isinf(doubleValue)) - return infinity(doubleValue < 0 ? Negative : Positive); + if (finite(doubleValue)) +return fromString(mozToString(doubleValue)); - return nan(); + return infinity(doubleValue < 0 ? Negative : Positive); } Decimal Decimal::fromString(const String& str) diff -Nurb firefox-43.0b3/mfbt/lz4.c firefox-43.0b3/mfbt/lz4.c --- firefox-43.0b3/mfbt/lz4.c 2015-11-09 23:56:05.000000000 +0100 +++ firefox-43.0b3/mfbt/lz4.c 2015-11-11 04:26:21.344251245 +0100 @@ -1,4 +1,8 @@ /* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ +/* LZ4 - Fast LZ compression algorithm Copyright (C) 2011-2014, Yann Collet. BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) @@ -878,7 +882,7 @@ ) { /* Local Variables */ - const BYTE* restrict ip = (const BYTE*) source; + const BYTE* ip = (const BYTE*) source; const BYTE* ref; const BYTE* const iend = ip + inputSize; diff -Nurb firefox-43.0b3/modules/libjar/nsZipArchive.cpp firefox-43.0b3/modules/libjar/nsZipArchive.cpp --- firefox-43.0b3/modules/libjar/nsZipArchive.cpp 2015-11-09 23:56:12.000000000 +0100 +++ firefox-43.0b3/modules/libjar/nsZipArchive.cpp 2015-11-11 04:25:01.712690588 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -40,6 +44,7 @@ #include #include #include +extern "C" int madvise(caddr_t, size_t, int); #elif defined(XP_WIN) #include #endif @@ -624,8 +629,10 @@ // Success means optimized jar layout from bug 559961 is in effect uint32_t readaheadLength = xtolong(startp); if (readaheadLength) { -#if defined(XP_UNIX) - madvise(const_cast(startp), readaheadLength, MADV_WILLNEED); +#if defined(OS_SOLARIS) + posix_madvise((caddr_t)const_cast(startp), readaheadLength, MADV_WILLNEED); +#elif defined(XP_UNIX) + madvise((caddr_t)const_cast(startp), readaheadLength, MADV_WILLNEED); #elif defined(XP_WIN) if (aFd) { HANDLE hFile = (HANDLE) PR_FileDesc2NativeHandle(aFd); diff -Nurb firefox-43.0b3/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h firefox-43.0b3/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h --- firefox-43.0b3/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h 2015-11-09 23:56:13.000000000 +0100 +++ firefox-43.0b3/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h 2015-11-11 04:24:27.256060276 +0100 @@ -1,5 +1,8 @@ -// Copyright 2014 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ +// Copyright 2013 Red Hat Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -11,7 +14,7 @@ // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. -// * Neither the name of Google Inc. nor the names of its +// * Neither the name of Red Hat Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // @@ -29,10 +32,8 @@ // This file is an internal atomic implementation, use atomicops.h instead. -#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_ -#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_ - -#include +#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_ +#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_ namespace google { namespace protobuf { @@ -41,148 +42,100 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, Atomic32 old_value, Atomic32 new_value) { - return (Atomic32)atomic_cas_32((volatile uint32_t*)ptr, (uint32_t)old_value, (uint32_t)new_value); + __atomic_compare_exchange_n(ptr, &old_value, new_value, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); + return old_value; } inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, Atomic32 new_value) { - return (Atomic32)atomic_swap_32((volatile uint32_t*)ptr, (uint32_t)new_value); + return __atomic_exchange_n(ptr, new_value, __ATOMIC_RELAXED); } inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment) { - return (Atomic32)atomic_add_32_nv((volatile uint32_t*)ptr, (uint32_t)increment); -} - -inline void MemoryBarrier(void) { - membar_producer(); - membar_consumer(); + return __atomic_add_fetch(ptr, increment, __ATOMIC_RELAXED); } inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment) { - MemoryBarrier(); - Atomic32 ret = NoBarrier_AtomicIncrement(ptr, increment); - MemoryBarrier(); - - return ret; + return __atomic_add_fetch(ptr, increment, __ATOMIC_SEQ_CST); } inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, Atomic32 old_value, Atomic32 new_value) { - Atomic32 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value); - MemoryBarrier(); - - return ret; + __atomic_compare_exchange(ptr, &old_value, &new_value, true, + __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE); + return old_value; } inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, Atomic32 old_value, Atomic32 new_value) { - MemoryBarrier(); - return NoBarrier_CompareAndSwap(ptr, old_value, new_value); + __atomic_compare_exchange_n(ptr, &old_value, new_value, true, + __ATOMIC_RELEASE, __ATOMIC_ACQUIRE); + return old_value; } inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) { - *ptr = value; + __atomic_store_n(ptr, value, __ATOMIC_RELAXED); +} + +inline void MemoryBarrier() { + __sync_synchronize(); } inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) { - *ptr = value; - membar_producer(); + __atomic_store_n(ptr, value, __ATOMIC_SEQ_CST); } inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) { - membar_consumer(); - *ptr = value; + __atomic_store_n(ptr, value, __ATOMIC_RELEASE); } inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { - return *ptr; + return __atomic_load_n(ptr, __ATOMIC_RELAXED); } inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) { - Atomic32 val = *ptr; - membar_consumer(); - return val; + return __atomic_load_n(ptr, __ATOMIC_ACQUIRE); } inline Atomic32 Release_Load(volatile const Atomic32* ptr) { - membar_producer(); - return *ptr; + return __atomic_load_n(ptr, __ATOMIC_SEQ_CST); } -#ifdef GOOGLE_PROTOBUF_ARCH_64_BIT -inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr, - Atomic64 old_value, - Atomic64 new_value) { - return atomic_cas_64((volatile uint64_t*)ptr, (uint64_t)old_value, (uint64_t)new_value); -} +#ifdef __LP64__ -inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, Atomic64 new_value) { - return atomic_swap_64((volatile uint64_t*)ptr, (uint64_t)new_value); -} - -inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment) { - return atomic_add_64_nv((volatile uint64_t*)ptr, increment); +inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) { + __atomic_store_n(ptr, value, __ATOMIC_RELEASE); } -inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment) { - MemoryBarrier(); - Atomic64 ret = atomic_add_64_nv((volatile uint64_t*)ptr, increment); - MemoryBarrier(); - return ret; +inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) { + return __atomic_load_n(ptr, __ATOMIC_ACQUIRE); } inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr, Atomic64 old_value, Atomic64 new_value) { - Atomic64 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value); - MemoryBarrier(); - return ret; + __atomic_compare_exchange_n(ptr, &old_value, new_value, true, + __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE); + return old_value; } -inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, +inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr, Atomic64 old_value, Atomic64 new_value) { - MemoryBarrier(); - return NoBarrier_CompareAndSwap(ptr, old_value, new_value); -} - -inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) { - *ptr = value; -} - -inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) { - *ptr = value; - membar_producer(); + __atomic_compare_exchange_n(ptr, &old_value, new_value, true, + __ATOMIC_RELAXED, __ATOMIC_RELAXED); + return old_value; } -inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) { - membar_consumer(); - *ptr = value; -} - -inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) { - return *ptr; -} - -inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) { - Atomic64 ret = *ptr; - membar_consumer(); - return ret; -} - -inline Atomic64 Release_Load(volatile const Atomic64* ptr) { - membar_producer(); - return *ptr; -} -#endif +#endif // defined(__LP64__) } // namespace internal } // namespace protobuf } // namespace google -#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_ - +#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_ diff -Nurb firefox-43.0b3/toolkit/library/Makefile.in firefox-43.0b3/toolkit/library/Makefile.in --- firefox-43.0b3/toolkit/library/Makefile.in 2015-11-09 23:56:20.000000000 +0100 +++ firefox-43.0b3/toolkit/library/Makefile.in 2015-11-11 04:23:35.762542329 +0100 @@ -1,8 +1,14 @@ +#* +#* Copyright 2015 OpenSXCE.org Martin Bochnig +#* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +#* + # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. include $(topsrcdir)/toolkit/library/libxul.mk +include $(topsrcdir)/toolkit/library/autoconflibxul.mk include $(topsrcdir)/config/config.mk diff -Nurb firefox-43.0b3/toolkit/library/autoconflibxul.mk firefox-43.0b3/toolkit/library/autoconflibxul.mk --- firefox-43.0b3/toolkit/library/autoconflibxul.mk 1970-01-01 01:00:00.000000000 +0100 +++ firefox-43.0b3/toolkit/library/autoconflibxul.mk 2015-11-11 04:12:33.031527320 +0100 @@ -0,0 +1,29 @@ +#* +#* CDDL HEADER START +#* +#* The contents of this file are subject to the terms of the +#* Common Development and Distribution License, Version 1.0 only +#* (the "License"). You may not use this file except in compliance +#* with the License. +#* +#* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +#* or http://www.opensolaris.org/os/licensing. +#* See the License for the specific language governing permissions +#* and limitations under the License. +#* +#* When distributing Covered Code, include this CDDL HEADER in each +#* file and include the License file at usr/src/OPENSOLARIS.LICENSE. +#* If applicable, add the following below this CDDL HEADER, with the +#* fields enclosed by brackets "[]" replaced with your own identifying +#* information: Portions Copyright [yyyy] [name of copyright owner] +#* +#* CDDL HEADER END +#* +#* +#* Copyright 2015 OpenSXCE.org Martin Bochnig +#* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +#* + +//MKSHLIB = /usr/bin/gld $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -h $(DSO_SONAME) -o $@ +//OS_LDFLAGS = -lpthread -z text -z ignore -R,'$$ORIGIN:$$ORIGIN/..' -z lazyload -z combreloc -z muldefs +MKSHLIB = /usr/bin/env LD_ALTEXEC=/usr/bin/gld PATH=/usr/gcc/4.5/bin:/usr/gcc/4.7/bin:/usr/gcc/4.8/bin:$PATH $(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$(DSO_SONAME) -o $@ diff -Nurb firefox-43.0b3/toolkit/library/libxul.mk firefox-43.0b3/toolkit/library/libxul.mk --- firefox-43.0b3/toolkit/library/libxul.mk 2015-11-09 23:56:20.000000000 +0100 +++ firefox-43.0b3/toolkit/library/libxul.mk 2015-11-11 04:22:41.043525007 +0100 @@ -1,3 +1,8 @@ +#* +#* Copyright 2015 OpenSXCE.org Martin Bochnig +#* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +#* + # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. @@ -51,15 +56,3 @@ endif endif endif - -ifdef _MSC_VER -get_first_and_last = dumpbin -exports $1 | grep _NSModule@@ | sort -k 3 | sed -n 's/^.*?\([^@]*\)@@.*$$/\1/;1p;$$p' -else -get_first_and_last = $(TOOLCHAIN_PREFIX)nm -g $1 | grep _NSModule$$ | grep -vw refptr | sort | sed -n 's/^.* _*\([^ ]*\)$$/\1/;1p;$$p' -endif - -LOCAL_CHECKS = test "$$($(get_first_and_last) | xargs echo)" != "start_kPStaticModules_NSModule end_kPStaticModules_NSModule" && echo "NSModules are not ordered appropriately" && exit 1 || exit 0 - -ifeq (Linux,$(OS_ARCH)) -LOCAL_CHECKS += ; test "$$($(TOOLCHAIN_PREFIX)readelf -l $1 | awk '$1 == "LOAD" { t += 1 } END { print t }')" -le 1 && echo "Only one PT_LOAD segment" && exit 1 || exit 0 -endif diff -Nurb firefox-43.0b3/toolkit/mozapps/update/updater/updater.cpp firefox-43.0b3/toolkit/mozapps/update/updater/updater.cpp --- firefox-43.0b3/toolkit/mozapps/update/updater/updater.cpp 2015-11-09 23:56:22.000000000 +0100 +++ firefox-43.0b3/toolkit/mozapps/update/updater/updater.cpp 2015-11-11 04:21:45.699591445 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -33,6 +37,9 @@ * ----------- * method = "remove" | "rmdir" */ + +#define SOLARIS 1 + #include "bspatch.h" #include "progressui.h" #include "archivereader.h" diff -Nurb firefox-43.0b3/widget/GfxInfoX11.cpp firefox-43.0b3/widget/GfxInfoX11.cpp --- firefox-43.0b3/widget/GfxInfoX11.cpp 2015-11-09 23:56:24.000000000 +0100 +++ firefox-43.0b3/widget/GfxInfoX11.cpp 2015-11-11 04:20:40.181769382 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ @@ -210,13 +214,13 @@ // with Mesa, the version string contains "Mesa major.minor" and that's all the version information we get: // there is no actual driver version info. whereToReadVersionNumbers = Mesa_in_version_string + strlen("Mesa"); - if (strcasestr(mVendor.get(), "nouveau")) + if (PL_strcasestr(mVendor.get(), "nouveau")) mIsNouveau = true; - if (strcasestr(mRenderer.get(), "intel")) // yes, intel is in the renderer string + if (PL_strcasestr(mRenderer.get(), "intel")) // yes, intel is in the renderer string mIsIntel = true; - if (strcasestr(mRenderer.get(), "llvmpipe")) + if (PL_strcasestr(mRenderer.get(), "llvmpipe")) mIsLlvmpipe = true; - if (strcasestr(mRenderer.get(), "software rasterizer")) + if (PL_strcasestr(mRenderer.get(), "software rasterizer")) mIsOldSwrast = true; } else if (strstr(mVendor.get(), "NVIDIA Corporation")) { mIsNVIDIA = true; diff -Nurb firefox-43.0b3/xpcom/base/nsStatusReporterManager.cpp firefox-43.0b3/xpcom/base/nsStatusReporterManager.cpp --- firefox-43.0b3/xpcom/base/nsStatusReporterManager.cpp 2015-11-09 23:56:25.000000000 +0100 +++ firefox-43.0b3/xpcom/base/nsStatusReporterManager.cpp 2015-11-11 04:20:51.670640457 +0100 @@ -1,3 +1,7 @@ +/* + * Copyright 2015 OpenSXCE.org Martin Bochnig + * FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 + */ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public @@ -146,9 +150,11 @@ { static unsigned number = 1; nsresult rv; + int thispid = 181818; + thispid = getpid(); nsCString filename("status-reports-"); - filename.AppendInt(getpid()); + filename.AppendInt(thispid); filename.Append('-'); filename.AppendInt(number++); filename.AppendLiteral(".json"); diff -Nurb firefox-43.0b3/xpcom/reflect/xptcall/md/unix/Makefile.in firefox-43.0b3/xpcom/reflect/xptcall/md/unix/Makefile.in --- firefox-43.0b3/xpcom/reflect/xptcall/md/unix/Makefile.in 2015-11-09 23:56:26.000000000 +0100 +++ firefox-43.0b3/xpcom/reflect/xptcall/md/unix/Makefile.in 2015-11-11 04:16:49.272319483 +0100 @@ -1,3 +1,8 @@ +#* +#* Copyright 2015 OpenSXCE.org Martin Bochnig +#* FireFox 20/30/40++ gcc4.x port with Flash support for OpenSolaris++ x86/x64 +#* + # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this @@ -64,16 +69,3 @@ m4 -DAIX_OBJMODEL=$(AIX_OBJMODEL) $(INCLUDES) -I. $< > $@ endif endif - -ifeq ($(OS_ARCH),SunOS) -ifeq (86,$(findstring 86,$(OS_TEST))) -ifndef GNU_CC -xptcstubsdef_asm.solx86: $(DIST)/include/xptcstubsdef.inc - sed \ - -e 's/^\(STUB_ENTRY\)(\([0-9]\))/\11\(\2\)/' \ - -e 's/^\(STUB_ENTRY\)(\([0-9][0-9]\))/\12\(\2\)/' \ - -e 's/^\(STUB_ENTRY\)(\([0-9][0-9][0-9]\))/\13\(\2\)/' \ - $(DIST)/include/xptcstubsdef.inc > $@ -endif -endif -endif diff -Nurb firefox-43.0b3/xpcom/reflect/xptcall/md/unix/moz.build firefox-43.0b3/xpcom/reflect/xptcall/md/unix/moz.build --- firefox-43.0b3/xpcom/reflect/xptcall/md/unix/moz.build 2015-11-09 23:56:26.000000000 +0100 +++ firefox-43.0b3/xpcom/reflect/xptcall/md/unix/moz.build 2015-11-11 04:15:49.658504202 +0100 @@ -47,9 +52,6 @@ ] if CONFIG['OS_ARCH'] == 'SunOS' and '86' in CONFIG['OS_TEST']: - GENERATED_FILES = [ - 'xptcstubsdef_asm.solx86', - ] if CONFIG['OS_TEST'] == 'x86_64': if CONFIG['GNU_CC']: SOURCES += [