summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-05-28 05:42:07 +0000
committerGitHub <noreply@github.com>2018-05-28 05:42:07 +0000
commita147b682697db1ce8e11010c72a19edb7eb7c213 (patch)
tree5de690c4db2bd97f5a9d07d2a0c2b5b446645600
parent10623b2a31db629e42e9519c8428c5f6f23c8203 (diff)
downloaduxp-a147b682697db1ce8e11010c72a19edb7eb7c213.tar.gz
Revert "Always build with SSE2 support & display an error if not available"
-rw-r--r--application/palemoon/app/Makefile.in8
-rw-r--r--application/palemoon/app/moz.build3
-rw-r--r--application/palemoon/app/nsBrowserApp.cpp45
-rw-r--r--application/palemoon/confvars.sh5
-rw-r--r--browser/app/Makefile.in8
-rw-r--r--browser/app/moz.build4
-rw-r--r--browser/app/nsBrowserApp.cpp45
-rwxr-xr-xbrowser/confvars.sh5
-rw-r--r--build/autoconf/compiler-opts.m44
-rw-r--r--old-configure.in6
10 files changed, 2 insertions, 131 deletions
diff --git a/application/palemoon/app/Makefile.in b/application/palemoon/app/Makefile.in
index 94f4dc1f35..c0f01212c2 100644
--- a/application/palemoon/app/Makefile.in
+++ b/application/palemoon/app/Makefile.in
@@ -33,14 +33,6 @@ NSDISTMODE = copy
include $(topsrcdir)/config/config.mk
-# If we are trying to show an error dialog about the lack of SSE2 support,
-# make sure that code itself doesn't use SSE2.
-ifdef MOZ_LINUX_SSE2_STARTUP_ERROR
-CXXFLAGS := $(filter-out -march=% -msse2 -mfpmath=sse,$(CXXFLAGS))
-CXX := $(filter-out -march=% -msse2 -mfpmath=sse,$(CXX))
-CXXFLAGS += -msse -mno-sse2 -mfpmath=387
-endif
-
ifeq ($(OS_ARCH),WINNT)
# Rebuild firefox.exe if the manifest changes - it's included by splash.rc.
# (this dependency should really be just for firefox.exe, not other targets)
diff --git a/application/palemoon/app/moz.build b/application/palemoon/app/moz.build
index 044c3e2d16..8b358b6228 100644
--- a/application/palemoon/app/moz.build
+++ b/application/palemoon/app/moz.build
@@ -68,6 +68,3 @@ if CONFIG['MOZ_LINKER']:
if CONFIG['HAVE_CLOCK_MONOTONIC']:
OS_LIBS += CONFIG['REALTIME_LIBS']
-
-if CONFIG['MOZ_LINUX_SSE2_STARTUP_ERROR']:
- DEFINES['MOZ_LINUX_SSE2_STARTUP_ERROR'] = True
diff --git a/application/palemoon/app/nsBrowserApp.cpp b/application/palemoon/app/nsBrowserApp.cpp
index c73b05d23c..8b06135282 100644
--- a/application/palemoon/app/nsBrowserApp.cpp
+++ b/application/palemoon/app/nsBrowserApp.cpp
@@ -35,51 +35,6 @@
#include "mozilla/Telemetry.h"
#include "mozilla/WindowsDllBlocklist.h"
-#ifdef MOZ_LINUX_SSE2_STARTUP_ERROR
-#include <cpuid.h>
-#include "mozilla/Unused.h"
-
-static bool
-IsSSE2Available()
-{
- // The rest of the app has been compiled to assume that SSE2 is present
- // unconditionally, so we can't use the normal copy of SSE.cpp here.
- // Since SSE.cpp caches the results and we need them only transiently,
- // instead of #including SSE.cpp here, let's just inline the specific check
- // that's needed.
- unsigned int level = 1u;
- unsigned int eax, ebx, ecx, edx;
- unsigned int bits = (1u<<26);
- unsigned int max = __get_cpuid_max(0, nullptr);
- if (level > max) {
- return false;
- }
- __cpuid_count(level, 0, eax, ebx, ecx, edx);
- return (edx & bits) == bits;
-}
-
-static const char sSSE2Message[] =
- "This browser version requires a processor with the SSE2 instruction "
- "set extension.\n";
-
-__attribute__((constructor))
-static void
-SSE2Check()
-{
- if (IsSSE2Available()) {
- return;
- }
- // Using write() in order to avoid jemalloc-based buffering. Ignoring return
- // values, since there isn't much we could do on failure and there is no
- // point in trying to recover from errors.
- MOZ_UNUSED(write(STDERR_FILENO,
- sSSE2Message,
- MOZ_ARRAY_LENGTH(sSSE2Message) - 1));
- // _exit() instead of exit() to avoid running the usual "at exit" code.
- _exit(255);
-}
-#endif
-
#if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
#define MOZ_BROWSER_CAN_BE_CONTENTPROC
#include "../../ipc/contentproc/plugin-container.cpp"
diff --git a/application/palemoon/confvars.sh b/application/palemoon/confvars.sh
index d1d2ce065a..5109c0829b 100644
--- a/application/palemoon/confvars.sh
+++ b/application/palemoon/confvars.sh
@@ -98,11 +98,6 @@ if test "$OS_ARCH" = "WINNT" -o \
MOZ_BUNDLED_FONTS=1
fi
-# Display an error on non-SSE2 Linux systems
-if test "$OS_ARCH" = "Linux"; then
- MOZ_LINUX_SSE2_STARTUP_ERROR=1
-fi
-
# Short-circuit a few services to be removed
MOZ_MAINTENANCE_SERVICE=
MOZ_SERVICES_HEALTHREPORT=
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index ca87f09953..d807b4337d 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -23,14 +23,6 @@ NSDISTMODE = copy
include $(topsrcdir)/config/config.mk
-# If we are trying to show an error dialog about the lack of SSE2 support,
-# make sure that code itself doesn't use SSE2.
-ifdef MOZ_LINUX_SSE2_STARTUP_ERROR
-CXXFLAGS := $(filter-out -march=% -msse2 -mfpmath=sse,$(CXXFLAGS))
-CXX := $(filter-out -march=% -msse2 -mfpmath=sse,$(CXX))
-CXXFLAGS += -msse -mno-sse2 -mfpmath=387
-endif
-
ifeq ($(OS_ARCH),WINNT)
# Rebuild firefox.exe if the manifest changes - it's included by splash.rc.
# (this dependency should really be just for firefox.exe, not other targets)
diff --git a/browser/app/moz.build b/browser/app/moz.build
index 9650761eea..1004e280ca 100644
--- a/browser/app/moz.build
+++ b/browser/app/moz.build
@@ -70,10 +70,6 @@ if CONFIG['HAVE_CLOCK_MONOTONIC']:
if CONFIG['MOZ_GPSD']:
DEFINES['MOZ_GPSD'] = True
-
-if CONFIG['MOZ_LINUX_SSE2_STARTUP_ERROR']:
- DEFINES['MOZ_LINUX_SSE2_STARTUP_ERROR'] = True
-
for icon in ('firefox', 'document', 'newwindow', 'newtab', 'pbmode'):
DEFINES[icon.upper() + '_ICO'] = '"%s/dist/branding/%s.ico"' % (
TOPOBJDIR, icon)
diff --git a/browser/app/nsBrowserApp.cpp b/browser/app/nsBrowserApp.cpp
index fc5ea8785c..66ea8aed55 100644
--- a/browser/app/nsBrowserApp.cpp
+++ b/browser/app/nsBrowserApp.cpp
@@ -35,51 +35,6 @@
#include "mozilla/Telemetry.h"
#include "mozilla/WindowsDllBlocklist.h"
-#ifdef MOZ_LINUX_SSE2_STARTUP_ERROR
-#include <cpuid.h>
-#include "mozilla/Unused.h"
-
-static bool
-IsSSE2Available()
-{
- // The rest of the app has been compiled to assume that SSE2 is present
- // unconditionally, so we can't use the normal copy of SSE.cpp here.
- // Since SSE.cpp caches the results and we need them only transiently,
- // instead of #including SSE.cpp here, let's just inline the specific check
- // that's needed.
- unsigned int level = 1u;
- unsigned int eax, ebx, ecx, edx;
- unsigned int bits = (1u<<26);
- unsigned int max = __get_cpuid_max(0, nullptr);
- if (level > max) {
- return false;
- }
- __cpuid_count(level, 0, eax, ebx, ecx, edx);
- return (edx & bits) == bits;
-}
-
-static const char sSSE2Message[] =
- "This browser version requires a processor with the SSE2 instruction "
- "set extension.\n";
-
-__attribute__((constructor))
-static void
-SSE2Check()
-{
- if (IsSSE2Available()) {
- return;
- }
- // Using write() in order to avoid jemalloc-based buffering. Ignoring return
- // values, since there isn't much we could do on failure and there is no
- // point in trying to recover from errors.
- MOZ_UNUSED(write(STDERR_FILENO,
- sSSE2Message,
- MOZ_ARRAY_LENGTH(sSSE2Message) - 1));
- // _exit() instead of exit() to avoid running the usual "at exit" code.
- _exit(255);
-}
-#endif
-
#if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
#define MOZ_BROWSER_CAN_BE_CONTENTPROC
#include "../../ipc/contentproc/plugin-container.cpp"
diff --git a/browser/confvars.sh b/browser/confvars.sh
index e8b911da35..0343034a41 100755
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -18,11 +18,6 @@ if test "$OS_ARCH" = "WINNT"; then
MOZ_MAINTENANCE_SERVICE=
fi
-# Display an error on non-SSE2 Linux systems
-if test "$OS_ARCH" = "Linux"; then
- MOZ_LINUX_SSE2_STARTUP_ERROR=1
-fi
-
# For Basilisk we want to use 52.9.YYYY.MM.DD as MOZ_APP_VERSION in release
# builds so add-on developers have something to target while maintaining
# Firefox compatiblity.
diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4
index 82d0b43fc6..c47d792f41 100644
--- a/build/autoconf/compiler-opts.m4
+++ b/build/autoconf/compiler-opts.m4
@@ -176,8 +176,8 @@ if test "$GNU_CC"; then
CFLAGS="$CFLAGS -ffunction-sections -fdata-sections"
CXXFLAGS="$CXXFLAGS -ffunction-sections -fdata-sections"
fi
- CFLAGS="$CFLAGS -fno-math-errno -msse2 -mfpmath=sse"
- CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno -msse2 -mfpmath=sse"
+ CFLAGS="$CFLAGS -fno-math-errno"
+ CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno"
if test -z "$CLANG_CC"; then
case "$CC_VERSION" in
diff --git a/old-configure.in b/old-configure.in
index 4d4d66f886..0d169d55fd 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -4802,12 +4802,6 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
-dnl Check if we need the Linux SSE2 error dialog
-dnl ========================================================
-
-AC_SUBST(MOZ_LINUX_SSE2_STARTUP_ERROR)
-
-dnl ========================================================
dnl Check for pixman and cairo
dnl ========================================================