Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6482134
Votes 0
Synopsis JDK 6 build error on Windows, Visual Studio .NET on Japanese locale
Category java:build
Reported Against
Release Fixed 7(b26)
State 10-Fix Delivered, bug
Priority: 4-Low
Related Bugs 6547593
Submit Date 14-OCT-2006
Description
See http://forums.java.net/jive/thread.jspa?messageID=162959&tstart=0#162959

momotaro

Posts: 1
	
JDK 6 build error on Windows, Visual Studio .NET on Japanese locale
Posted: Oct 13, 2006 9:46 PM

JDK 6 source snapshot for Windows, using Visual Studio .NET 2003 Compiler(32bit) Japanese edition, causes build error.
../../j2se/make/common/shared/Compiler-msvc.gmk:117: *** COMPILER_VERSION cannot be empty here. Stop.

This error has been long time and is in b102.

COMPILER_VERSION is decided from the compiler message in makefile. There are the logic of identifying the compiler version and type in j2se/make/common/shared/Compiler-msvc.gmk line:34-
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$8}')
CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$5}')

This logic may expect the Compiler message as following.
 customer  (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86

Unfortunately, Visual Studio .NET 2003 Compiler Japanese edition outputs the Compiler message as following.
 customer (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86

Note) there is a difference at 1st and 2nd word, Japanese edition lacks a space between ' customer ' and '(R)'.

So, CC_VER and CC_TYPE variable has wrong value.

A workaround is, to modify the makefile to change the awk print position $$8 -> $$7 and $$5 -> $$4.
But it's a pain to modify every download and build time.

So, It would be better to treat these differences in the makefile. I have a modification idea to fix this problem.

CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/ customer (R)\(.*\)/ customer  (R)\1/' | $(NAWK) '{print $$8}')
CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/ customer (R)\(.*\)/ customer  (R)\1/' | $(NAWK) '{print $$5}')
Posted Date : 2006-10-14 20:41:15.0
Work Around
gnumake COMPILER_VERSION=13.10.3077

*** (#1 of 1): [ UNSAVED ]   xxxxx@xxxxx  
Evaluation
Could be a dup of 6547593. Will try and investigate.
Posted Date : 2008-03-19 00:39:27.0

Not a dup of 6547593.

Not sure
Posted Date : 2008-04-01 01:26:32.0

Will change to
  CC_VER  := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
which works for both 32 and 64 bit and both locales, I hope. Hard to test this in all cases. And getting rid of CC_TYPE, which isn't needed.
Posted Date : 2008-04-01 21:41:13.0

http://hg.openjdk.java.net/jdk7/build/jdk/rev/a977a69d9cf2
Posted Date : 2008-04-01 23:03:34.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang