RC.exe location change?

Ted Neward ted at tedneward.com
Sat Mar 28 02:38:41 UTC 2009


I'm happy to test the VS2008 (and VS2005) build fixes, and possibly even
contribute a few, but I'd need to know where to start folding in the new
macrology to make it all work throughout the system. For example, assuming I
want to introduce a new macro, "SDKTOOLS_PATH" and its overridable
equivalent, "ALT_SDKTOOLS_PATH", in which file is the "right" place to start
working those through the build? I'm guessing Compiler-msvc.gmk and
Defs-windows.gmk are the two places to start looking, but are there others
I'm not aware of?

Thinking about it, what I'd like to suggest is:

(ALT_)MSDEVTOOLS_PATH -> location of Visual Studio installation
(C:/Prg/MSVS9.0)
(ALT_)MSSDKTOOLS_PATH -> location of Microsoft SDK installation
(C:/Prg/MicrosoftSDKs/Windows/v6.1/Bin)
(ALT_)COMPILER_PATH -> location of cl.exe (C:/Prg/MSVS9.0/VC/bin or
C:/Prg/MicrosoftSDKs/Windows/v6.1/Bin)

Where COMPILER_PATH could be either the VS cl or the MSSDK cl depending on
which one you feel like using. (This could also make it easier to adopt the
Express editions.)

Being not very Mercurial-savvy, can I simply post my changes to this list?

Ted Neward | Principal Consultant, ThoughtWorks
Java, .NET, XML Services
Consulting, Teaching, Speaking, Writing
http://www.thoughtworks.com | http://www.tedneward.com

> -----Original Message-----
> From: Kelly.Ohair at Sun.COM [mailto:Kelly.Ohair at Sun.COM]
> Sent: Friday, March 27, 2009 4:18 PM
> To: Ted Neward
> Cc: 'build-dev'
> Subject: Re: RC.exe location change?
> 
> 
> 
> Ted Neward wrote:
> > This was the b52 source drop on the openjdk website, not a Mercurial
> pull.
> > (Trying to get back to basics here.)
> >
> > Which compiler are you using for the Windows JDK builds? VS2005?
> 
> Currently we are still using VS2003, but we are trying to transition to
> VS2008 for official builds but also allow for VS2005 for developers.
> It may take more time for us to completely get off VS2003.
> 
> >
> >
> > Rather than toss MSDEVTOOLS, I would propose two variables:
> >
> > ALT_MSDEVTOOLS_PATH - for the root of the Visual Studio installation
> > ALT_MSSDKTOOLS_PATH - for the root of the Microsoft SDK installation
> >
> > Such that
> >
> > COMPILER_PATH = $ALT_MSDEVTOOLS_PATH/VC/bin
> >
> > and
> >
> > RC = $ALT_MSSDKTOOLS_PATH/bin/rc.exe
> >
> > Where on my box, I would set
> >
> > ALT_MSDEVTOOLS_PATH=C:/Prg/MSVS9.0
> > ALT_MSSDKTOOLS_PATH=C:/Prg/MicrosoftSDKs/Windows/v6.1
> >
> > This would also work for previous installations of VS, since they
> install
> > the SDK at C:/Prg/MSVS/SDK/v1.1 or something similar.
> >
> > Tim? Does this sound workable?
> 
> Seems ok to me.
> 
> Of course, as always with Windows, proof is in the pudding, so to
> speak. ;^)
> 
> -kto
> 
> >
> > Ted Neward | Principal Consultant, ThoughtWorks
> > Java, .NET, XML Services
> > Consulting, Teaching, Speaking, Writing
> > http://www.thoughtworks.com | http://www.tedneward.com
> >
> >> -----Original Message-----
> >> From: Kelly.Ohair at Sun.COM [mailto:Kelly.Ohair at Sun.COM]
> >> Sent: Friday, March 27, 2009 10:09 AM
> >> To: Ted Neward
> >> Cc: 'build-dev'
> >> Subject: Re: RC.exe location change?
> >>
> >> What forest are you pulling your changes from?
> >>
> >> We have been working on the VS2008 transition on 32bit, and also
> >> on 64bit for the v6.1 SDK, so it's pretty fresh stuff.
> >> I've been wrestling with the 64bit Windows v6.1 SDK changes, and
> >> Tim Bell has been working on the 32bit VS2008 compiler changes.
> >> But we haven't yet got to the 32bit v6.1 SDK changes.
> >> Tim Bell may have more to say on this.
> >>
> >> a few more comments below...
> >>
> >>
> >> Ted Neward wrote:
> >>> While building the OpenJDK (finally got past the FreeType issues,
> >> though
> >>> I'm not entirely sure how or why, which bugs me), I've run across
> an
> >>> error where the make files seem to assume that rc.exe lives in the
> >>> compiler directory. and it doesn't-it's been moved to the Platform
> >> SDK.
> >>>
> >>>
> >>> For example, the problem first shows up in
> >>> corba/make/common/shared/Compiler-msvc.gmk:
> >> Yes, an unfortunate copy of the jdk file. :^(
> >>
> >>>
> >>>
> >>> #
> >>>
> >>> # MSVC Compiler settings
> >>>
> >>> #
> >>>
> >>>
> >>>
> >>> ifeq ($(PLATFORM), windows)
> >>>
> >>>   CC           = $(COMPILER_PATH)cl
> >>>
> >>>   CPP          = $(COMPILER_PATH)cl
> >>>
> >>>   CXX          = $(COMPILER_PATH)cl
> >>>
> >>>   CCC          = $(COMPILER_PATH)cl
> >>>
> >>>   LIBEXE       = $(COMPILER_PATH)lib
> >>>
> >>>   LINK         = $(COMPILER_PATH)link
> >>>
> >>> #
> >>>
> >>> # Begin TKN mod
> >>>
> >>> #
> >>>
> >>> #  RC           = $(MSDEVTOOLS_PATH)rc
> >>>
> >>>   RC           =
> >> $(MSDEVTOOLS_PATH)/../MicrosoftSDKs/Windows/v6.1/Bin/rc
> >>> #
> >>>
> >>> # End TKN mod
> >>>
> >>> #
> >>>
> >>>   LINK32       = $(LINK)
> >>>
> >>>   RSC          = $(RC)
> >>>
> >>>
> >>>
> >>> Now I'm not sure if MSDEVTOOLS_PATH is supposed to point to the
> >>> PlatformSDK bin, or the MSVS9.0/VC/bin (which is what other parts
> of
> >> the
> >>> build system seem to assume), or what, but rc.exe pretty
> definitively
> >>> isn't in the VC directory of VS 2008, from what I can tell. (I
> >> checked
> >>> on another machine that had a "go ahead install everything" install
> >>> experience, and it's not there, either.)
> >> Yes, it appears to move around with each compile release.
> >> And also between the free Express edition and the paid for products
> I
> >> think.
> >>
> >> The MSDEVTOOLS_PATH variable may need to be trashed.
> >> We should be referring to the SDK area, in the many places that
> might
> >> be. :^(
> >>
> >>>
> >>>
> >>> Dunno if this is a bug, or what, but the Compiler-msvc file should
> >>> probably be patched to read something like:
> >>>
> >>>
> >>>
> >>>     ifeq ($(CC_MAJORVER), 15)
> >>>
> >>>       # This should be: CC_VER=15.00.21022.08
> LINK_VER=9.00.21022.08
> >>>
> >>>       REQUIRED_CC_VER = 15.00.21022.08
> >>>
> >>>       REQUIRED_LINK_VER = 9.00.21022.08
> >>>
> >>>       COMPILER_NAME=Visual Studio 9
> >>>
> >>>       COMPILER_VERSION=VS2008
> >>>
> >>>       #rebase and midl moved out of Visual Studio into the SDK:
> >>>
> >>>       REBASE     = $(MSDEVTOOLS_PATH)/rebase
> >>>
> >>>       MTL        = $(MSDEVTOOLS_PATH)/midl.exe
> >>>
> >>>       RC = $(MSDEVTOOLS_PATH)/rc.exe
> >>>
> >>>       RCS = $(RC)
> >>>
> >>>       ifndef COMPILER_PATH
> >>>
> >>>                 COMPILER_PATH := $(error COMPILER_PATH cannot be
> >> empty here)
> >>>       endif
> >>>
> >>>     endif
> >>>
> >>>
> >>>
> >>> . assuming MSDEVTOOLS_PATH is supposed to point to the PlatformSDK
> >> bin
> >>> (and not MSVS9.0/VC/bin).
> >> Yes, I think that is right.
> >>
> >>>
> >>>
> >>> Is that the breakdown between COMPILER_PATH and MSDEVTOOLS_PATH?
> The
> >>> README implies that the latter is derived from the former, and it
> >>> probably shouldn't be..
> >>>
> >> Correct. We should toss MSDEVTOOLS_PATH in my opinion.
> >> And not assume the SDK is in the compiler area, like it was with
> >> Visual Studio 2003 Professional Edition.
> >>
> >> -kto
> >>
> >>>
> >>> Ted Neward | Principal Consultant, ThoughtWorks
> >>>
> >>> Java, .NET, XML Services
> >>>
> >>> Consulting, Teaching, Speaking, Writing
> >>>
> >>> http://www.thoughtworks.com <http://www.tedneward.com> |
> >>> http://www.tedneward.com
> >>>
> >>>
> >>>
> >>>
> >>>
> >




More information about the build-dev mailing list