<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>On 2025-04-04 12:25, Doerr, Martin wrote:</p>
    <blockquote type="cite" cite="mid:DU0PR02MB85486D7E79D746706D448DC49AA92@DU0PR02MB8548.eurprd02.prod.outlook.com">
      
      <meta name="Generator" content="Microsoft Word 15 (filtered medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">Hi all,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">even if
            we deprecate 32 bit now, arm32 will still be usable with JDK
            25 LTS for quite some time.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">The big
            question is if there will still be a significant demand in 2
            years.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">I also
            wonder when other projects will terminate arm32 support.</span></p>
      </div>
    </blockquote>
    <p>This ^^^.</p>
    <p>The question is not *if* we should stop supporting 32-bit, but
      *when*. I don't see anyone arguing that 32-bit platforms have a
      long-term future. We can keep the 32-bit JDKs on life support, for
      a longer or a shorter time, but frankly, that is what it is.<br>
    </p>
    <p>Dropping 32-bit completely somewhere between now and the next LTS
      release might perhaps be a good idea.</p>
    <p>As with any other platforms in the JDK, the remaining 32-bit
      support (arm-32 and zero) should have a sponsor, someone
      (organization or company) backing it up. That is the general
      requirement we have for adding a new platform, and we should have
      the same requirement for keeping old platforms in. If we have such
      a sponsor, then the onus is on them to keep the platform up to
      date with continuous development of the JDK. And if no-one is
      willing to step up and assume such a role, well, that is a clear
      indication that while it might be "nice to have" 32-bit support,
      no-one is willing to pay the price for it. And if so, it should
      go.<br>
    </p>
    <p>/Magnus<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite" cite="mid:DU0PR02MB85486D7E79D746706D448DC49AA92@DU0PR02MB8548.eurprd02.prod.outlook.com">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US"><o:p>  
              <br>
            </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">Best
            regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;mso-fareast-language:EN-US">Martin<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div id="mail-editor-reference-message-container">
          <div>
            <div>
              <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
                <p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">Von:
                    </span></b><span style="color:black">jdk-dev
                    <a class="moz-txt-link-rfc2396E" href="mailto:jdk-dev-retn@openjdk.org"><jdk-dev-retn@openjdk.org></a> im Auftrag von
                    Johan Vos <a class="moz-txt-link-rfc2396E" href="mailto:johan.vos@gluonhq.com"><johan.vos@gluonhq.com></a><br>
                    <b>Datum: </b>Freitag, 4. April 2025 um 11:17<br>
                    <b>An: </b>Thomas Stüfe
                    <a class="moz-txt-link-rfc2396E" href="mailto:thomas.stuefe@gmail.com"><thomas.stuefe@gmail.com></a><br>
                    <b>Cc: </b>JDK Dev list <a class="moz-txt-link-rfc2396E" href="mailto:jdk-dev@openjdk.org"><jdk-dev@openjdk.org></a><br>
                    <b>Betreff: </b>Re: The future of 32-bit?<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal">Hi Thomas, all,<o:p></o:p></p>
                <div>
                  <p class="MsoNormal"><o:p> </o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">At the OCW workshop, I expressed
                    my worries about removing all 32-bit code, because I
                    feared it would impact the ability to distribute
                    Java apps to mobile devices (via the existing
                    stores). As someone pointed out, at the very least
                    32-bit versions are not a requirement anymore. I did
                    a bit of research, and while there are still 32-bit
                    devices in the field, the 2 major stores are pushing
                    for 64-bits, and discouraging 32 bits -- something
                    we would call @Deprecated(forRemoval="true"). As a
                    consequence, zero-32 code is no requirement for iOS,
                    and arm-32 is no requirement for Android.<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><o:p> </o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">There are still usecases for the
                    Pi Zero (v1) and older Raspberry Pi devices (<
                    3). I have no idea about the installed base of those
                    devices, but I believe it is possible that this
                    would be the largest group that will suffer if
                    32-bit support was halted.<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><o:p> </o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">Having said that, I fully agree
                    there is lots of additional work required to keep
                    32-bit support (the (un)compressed classpointers are
                    a good example indeed). Though situation.<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><o:p> </o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">- Johan<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><o:p> </o:p></p>
                </div>
              </div>
              <p class="MsoNormal"><o:p> </o:p></p>
              <div>
                <div>
                  <p class="MsoNormal">On Fri, Apr 4, 2025 at 9:17<span style="font-family:"Arial",sans-serif"> </span>AM
                    Thomas Stüfe <<a href="mailto:thomas.stuefe@gmail.com" moz-do-not-send="true" class="moz-txt-link-freetext">thomas.stuefe@gmail.com</a>>
                    wrote:<o:p></o:p></p>
                </div>
                <blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
                  <div>
                    <div>
                      <p class="MsoNormal">Hi,<o:p></o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal"><o:p> </o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal">Continuing our discussion at
                        the last FOSDEM workshop, I would like to know
                        what we think about the future of 32-bit
                        support.<o:p></o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal"><o:p> </o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal">Supporting 32-bit became a
                        lot more cumbersome after the x86 port was
                        removed. Before, one could easily build 32-bit
                        on the ubiquitous x64 platforms with
                        --target-bits=32; that is not an option anymore.<o:p></o:p></p>
                    </div>
                    <p class="MsoNormal" style="margin-bottom:12.0pt"><br>
                      We have two remaining 32-bit platforms, at least
                      in theory:<br>
                      <br>
                      - arm32<br>
                      - zero 32-bit<br>
                      <br>
                      Zero 32-bit has been broken for a long while now;
                      see <a href="https://bugs.openjdk.org/browse/JDK-8353699" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">
                        https://bugs.openjdk.org/browse/JDK-8353699</a>.
                      I try this occasionally and don't remember the
                      last time it built successfully.<br>
                      <br>
                      Arm32 is the last bastion of serious 32-bit
                      support, and the last option for testing 32-bit
                      coding. So, one needs to build arm32 (best done
                      via crossbuild), then spin up an arm32 system to
                      test the changes. I do this with a
                      slow-as-molasses Raspberry. It is not fun.<br>
                      <br>
                      Unfortunately, maintaining 32-bit is not as easy
                      as "make sure it builds and fix smaller things".
                      It requires real development, especially in the
                      context of ongoing object header work.<br>
                      <br>
                      32-bit also means we need to keep some form of
                      uncompressed class pointers around, which makes
                      the eventual removal of uncompressed class
                      pointers (see [2]) more difficult. The current
                      plan is to implement some sort of
                      fake-compressed-class-pointer mode [3], which
                      sounds easy in theory but is still tricky work I'd
                      rather avoid.<br>
                      <br>
                      Keeping up 32-bit development in the face of
                      dwindling options to build and test is a struggle.
                      It has been a struggle for some time now. Even the
                      comparatively well-maintained arm32 platform had
                      periodic weeks of brokenness after heavy upstream
                      changes. And this is not intended to diminish the
                      effort put in by the arm32-maintainers. They are
                      few, and they do good work.
                      <o:p></o:p></p>
                    <div>
                      <p class="MsoNormal">But I expect this periodic
                        brokenness to worsen now after the removal of
                        x86. This is not a good situation.<o:p></o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal"><o:p> </o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal">Thank you, Thomas<o:p></o:p></p>
                    </div>
                    <div>
                      <p class="MsoNormal"><o:p> </o:p></p>
                    </div>
                    <p class="MsoNormal" style="margin-bottom:12.0pt">[1]
                      <a href="https://bugs.openjdk.org/browse/JDK-8353699" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">
                        https://bugs.openjdk.org/browse/JDK-8353699</a><br>
                      [2] <a href="https://bugs.openjdk.org/browse/JDK-8350754" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8350754</a><br>
                      [3] <a href="https://bugs.openjdk.org/browse/JDK-8350754?focusedId=14757275&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14757275" target="_blank" moz-do-not-send="true">
https://bugs.openjdk.org/browse/JDK-8350754?focusedId=14757275&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14757275</a><o:p></o:p></p>
                  </div>
                </blockquote>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>