3 Replies Latest reply on Jun 16, 2006 2:24 AM by kellyohair

    building windows b87 i486 vs. i586

    mrothman
      Hi.  I've started building on win32. I get past the sanity check, but then I have an odd problem, that I can't find any mention of in the forum.  The makefile is looking for a file named platform_i586 in hotspot\build\windows, but it's not there.  There is a file named platform_i486.  For grins, I renamed it, and changed its contents so that every instance of "i486" became "i586".  I didn't really expect this to work, but it chugged along a bit, and then hit a similar problem: NMAKE : fatal error U1073: don't know how to make 'D:\Java\Build\1.6.0\src\hotspot/src/cpu/i586/vm/i586.ad' Sure enough, there isn't an "i586" directory, although there is one for i486. Is this perhaps an install problem? (I tried re-installing the source jar).  Here's the platform info from the build - it seems like it's correctly diagnosing a 586 platform: Build Platform Settings:   USER = mrothman   PLATFORM = windows   ARCH = i586   LIBARCH = i386   ARCH_FAMILY = i586   ARCH_DATA_MODEL = 32   ARCHPROP = x86   PROCESSOR_ARCHITECTURE = x86   PROCESSOR_IDENTIFIER = x86 Family 15 Model 2 Stepping 9, GenuineIntel   WINDOWS_VERSION = 5 1 Service Pack 2   WINDOWS_NT_VERSION_STRING = Windows_NT   MKS_VER = 9.0 [requires at least 6.1]   DOSNAME_CMD = dosname -s   OS_VERSION = 5 [requires at least 5]   OS_NAME = nt   TEMP_FREE_SPACE = 1277296   FREE_SPACE = 30830766   MB_OF_MEMORY = 512
        • 1. Re: building windows b87 i486 vs. i586
          kellyohair
          I suspect that somehow ARCH is being defined to be i586, either in the environment or by an upper level Makefile, and the hotspot makefiles are accepting this instead of using their own idea of ARCH. The hotspot makefiles should have used a name like HOTSPOT_ARCH, :^( In the hotspot makefiles it will be important that ARCH=i486. Have you got ARCH defined in the environment to be i586? If so, can you undefine it?  Oh, and you aren't using that horrible 'make -e' option are you? The -e option has never mixed well with the JDK makefiles. -kto
          • 2. Re: building windows b87 i486 vs. i586
            mrothman
            Thanks, you are right. What appears to happen is that ARCH is set in j2se\make\common\shared\Platform.gmk, which is included in the main Makefile by being included in control\make\common\Defs.gmk. The top level hotspot makefile does in fact set an "HS_ARCH" variable and use it in some places.  However, it gets ignored in hotspot\build\windows\build.make, which uses ARCH, and only sets ARCH if it hasn't already been defined. Question: if this isn't hitting folks en masse, is it because most people build piece by piece, rather than starting at control\make?
            • 3. Re: building windows b87 i486 vs. i586
              kellyohair
              I'm not able to reproduce this problem. I can't see any ARCH value being passed into the hotspot makefiles from the control/make makefiles. For ARCH to be pre-defined in the hotspot build.make file, it seems like it has to be coming from your environment variables somehow. Try 'env|grep -i arch' and see if you have any environment variables with the name ARCH (upper or lower case). In the meantime, I'll check into fixing the hotspot makefiles. -kto