Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6239792

Convert hotspot on windows to use gnumake instead of or as an option to nmake

XMLWordPrintable

    • generic
    • generic

      Use of nmake is problematic.

      Note that some people have mentioned that builds with nmake are faster than gnumake,
      and also that the nmake files might be needed to use the VC++ IDE. This needs to be investigated.

      ###@###.### 2005-03-12 00:06:50 GMT
      Expanding on the issues, which as stated in the description is less so now that we have a gnumake file at hotspot/make/Makefile.

      1. RE having to understand nmake and gnumake is an issue, this was resolved with the addition of hotspot/make/Makefile.

      2. nmake expects the use of the \\ character and doesn't accept the gnumake MAKEFLAGS arguments. So any gnumake Makefile running nmake must unset MAKEFLAGS before running nmake. This has complicated the entire build process and removed the ability to pass settings from the top level makefiles to the lowest settings.

      3. The build system having a dependence on two 'make' utilities is a complication. Failures involving nmake are different than gnumake. The shared gnumake makefiles cannot be used by nmake. We would be at the mercy of one company for any emergency issues around nmake. Ideally, one 'make' utility should be used.

      4. The nmake utility is primitive compared to gnumake, and any features it does have are a completely different syntax than gnumake, creating a more risky situation when anyone changes nmake files. Not that changing gnumake files isn't risky, it's just having two different sets of makefile syntax rules.

      5. Hotspot building on windows is very different than Solaris/Linux. Some of this cannot be avoided, and some of this has been fixed in mustang. But the use of nmake over gnumake is a major difference. (See 1. above too)

      ---

      The positives on nmake is that it does appear to batch together source files that need to be compiled with the exact same options. This makes a big difference in the build time and any gnumake conversion would need to address this issue. On Solaris/Linux, build performance can be reduced with the parallel build features of gnumake, where the system itself provides performance benefits in a natural way. But with windows, for some unknown reason, the batching up of many sources to be compiled at once seems to be the best approach.

            Unassigned Unassigned
            ohair Kelly Ohair (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: