On 3/10/2013 10:56 PM, Francis ANDRE wrote:
Hi
In the 7u40/jdk/make/common/shared/Compiler-msvc.gmk, the code for
computing the CC_VER does work with a French VS2010 Express compiler
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED)
's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
because the cl command returns
Compilateur d'optimisation Microsoft (R) 32 bits C/C++ version
16.00.30319.01 pour 80x86
Copyright (C) Microsoft Corporation. Tous droits réservés.
utilisation : cl [ option... ] nom de fichier... [ /link linkoption... ]
So, soneone from the build team would say: Hey guy, pick up the English
version and it will work!. But that does not work neither because when
one download VS2010 Express from a French territory, one gets the French
version EVEN if the English version was explicitly requested (I made it
twice, thinking I missed to select the English version).
Not sure how the build is supposed to account for all possible languages
used by the toolsets such that it can determine what the version is ??
In other languages the word "version" may not even appear. Doesn't this
compiler have some flag to print the version? (Obviously it didn't in
the past hence the code but maybe it does now?)
The problem has already been solved in the hotspot build by using the
externals variables FORCE_MSC_VER and FORCE_LINK_VERSION in this file
/hotspot/make/windows/get_msc_ver.sh
That doesn't seem an unreasonable approach. As long as there is some way
for people in your situation to make things work.
David
-----
I can build a fix for this issue but I think it is better than someone
from the build team fix this issue because of the overall responsibility
of making the build correct on the WXP/VS2010 as well as others
platforms which I do not have.
Francis