Skip to content

Commit

Permalink
Bug 1186064 - Require Visual Studio 2015 Update 2; r=glandium
Browse files Browse the repository at this point in the history
Per froydnj in bug 1186064 comment mozilla#23, "it makes sense to proceed with removing
MSVC 2013 support." This commit does that.

We also go a step further and require VS2015 Update 2 instead of just
update 1. This temporarily brings us down to just 1 officially supported
Visual Studio version. However, VS2015u3 was just released and is
unofficially supported.

Since MOZ_CRT is no longer set, references to it have been removed.

MozReview-Commit-ID: 8MUR6qLzQA5
  • Loading branch information
indygreg committed Jul 6, 2016
1 parent a6b392e commit 005a2e6
Show file tree
Hide file tree
Showing 16 changed files with 47 additions and 259 deletions.
30 changes: 11 additions & 19 deletions build/gecko_templates.mozbuild
Original file line number Diff line number Diff line change
Expand Up @@ -55,27 +55,19 @@ def GeckoBinary(linkage='dependent', msvcrt='dynamic', mozglue=None):
error('`linkage` must be "dependent", "standalone" or None')

if mozglue:
if CONFIG['MOZ_CRT']:
if msvcrt == 'dynamic':
USE_LIBS += ['mozcrt']
elif msvcrt == 'static':
LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
if mozglue == 'program':
USE_LIBS += ['mozglue']
if CONFIG['MOZ_GLUE_IN_PROGRAM']:
if CONFIG['GNU_CC']:
LDFLAGS += ['-rdynamic']
if CONFIG['MOZ_MEMORY']:
USE_LIBS += ['memory']
elif mozglue == 'library':
if not CONFIG['MOZ_GLUE_IN_PROGRAM']:
USE_LIBS += ['mozglue']
else:
error('`msvcrt` must be "dynamic" or "static"')
else:
LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS']
if mozglue == 'program':
USE_LIBS += ['mozglue']
if CONFIG['MOZ_GLUE_IN_PROGRAM']:
if CONFIG['GNU_CC']:
LDFLAGS += ['-rdynamic']
if CONFIG['MOZ_MEMORY']:
USE_LIBS += ['memory']
elif mozglue == 'library':
if not CONFIG['MOZ_GLUE_IN_PROGRAM']:
USE_LIBS += ['mozglue']
else:
error('`mozglue` must be "program" or "library"')
error('`mozglue` must be "program" or "library"')

if not CONFIG['JS_STANDALONE']:
USE_LIBS += [
Expand Down
7 changes: 3 additions & 4 deletions build/moz.configure/toolchain.configure
Original file line number Diff line number Diff line change
Expand Up @@ -541,13 +541,12 @@ def compiler(language, host_or_target, c_compiler=None, other_compiler=None,
'Only clang/llvm 3.4 or newer is supported.')

if info.type == 'msvc':
if info.version < '18.00.30723' or (
'19' < info.version < '19.00.23506'):
if info.version < '19.00.23918':
raise FatalCheckError(
'This version (%s) of the MSVC compiler is not '
'supported.\n'
'You must install Visual C++ 2013 Update 3, Visual '
'C++ 2015 Update 1, or newer in order to build.\n'
'You must install Visual C++ 2015 Update 2 or newer in '
'order to build.\n'
'See https://developer.mozilla.org/en/'
'Windows_Build_Prerequisites' % info.version)

Expand Down
23 changes: 0 additions & 23 deletions build/win32/mozconfig.vs2013-win64

This file was deleted.

23 changes: 0 additions & 23 deletions build/win64/mozconfig.vs2013

This file was deleted.

5 changes: 0 additions & 5 deletions config/external/nss/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -367,12 +367,7 @@ endif
# Can't pass this in DEFAULT_GMAKE_FLAGS because that overrides
# definitions in NSS, so just export it into the sub-make's environment.
ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_MEMORY))
ifdef MOZ_CRT
# OS_LIBS comes from having mozcrt as a dependency in moz.build.
DLLFLAGS := $(OS_LIBS)
else
DLLFLAGS := -LIBPATH:$(ABS_DIST)/../mozglue/build -DEFAULTLIB:mozglue
endif
export DLLFLAGS
endif

Expand Down
3 changes: 0 additions & 3 deletions config/recurse.mk
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,6 @@ endif
ifeq ($(MOZ_REPLACE_MALLOC_LINKAGE),dummy library)
mozglue/build/target memory/replace/logalloc/replay/target: memory/replace/dummy/target
endif
ifdef MOZ_CRT
mozglue/crt/target: mozglue/build/target
endif
# js/src/target can end up invoking js/src/host rules (through object files
# depending on jsautokw.h, which depends on host_jskwgen, and that can't
# happen at the same time (bug #1146738)
Expand Down
1 change: 0 additions & 1 deletion js/src/make-source-package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ case $cmd in
${MKDIR} -p ${tgtpath}/mozglue
cp -pPR \
${TOPSRCDIR}/mozglue/build \
${TOPSRCDIR}/mozglue/crt \
${TOPSRCDIR}/mozglue/misc \
${TOPSRCDIR}/mozglue/moz.build \
${tgtpath}/mozglue
Expand Down
7 changes: 0 additions & 7 deletions js/src/old-configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -215,12 +215,6 @@ case "$target" in
AC_DEFINE(_USE_MATH_DEFINES) # Otherwise MSVC's math.h doesn't #define M_PI.

case "$CC_VERSION" in
18*)
_CC_SUITE=12
MSVS_VERSION=2013
MSVC_C_RUNTIME_DLL=msvcr120.dll
MSVC_CXX_RUNTIME_DLL=msvcp120.dll
;;
19*)
_CC_SUITE=14
MSVS_VERSION=2015
Expand Down Expand Up @@ -1915,7 +1909,6 @@ if test "$MOZ_MEMORY"; then
;;
esac
fi
AC_SUBST(MOZ_CRT)
AC_SUBST(MOZ_GLUE_IN_PROGRAM)
AC_SUBST_LIST(MOZ_GLUE_WRAP_LDFLAGS)

Expand Down
3 changes: 1 addition & 2 deletions mozglue/build/moz.build
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
else:
Library('mozglue')

if not CONFIG['MOZ_CRT']:
SDK_LIBRARY = True
SDK_LIBRARY = True

if CONFIG['OS_TARGET'] == 'Android':
SOURCES += [
Expand Down
89 changes: 0 additions & 89 deletions mozglue/crt/Makefile.in

This file was deleted.

14 changes: 0 additions & 14 deletions mozglue/crt/fixcrt.py

This file was deleted.

16 changes: 0 additions & 16 deletions mozglue/crt/moz.build

This file was deleted.

3 changes: 0 additions & 3 deletions mozglue/moz.build
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,5 @@ DIRS += [
'misc',
]

if CONFIG['MOZ_CRT']:
DIRS += ['crt']

if not CONFIG['JS_STANDALONE']:
TEST_DIRS += ['tests']
19 changes: 0 additions & 19 deletions old-configure.in
Original file line number Diff line number Diff line change
Expand Up @@ -321,12 +321,6 @@ case "$target" in
AC_DEFINE(_USE_MATH_DEFINES) # Otherwise MSVC's math.h doesn't #define M_PI.

case "$CC_VERSION" in
18*)
_CC_SUITE=12
MSVS_VERSION=2013
MSVC_C_RUNTIME_DLL=msvcr120.dll
MSVC_CXX_RUNTIME_DLL=msvcp120.dll
;;
19*)
_CC_SUITE=14
MSVS_VERSION=2015
Expand Down Expand Up @@ -5357,24 +5351,11 @@ else
case "${target}" in
*-mingw*)
export MOZ_NO_DEBUG_RTL=1
if test "$MSVS_VERSION" != "2015"; then
WIN32_CRT_LIBS="msvcrt.lib msvcprt.lib"
dnl Look for a broken crtdll.obj
WIN32_CRTDLL_FULLPATH=`lib -nologo -list $WIN32_CRT_LIBS | grep crtdll\\.obj`
lib -NOLOGO -OUT:crtdll.obj $WIN32_CRT_LIBS -EXTRACT:$WIN32_CRTDLL_FULLPATH
if grep -q '__imp__\{0,1\}free' crtdll.obj; then
MOZ_CRT=1
fi
rm crtdll.obj
fi
;;
esac
fi # MOZ_MEMORY
AC_SUBST(MOZ_SYSTEM_JEMALLOC)
AC_SUBST(MOZ_CRT)
export MOZ_CRT
AC_SUBST(MOZ_GLUE_IN_PROGRAM)
AC_SUBST_LIST(WIN32_CRT_LIBS)

# Allow the application to provide a subconfigure script.
# This should be after 'export MOZ_NO_DEBUG_RTL=1' since
Expand Down
8 changes: 2 additions & 6 deletions python/mozbuild/mozbuild/backend/visualstudio.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,13 @@ def get_id(name):
return str(uuid.uuid5(uuid.NAMESPACE_URL, name)).upper()

def visual_studio_product_to_solution_version(version):
if version == '2013':
return '12.00', '12'
elif version == '2015':
if version == '2015':
return '12.00', '14'
else:
raise Exception('Unknown version seen: %s' % version)

def visual_studio_product_to_platform_toolset_version(version):
if version == '2013':
return 'v120'
elif version == '2015':
if version == '2015':
return 'v140'
else:
raise Exception('Unknown version seen: %s' % version)
Expand Down
Loading

0 comments on commit 005a2e6

Please sign in to comment.