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

Fix foreign linker build issues for ppc and s390

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b26

      Description

      The implementation for JEP-412 introduces 4 functions in sharedRuntime:

      static void move32_64(MacroAssembler* masm, VMRegPair src, VMRegPair dst);
        static void long_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst);
        static void float_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst);
        static void double_move(MacroAssembler* masm, VMRegPair src, VMRegPair dst);

      Having these functions declaration in sharedRuntime makes sense as a way to reuse code; note that these are then implemented in platform specific ways (see sharedRuntime_aarch64.cpp).

      Unfortunately, in certain architectures (s390, ppc) the implementation for these routines has an incompatible signature, which means the build for these architecture fails.

      Since these routine are only used by universalUpcallHandler (which is also platform specific), a better approach would be to move these routines under the (platform-specific) MacroAssembler class. This way these functions will not be forced on all architectures.

      A preview of these changes are in the following branch:
      https://github.com/openjdk/jdk/compare/master...mcimadamore:JEP-412-build-platforms?expand=1

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              mcimadamore Maurizio Cimadamore
              Reporter:
              mcimadamore Maurizio Cimadamore
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: