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

Clean up build/make files

    XMLWordPrintable

Details

    • generic
    • generic

    Description

      A number of "glitches" have been found in the Hotspot build files:

      - see 6767659 for missed i486 -> x86_32 conversion

      ---

      In make/solaris/makefiles/i486.make we have:

      # force C++ interpreter to be full optimization
      OPT_CFLAGS/interpret.o = -fast -O4

      but there is no interpret.cpp. This should have been bytecodeInterpreter.o but to preserve existing behaviour it should just be deleted. (Vladimir fixed this before I could file this CR)

      -----

      build/solaris/makefiles/amd64.make contains this snippet:

      # Temporary until SS10 C++ compiler is fixed
      OPT_CFLAGS/generateOptoStub.o = -xO2
      OPT_CFLAGS/thread.o = -xO2

      The applicability of this under SS12 should be investigated, and if necessary this should be conditional on SS10 being used.

      ----

      In solaris/makefiles/sparcWorks.make in the section for REV >= 5.5

      ifeq ("${Platform_arch_model}", "x86_32")
        OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS)
        # UBE (CC 5.5) has bug 4923569 with -xO4
        OPT_CFLAGS+=-xO3
      endif # 32bit x86

      The use of -xtarget=pentium is archaic and obsolete. Using -xtarget=pentium is the same as setting:

      -xarch=386 -xchip=pentium -xcache=generic

      and yet there is no -xarch 386 option listed in the manual, and the actual -x386 option is deprecated, replaced with -xarch=generic.

      We should investigate what target value is appropriate for 2008.

      We should also investigate whether -xO3 is desirable rather than -xO4 under SS12.

      ----

      In solaris/makefiles/sparcWorks.make we set the various -m and -xtarget flags based on the architecture for use with SS12. The SS12 readme states to use "-xarch=sse2 -m64" in place of -xarch=amd64 but we don't set the sse2 part.

      This should also be investigated.

      ----

      Do we really need to support compiler versions < 5.5 ? It would be nice to be able to clean out all the historical baggage.

      -----

      in dtrace.make we have this:

      ISA = $(subst i386,i486,$(shell isainfo -n))
      ...
      XARCH = $(subst sparcv9,v9,$(shell echo $(ISA)))
      ...
          $(CC) $(SYMFLAG) $(ARCHFLAG/$(XARCH)) -D$(TYPE) -I. -I$(GENERATED) \

      which means on sparcv9 we will be looking for ARCHFLAG/v9 but it doesn't exist as sparcWorks.make contains:

      ifeq ($(shell expr $(COMPILER_REV) \>= 5.9), 1)
        ARCHFLAG/sparc = $(ARCHFLAG_NEW/sparc)
        ARCHFLAG/sparcv9 = $(ARCHFLAG_NEW/sparcv9)
        ARCHFLAG/i486 = $(ARCHFLAG_NEW/i486)
        ARCHFLAG/amd64 = $(ARCHFLAG_NEW/amd64)
      else
        ARCHFLAG/sparc = $(ARCHFLAG_OLD/sparc)
        ARCHFLAG/sparcv9 = $(ARCHFLAG_OLD/sparcv9)
        ARCHFLAG/i486 = $(ARCHFLAG_OLD/i486)
        ARCHFLAG/amd64 = $(ARCHFLAG_OLD/amd64)
      endif

      so unless I missed something it appears to me that we don't need XARCH and should instead be using $(ARCHFLAG/$(ISA))
      In make/solaris/makefiles/fastdebug.make this specialization:

      # Workaround for a bug in dtrace. If ciEnv::post_compiled_method_load_event()
      # is inlined, the resulting dtrace object file needs a reference to this
      # function, whose symbol name is too long for dtrace. So disable inlining
      # for this method for now. (fix this when dtrace bug 6258412 is fixed)
      OPT_CFLAGS/ciEnv.o = $(OPT_CFLAGS) -xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_

      should be written as:

      OPT_CFLAGS/ciEnv.o += -xinline=no%__1cFciEnvbFpost_compiled_method_load_event6MpnHnmethod__v_

      in case OPT_CFLAGS/ciEnv.o is specialized elsewhere.
      In make/linux/makefiles/top.make we have:

      AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch).ad

      but that should be

      AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dholmes David Holmes
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: