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

Each of 32 and 64 bit builds need to create both 32 and 64 bit JAB DLLs

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P2
    • Resolution: Unresolved
    • Affects Version/s: 7u6, 8, 9
    • Fix Version/s: 10
    • Component/s: infrastructure
    • Labels:
    • Subcomponent:
    • Introduced In Version:
      7u6
    • OS:
      windows

      Description

      For the Java Access Bridge, installs (both 32 and 64 bit) need to install both WindowsAccessBridge-64.dll and WindowsAccessBridge-32.dll. Therefore the build process needs to be changed so both versions are built.

        Activity

        Hide
        vdyakov Victor Dyakov added a comment -
        It blocks JDK-8030749 Both 32 and 64 bit install should install both WindowsAccessBridge-64.dll and WindowsAccessBridge-32.dll

        When this is fixed the note in the Troubleshooting section of
        http://download.java.net/jdk9/docs/technotes/guides/access/enable_and_test.html
        should be removed.
        Show
        vdyakov Victor Dyakov added a comment - It blocks JDK-8030749 Both 32 and 64 bit install should install both WindowsAccessBridge-64.dll and WindowsAccessBridge-32.dll When this is fixed the note in the Troubleshooting section of http://download.java.net/jdk9/docs/technotes/guides/access/enable_and_test.html should be removed.
        Hide
        vdyakov Victor Dyakov added a comment -
        pending scheduling by RE.
        Show
        vdyakov Victor Dyakov added a comment - pending scheduling by RE.
        Hide
        vdyakov Victor Dyakov added a comment -
         Erik Joelsson added a comment - 2015-03-03 07:34
        Currently, it's not possible to build both 32 and 64 bit binaries in the same build configuration on Windows. On other platforms, this is trivially controlled with a compiler flag, but on Windows, the different cpu targets, x86 and amd64, are handled by separate compilers, with separate environments and search paths for libraries.

        Setting this up is handled by configure which will look for Visual Studio and run the appropriate vcvars.bat script to figure out the environment for the target cpu. In order to support both, configure will need to be changed to always run vcvars.bat for both cpus, and setup the necessary variables for each of them. Currently we have something like this:

        CL=/path/to/cl.exe
        LD=/path/to/link.exe
        PATH=<path needed to run cl and link>
        INCLUDE=<search path for system header files>
        LIB=<search path for system libraries>

        We would need to have configure define a 32 and 64 bit version of each of the above variables (CL32, CL64 etc) and then assign the original variables the values for the actual target. Then in the makefiles, when we need to explicitly build for either 32 or 64 bit, we can use the specific variables to create an environment suitable for that.

        I estimate a week to get this implemented for both 8u and 9. Note that due to changes in JDK 9, the solution will differ quite a lot in 8u compared to 9.
        Show
        vdyakov Victor Dyakov added a comment -  Erik Joelsson added a comment - 2015-03-03 07:34 Currently, it's not possible to build both 32 and 64 bit binaries in the same build configuration on Windows. On other platforms, this is trivially controlled with a compiler flag, but on Windows, the different cpu targets, x86 and amd64, are handled by separate compilers, with separate environments and search paths for libraries. Setting this up is handled by configure which will look for Visual Studio and run the appropriate vcvars.bat script to figure out the environment for the target cpu. In order to support both, configure will need to be changed to always run vcvars.bat for both cpus, and setup the necessary variables for each of them. Currently we have something like this: CL=/path/to/cl.exe LD=/path/to/link.exe PATH=<path needed to run cl and link> INCLUDE=<search path for system header files> LIB=<search path for system libraries> We would need to have configure define a 32 and 64 bit version of each of the above variables (CL32, CL64 etc) and then assign the original variables the values for the actual target. Then in the makefiles, when we need to explicitly build for either 32 or 64 bit, we can use the specific variables to create an environment suitable for that. I estimate a week to get this implemented for both 8u and 9. Note that due to changes in JDK 9, the solution will differ quite a lot in 8u compared to 9.
        Hide
        vdyakov Victor Dyakov added a comment -
        It's a usability issue. Today a 32 bit JRE JAWS user has to also install 64 bit JRE to install the 64 bit DLL that JAWS needs. And
        a 64 bit JRE NVDA user has to also install 32 bit JRE to install the 32 bit DLL that NVDA needs. The prior (JAWS) scenario would be the most common.
        Show
        vdyakov Victor Dyakov added a comment - It's a usability issue. Today a 32 bit JRE JAWS user has to also install 64 bit JRE to install the 64 bit DLL that JAWS needs. And a 64 bit JRE NVDA user has to also install 32 bit JRE to install the 32 bit DLL that NVDA needs. The prior (JAWS) scenario would be the most common.
        Hide
        erikj Erik Joelsson added a comment -
        Implementing this was harder than first anticipated.
        Show
        erikj Erik Joelsson added a comment - Implementing this was harder than first anticipated.
        Hide
        ihse Magnus Ihse Bursie added a comment -
        Is this functionality still needed?
        Show
        ihse Magnus Ihse Bursie added a comment - Is this functionality still needed?

          People

          • Assignee:
            Unassigned
            Reporter:
            ptbrunet Pete Brunet (Inactive)
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated: