Browse Source

Revert "Always build with SSE2 support & display an error if not available"

pull/1/head
Moonchild 4 years ago committed by Roy Tam
parent
commit
170f2ade41
  1. 8
      application/palemoon/app/Makefile.in
  2. 3
      application/palemoon/app/moz.build
  3. 45
      application/palemoon/app/nsBrowserApp.cpp
  4. 5
      application/palemoon/confvars.sh
  5. 8
      browser/app/Makefile.in
  6. 4
      browser/app/moz.build
  7. 45
      browser/app/nsBrowserApp.cpp
  8. 5
      browser/confvars.sh
  9. 4
      build/autoconf/compiler-opts.m4
  10. 6
      old-configure.in

8
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)

3
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

45
application/palemoon/app/nsBrowserApp.cpp

@ -40,51 +40,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"

5
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=

8
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)

4
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)

45
browser/app/nsBrowserApp.cpp

@ -40,51 +40,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"

5
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.

4
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

6
old-configure.in

@ -4884,12 +4884,6 @@ if test "$USE_FC_FREETYPE"; then
fi
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 ========================================================

Loading…
Cancel
Save