The default bug view has changed. See this FAQ.

configure does not detect MSVC 2011 compiler

RESOLVED FIXED in mozilla10

Status

()

Core
Build Config
RESOLVED FIXED
6 years ago
5 years ago

People

(Reporter: gps, Assigned: gps)

Tracking

unspecified
mozilla10
All
Windows 8
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: fixed-in-bs)

Attachments

(1 attachment, 2 obsolete attachments)

(Assignee)

Description

6 years ago
I'm trying to build mozilla-central on Windows 8 with the Visual Studio 2011 toolchain and am getting the following error when running configure:

checking for strip... no
checking for windres... no
checking for midl... midl
configure: error: This version (17.00.40825.2) of the MSVC compiler is unsupport
ed. See https://developer.mozilla.org/en/Windows_Build_Prerequisites.
*** Fix above errors and then restart with               "c:/mozilla-build/pytho
n/python.exe c:/dev/mozilla-central/build/pymake/pymake/../make.py -f client.mk
build"
c:\dev\mozilla-central\client.mk:315:0: command 'cd obj-i686-pc-mingw32 &&   c:/
dev/mozilla-central/configure  \
  || ( echo "*** Fix above errors and then restart with\
               \"c:/mozilla-build/python/python.exe c:/dev/mozilla-central/build
/pymake/pymake/../make.py -f client.mk build\"" && exit 1 )' failed, return code
 1

I'll likely have a patch in a few minutes...
(Assignee)

Comment 1

6 years ago
Created attachment 560677 [details] [diff] [review]
Detect MSVC2011 Compiler in configure

This (trivial) patch detects the MSVC 2011 compiler in configure.

When applied, `make.py -f client.mk configure` works! (Although, there still might be a few warnings related to Windows 8/MSVC 2011 in there.) But, at least this patch unblocks on Windows 8 compiling.
Assignee: nobody → gps
Status: NEW → ASSIGNED
Attachment #560677 - Flags: review?(ted.mielczarek)
You also need to fix
*/installer/package-manifest.in
and
*/installer/removed-files.in
for the corresponding CRT.
And I forgot toolkit/mozapps/installer/packager.mk, too
(Assignee)

Comment 4

6 years ago
Ahh, good catch. I didn't realize those existed.

My compilation hasn't yet reached the installer phase. I could incorporate those into the patch easily enough or I can create a part 2 once compilation gets that far.
Oh, and you made me remember of yet another one: build/win32/Makefile.in. Man, we really need to group that.
(Assignee)

Comment 6

6 years ago
OK, I'll upload a new patch shortly.

In the meantime, the output from `make.py -f client.mk configure` without an existing objdir is at http://gps.pastebin.mozilla.org/1333021. I don't know enough about our build system (yet) to determine if there is anything fishy.
Nothing seems wrong at first (quick) glance.
Note that for the CRT to be installed, you need to manually set the WIN32_REDIST_DIR variable.
Comment on attachment 560677 [details] [diff] [review]
Detect MSVC2011 Compiler in configure

Review of attachment 560677 [details] [diff] [review]:
-----------------------------------------------------------------

::: configure.in
@@ +731,5 @@
>              AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
> +        elif test "$_CC_MAJOR_VERSION" = "17"; then
> +            _CC_SUITE=11
> +            AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
> +            AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)

I wonder if we shouldn't just fold these three blocks together now, like:
elif test $_CC_MAJOR_VERSION -ge 15; then
  _CC_SUITE=$(( $_CC_MAJOR_VERSION - 6 ))
  ...

What do you think?
Attachment #560677 - Flags: review?(ted.mielczarek) → review+
(Assignee)

Comment 9

6 years ago
Actually, I should have canceled the review since there were some missing files per comment #2.

As for rolling everything together, it is very tempting. We run the risk of something in the future not following convention. But, I suppose we can cross that bridge if it comes to that.

I'll upload a new patch when I have access to the computer it is on.
(Assignee)

Comment 10

6 years ago
Created attachment 564093 [details] [diff] [review]
Detect MSVC2011 Compiler in configure, v2

This version adds checks to files that were missed in the first iteration. I confirmed that detection and compilation works in both x86 and x64 modes.
Attachment #560677 - Attachment is obsolete: true
Attachment #564093 - Flags: review?(ted.mielczarek)
Comment on attachment 564093 [details] [diff] [review]
Detect MSVC2011 Compiler in configure, v2

Review of attachment 564093 [details] [diff] [review]:
-----------------------------------------------------------------

::: build/win32/Makefile.in
@@ +97,5 @@
> +ifeq (1700,$(_MSC_VER))
> +REDIST_FILES = \
> +	msvcp110.dll \
> +	msvcr110.dll \
> +	$(NULL)

Please use two-space indent here. Apparently I've been bad about enforcing that in this file. Feel free to fix the rest of them to match if you'd like.
Attachment #564093 - Flags: review?(ted.mielczarek) → review+
(Assignee)

Comment 12

6 years ago
Created attachment 564458 [details] [diff] [review]
Detect MSVC2011 in configure, v3

This is the same as the last patch (which received r+) except it corrects whitespace in build/win32/Makefile.in, as suggested by reviewer.

I don't have checkin privileges, so on r+, please check it in for me.
Attachment #564093 - Attachment is obsolete: true
Attachment #564458 - Flags: review?(ted.mielczarek)
Comment on attachment 564458 [details] [diff] [review]
Detect MSVC2011 in configure, v3

I verified this has no other changes, and meets ted's review requirement. Saving him the trouble and setting checkin-needed. Someone will get this into the tree shortly.
Attachment #564458 - Flags: review?(ted.mielczarek) → review+
r+=ted for posterity for checkin
Keywords: checkin-needed
Whiteboard: c-n note: r+=ted
https://hg.mozilla.org/projects/build-system/rev/fe2e10601158
Keywords: checkin-needed
Whiteboard: c-n note: r+=ted → fixed-in-bs
https://hg.mozilla.org/mozilla-central/rev/fe2e10601158
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla10
Depends on: 696422
Blocks: 707021
You need to log in before you can comment on or make changes to this bug.