From david.holmes at oracle.com Wed May 7 00:48:33 2025 From: david.holmes at oracle.com (David Holmes) Date: Wed, 7 May 2025 10:48:33 +1000 Subject: hotspot Zero for iOS In-Reply-To: References: Message-ID: <18809b11-d5a1-459a-b40b-c4da2a6f74ff@oracle.com> Hi Johan, Do the compilers for the mobile builds support direct use of thread local storage these days? Way back in 2016 in the old mobile project we had to set USE_LIBRARY_BASED_TLS_ONLY [1]. The question has been asked as to whether we can remove the USE_LIBRARY_BASED_TLS_ONLY code in mainline. Thanks, David Holmes [1] https://mail.openjdk.org/pipermail/mobile-dev/2016-January/000067.html On 16/12/2024 6:17 am, Johan Vos wrote: > Hi, > > With JDK-8346233 [1] being fixed in the openjdk/mobile repo [2], the > mobile repo can now build a static version of the jvm (libjvm.a) that > works on iOS. This VM implementation is using the Zero interpreter, > which means that it is not using runtime-generated assembly code, and > it does not violate iOS rules (e.g. no w+x sections). > The iOS sdk build can be created using > `make static-libs-image` > and it builds on top of the latest work in openjdk/jdk that > streamlines the build of static libraries and executables (e.g. see > JDK-8339480 [3]) > > Using this in iOS apps requires the iOS app to include the libjvm.a as > well as the required native classlibs (e.g. libjava.a, libnet.a, ...) > Also, the required classes need to be available so that the > interpreter can use them. I will update the OpenJDK-mobile Wiki with > an example on how this can be done. > > For those wondering about the difference with what we previously did > at Gluon with mobile Java: in the past, we were using AOT compilers > that were linked to their own JVM implementation (e.g. RoboVM or > GraalVM Substrate). Those solutions showed that Java (and JavaFX) > really works on iOS and Android devices, and especially the GraalVM > AOT allowed for a really fast execution. However, those solutions were > not using the hotspot code in OpenJDK. > > With the recent changes, we are now re-enabling the original > architecture in the Mobile Project, by using the very latest hotspot > code (Zero interpreter) which aligns the project much closer to the > upstream OpenJDK. Over the past years, there have been tremendous > improvements in both the JVM and the JDK code in OpenJDK, and the fact > that we can use this great work to build apps on mobile is a huge > opportunity. > > Using the Zero interpreter allows us to prove that things work, and it > might eventually lead to passing the TCK. It won't give us > top-performance, which will be needed for mobile applications. That > means there is still lots of work to do in a number of areas, including > * AOT: compiled methods (ahead of time, not at runtime) will generally > run much faster than interpreted methods. I hope that we can leverage > experience from GraalVM and Project Leyden. > * footprint: we should only bundle code that is really required by a > specific app. > > Also, we need a similar build for Android -- although we can use a JIT > there, so we are not limited to Zero. > > Ultimately, this project will allow existing and new Java libraries > and projects to be used on mobile devices. This brings Java back in > pole-position for the Write Once Run Anywhere paradigm. This can even > be combined with OpenJFX, to have a single codebase for a complete > application including a modern UI, all written in Java, and running on > different client devices. > > As I said, there is lots of work to be done, but at least there is > Innovation Everywhere. > > - Johan > > [1] https://bugs.openjdk.org/browse/JDK-8346233 > [2] > https://github.com/openjdk/mobile/commit/ce70629f4394184ba517fb99c92ac9374ec8f37a > [3] https://bugs.openjdk.org/browse/JDK-8339480 From magnus.ihse.bursie at oracle.com Wed May 7 06:36:49 2025 From: magnus.ihse.bursie at oracle.com (Magnus Ihse Bursie) Date: Wed, 7 May 2025 08:36:49 +0200 Subject: hotspot Zero for iOS In-Reply-To: <18809b11-d5a1-459a-b40b-c4da2a6f74ff@oracle.com> References: <18809b11-d5a1-459a-b40b-c4da2a6f74ff@oracle.com> Message-ID: On 2025-05-07 02:48, David Holmes wrote: > Hi Johan, > > Do the compilers for the mobile builds support direct use of thread > local storage these days? Way back in 2016 in the old mobile project > we had to set USE_LIBRARY_BASED_TLS_ONLY [1]. > > The question has been asked as to whether we can remove the > USE_LIBRARY_BASED_TLS_ONLY code in mainline. That code seems defunct anyway, the essential part: #if TARGET_OS_IPHONE #define USE_LIBRARY_BASED_TLS_ONLY in globalDefinitions_gcc.hpp being long gone, so USE_LIBRARY_BASED_TLS_ONLY is never defined. /Magnus > Thanks, > David Holmes > > > [1] > https://mail.openjdk.org/pipermail/mobile-dev/2016-January/000067.html > > On 16/12/2024 6:17 am, Johan Vos wrote: >> Hi, >> >> With JDK-8346233 [1] being fixed in the openjdk/mobile repo [2], the >> mobile repo can now build a static version of the jvm (libjvm.a) that >> works on iOS. This VM implementation is using the Zero interpreter, >> which means that it is not using runtime-generated assembly code, and >> it does not violate iOS rules (e.g. no w+x sections). >> The iOS sdk build can be created using >> `make static-libs-image` >> and it builds on top of the latest work in openjdk/jdk that >> streamlines the build of static libraries and executables (e.g. see >> JDK-8339480 [3]) >> >> Using this in iOS apps requires the iOS app to include the libjvm.a >> as well as the required native classlibs (e.g. libjava.a, libnet.a, >> ...) Also, the required classes need to be available so that the >> interpreter can use them. I will update the OpenJDK-mobile Wiki with >> an example on how this can be done. >> >> For those wondering about the difference with what we previously did >> at Gluon with mobile Java: in the past, we were using AOT compilers >> that were linked to their own JVM implementation (e.g. RoboVM or >> GraalVM Substrate). Those solutions showed that Java (and JavaFX) >> really works on iOS and Android devices, and especially the GraalVM >> AOT allowed for a really fast execution. However, those solutions >> were not using the hotspot code in OpenJDK. >> >> With the recent changes, we are now re-enabling the original >> architecture in the Mobile Project, by using the very latest hotspot >> code (Zero interpreter) which aligns the project much closer to the >> upstream OpenJDK. Over the past years, there have been tremendous >> improvements in both the JVM and the JDK code in OpenJDK, and the >> fact that we can use this great work to build apps on mobile is a >> huge opportunity. >> >> Using the Zero interpreter allows us to prove that things work, and >> it might eventually lead to passing the TCK. It won't give us >> top-performance, which will be needed for mobile applications. That >> means there is still lots of work to do in a number of areas, including >> * AOT: compiled methods (ahead of time, not at runtime) will >> generally run much faster than interpreted methods. I hope that we >> can leverage experience from GraalVM and Project Leyden. >> * footprint: we should only bundle code that is really required by a >> specific app. >> >> Also, we need a similar build for Android -- although we can use a >> JIT there, so we are not limited to Zero. >> >> Ultimately, this project will allow existing and new Java libraries >> and projects to be used on mobile devices. This brings Java back in >> pole-position for the Write Once Run Anywhere paradigm. This can even >> be combined with OpenJFX, to have a single codebase for a complete >> application including a modern UI, all written in Java, and running >> on different client devices. >> >> As I said, there is lots of work to be done, but at least there is >> Innovation Everywhere. >> >> - Johan >> >> [1] https://bugs.openjdk.org/browse/JDK-8346233 >> [2] >> https://github.com/openjdk/mobile/commit/ce70629f4394184ba517fb99c92ac9374ec8f37a >> [3] https://bugs.openjdk.org/browse/JDK-8339480 -------------- next part -------------- An HTML attachment was scrubbed... URL: From johan.vos at gluonhq.com Wed May 7 07:02:50 2025 From: johan.vos at gluonhq.com (Johan Vos) Date: Wed, 7 May 2025 09:02:50 +0200 Subject: hotspot Zero for iOS In-Reply-To: References: <18809b11-d5a1-459a-b40b-c4da2a6f74ff@oracle.com> Message-ID: Hi, Good question -- thanks David for asking this here before removing it in mainline. As Magnus said, there is no place anymore where USE_LIBRARY_BASED_TLS_ONLY is set, so it is currently not used on iOS and its removal won't have impact on the mobile repository. At the very least, there are no compile-time issues -- I'll investigate how this is handled, but no problem at all to remove the USE_LIBRARY_BASED_TLS_ONLY definition. - Johan On Wed, May 7, 2025 at 8:37?AM Magnus Ihse Bursie < magnus.ihse.bursie at oracle.com> wrote: > On 2025-05-07 02:48, David Holmes wrote: > > Hi Johan, > > Do the compilers for the mobile builds support direct use of thread local > storage these days? Way back in 2016 in the old mobile project we had to > set USE_LIBRARY_BASED_TLS_ONLY [1]. > > The question has been asked as to whether we can remove the > USE_LIBRARY_BASED_TLS_ONLY code in mainline. > > That code seems defunct anyway, the essential part: > > #if TARGET_OS_IPHONE #define USE_LIBRARY_BASED_TLS_ONLY > > > in globalDefinitions_gcc.hpp being long gone, so > USE_LIBRARY_BASED_TLS_ONLY is never defined. > > /Magnus > > > > Thanks, > David Holmes > > > [1] https://mail.openjdk.org/pipermail/mobile-dev/2016-January/000067.html > > On 16/12/2024 6:17 am, Johan Vos wrote: > > Hi, > > With JDK-8346233 [1] being fixed in the openjdk/mobile repo [2], the > mobile repo can now build a static version of the jvm (libjvm.a) that works > on iOS. This VM implementation is using the Zero interpreter, which means > that it is not using runtime-generated assembly code, and it does not > violate iOS rules (e.g. no w+x sections). > The iOS sdk build can be created using > `make static-libs-image` > and it builds on top of the latest work in openjdk/jdk that streamlines > the build of static libraries and executables (e.g. see JDK-8339480 [3]) > > Using this in iOS apps requires the iOS app to include the libjvm.a as > well as the required native classlibs (e.g. libjava.a, libnet.a, ...) Also, > the required classes need to be available so that the interpreter can use > them. I will update the OpenJDK-mobile Wiki with an example on how this can > be done. > > For those wondering about the difference with what we previously did at > Gluon with mobile Java: in the past, we were using AOT compilers that were > linked to their own JVM implementation (e.g. RoboVM or GraalVM Substrate). > Those solutions showed that Java (and JavaFX) really works on iOS and > Android devices, and especially the GraalVM AOT allowed for a really fast > execution. However, those solutions were not using the hotspot code in > OpenJDK. > > With the recent changes, we are now re-enabling the original architecture > in the Mobile Project, by using the very latest hotspot code (Zero > interpreter) which aligns the project much closer to the upstream OpenJDK. > Over the past years, there have been tremendous improvements in both the > JVM and the JDK code in OpenJDK, and the fact that we can use this great > work to build apps on mobile is a huge opportunity. > > Using the Zero interpreter allows us to prove that things work, and it > might eventually lead to passing the TCK. It won't give us top-performance, > which will be needed for mobile applications. That means there is still > lots of work to do in a number of areas, including > * AOT: compiled methods (ahead of time, not at runtime) will generally run > much faster than interpreted methods. I hope that we can leverage > experience from GraalVM and Project Leyden. > * footprint: we should only bundle code that is really required by a > specific app. > > Also, we need a similar build for Android -- although we can use a JIT > there, so we are not limited to Zero. > > Ultimately, this project will allow existing and new Java libraries and > projects to be used on mobile devices. This brings Java back in > pole-position for the Write Once Run Anywhere paradigm. This can even be > combined with OpenJFX, to have a single codebase for a complete application > including a modern UI, all written in Java, and running on different client > devices. > > As I said, there is lots of work to be done, but at least there is > Innovation Everywhere. > > - Johan > > [1] https://bugs.openjdk.org/browse/JDK-8346233 > [2] > https://github.com/openjdk/mobile/commit/ce70629f4394184ba517fb99c92ac9374ec8f37a > [3] https://bugs.openjdk.org/browse/JDK-8339480 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From david.holmes at oracle.com Wed May 7 12:05:20 2025 From: david.holmes at oracle.com (David Holmes) Date: Wed, 7 May 2025 22:05:20 +1000 Subject: hotspot Zero for iOS In-Reply-To: References: <18809b11-d5a1-459a-b40b-c4da2a6f74ff@oracle.com> Message-ID: <6a8e06b3-8b60-4cfe-9be4-0099c1bc5463@oracle.com> Hi Johan, On 7/05/2025 5:02 pm, Johan Vos wrote: > Hi, > > Good question -- thanks David for asking this here before removing it in > mainline. > As Magnus said, there is no place anymore where > USE_LIBRARY_BASED_TLS_ONLY is set, so it is currently not used on iOS > and its removal won't have impact on the mobile repository. > At the very least, there are no compile-time issues -- I'll investigate > how this is handled, but no problem at all to remove the > USE_LIBRARY_BASED_TLS_ONLY definition. Good to know. I know the old iOS port is long gone, but wasn't sure if the new/current port still needed it. Thanks, David > - Johan > > On Wed, May 7, 2025 at 8:37?AM Magnus Ihse Bursie > > > wrote: > > __ > > On 2025-05-07 02:48, David Holmes wrote: > >> Hi Johan, >> >> Do the compilers for the mobile builds support direct use of >> thread local storage these days? Way back in 2016 in the old >> mobile project we had to set USE_LIBRARY_BASED_TLS_ONLY [1]. >> >> The question has been asked as to whether we can remove the >> USE_LIBRARY_BASED_TLS_ONLY code in mainline. > > That code seems defunct anyway, the essential part: > > #if TARGET_OS_IPHONE > #define USE_LIBRARY_BASED_TLS_ONLY > > in globalDefinitions_gcc.hpp being long gone, so > USE_LIBRARY_BASED_TLS_ONLY is never defined. > > /Magnus > > > >> Thanks, >> David Holmes >> >> >> [1] https://mail.openjdk.org/pipermail/mobile-dev/2016- >> January/000067.html > dev/2016-January/000067.html> >> >> On 16/12/2024 6:17 am, Johan Vos wrote: >>> Hi, >>> >>> With JDK-8346233 [1] being fixed in the openjdk/mobile repo [2], >>> the mobile repo can now build a static version of the jvm >>> (libjvm.a) that works on iOS. This VM implementation is using the >>> Zero interpreter, which means that it is not using runtime- >>> generated assembly code, and it does not violate iOS rules (e.g. >>> no w+x sections). >>> The iOS sdk build can be created using >>> `make static-libs-image` >>> and it builds on top of the latest work in openjdk/jdk that >>> streamlines the build of static libraries and executables (e.g. >>> see JDK-8339480 [3]) >>> >>> Using this in iOS apps requires the iOS app to include the >>> libjvm.a as well as the required native classlibs (e.g. >>> libjava.a, libnet.a, ...) Also, the required classes need to be >>> available so that the interpreter can use them. I will update the >>> OpenJDK-mobile Wiki with an example on how this can be done. >>> >>> For those wondering about the difference with what we previously >>> did at Gluon with mobile Java: in the past, we were using AOT >>> compilers that were linked to their own JVM implementation (e.g. >>> RoboVM or GraalVM Substrate). Those solutions showed that Java >>> (and JavaFX) really works on iOS and Android devices, and >>> especially the GraalVM AOT allowed for a really fast execution. >>> However, those solutions were not using the hotspot code in OpenJDK. >>> >>> With the recent changes, we are now re-enabling the original >>> architecture in the Mobile Project, by using the very latest >>> hotspot code (Zero interpreter) which aligns the project much >>> closer to the upstream OpenJDK. Over the past years, there have >>> been tremendous improvements in both the JVM and the JDK code in >>> OpenJDK, and the fact that we can use this great work to build >>> apps on mobile is a huge opportunity. >>> >>> Using the Zero interpreter allows us to prove that things work, >>> and it might eventually lead to passing the TCK. It won't give us >>> top-performance, which will be needed for mobile applications. >>> That means there is still lots of work to do in a number of >>> areas, including >>> * AOT: compiled methods (ahead of time, not at runtime) will >>> generally run much faster than interpreted methods. I hope that >>> we can leverage experience from GraalVM and Project Leyden. >>> * footprint: we should only bundle code that is really required >>> by a specific app. >>> >>> Also, we need a similar build for Android -- although we can use >>> a JIT there, so we are not limited to Zero. >>> >>> Ultimately, this project will allow existing and new Java >>> libraries and projects to be used on mobile devices. This brings >>> Java back in pole-position for the Write Once Run Anywhere >>> paradigm. This can even be combined with OpenJFX, to have a >>> single codebase for a complete application including a modern UI, >>> all written in Java, and running on different client devices. >>> >>> As I said, there is lots of work to be done, but at least there >>> is Innovation Everywhere. >>> >>> - Johan >>> >>> [1] https://bugs.openjdk.org/browse/JDK-8346233 >> bugs.openjdk.org/browse/JDK-8346233> >>> [2] https://github.com/openjdk/mobile/commit/ >>> ce70629f4394184ba517fb99c92ac9374ec8f37a >> openjdk/mobile/commit/ce70629f4394184ba517fb99c92ac9374ec8f37a> >>> [3] https://bugs.openjdk.org/browse/JDK-8339480 >> bugs.openjdk.org/browse/JDK-8339480> > From jwaters at openjdk.org Fri May 16 08:39:24 2025 From: jwaters at openjdk.org (Julian Waters) Date: Fri, 16 May 2025 08:39:24 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS Message-ID: Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. ------------- Commit messages: - Make Zero the only valid JVM for hotspot.m4 Changes: https://git.openjdk.org/mobile/pull/35/files Webrev: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8357119 Stats: 9 lines in 1 file changed: 8 ins; 0 del; 1 mod Patch: https://git.openjdk.org/mobile/pull/35.diff Fetch: git fetch https://git.openjdk.org/mobile.git pull/35/head:pull/35 PR: https://git.openjdk.org/mobile/pull/35 From jwaters at openjdk.org Fri May 16 08:58:37 2025 From: jwaters at openjdk.org (Julian Waters) Date: Fri, 16 May 2025 08:58:37 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: > Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. Julian Waters has updated the pull request incrementally with one additional commit since the last revision: Touch up README.md ------------- Changes: - all: https://git.openjdk.org/mobile/pull/35/files - new: https://git.openjdk.org/mobile/pull/35/files/40fb383b..0eb8eb02 Webrevs: - full: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=01 - incr: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=00-01 Stats: 17 lines in 1 file changed: 8 ins; 3 del; 6 mod Patch: https://git.openjdk.org/mobile/pull/35.diff Fetch: git fetch https://git.openjdk.org/mobile.git pull/35/head:pull/35 PR: https://git.openjdk.org/mobile/pull/35 From jvos at openjdk.org Fri May 16 12:37:57 2025 From: jvos at openjdk.org (Johan Vos) Date: Fri, 16 May 2025 12:37:57 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 08:58:37 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Touch up README.md make/autoconf/hotspot.m4 line 82: > 80: > 81: if test "x$OPENJDK_TARGET_OS" = xios; then > 82: VALID_JVM_VARIANTS="zero" This should probably be guarded with a check on Device versus simulator. When running on an iOS simulator, it is technically possible to dynamically generate AND execute code, hence this is not restricted to zero. ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2092963331 From jvos at openjdk.org Fri May 16 12:50:12 2025 From: jvos at openjdk.org (Johan Vos) Date: Fri, 16 May 2025 12:50:12 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 08:58:37 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Touch up README.md README.md line 22: > 20: ### Pre-requisites > 21: Following are the prerequisites to build JDK on Mac targeting iOS: > 22: 1. Download and install JDK24 for macOS. You can use the JDK you just built targeting macOS in the above note instead, but this is not recommended. out of curiosity, why is that not recommended? ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2092982443 From jvos at openjdk.org Fri May 16 13:06:13 2025 From: jvos at openjdk.org (Johan Vos) Date: Fri, 16 May 2025 13:06:13 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 08:58:37 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Touch up README.md @TheShermanTanker thank you for the PR. Looks good, some minor comments. The biggest minor comment is probably about restricting the VM variant to Zero for all iOS builds. I believe there is value in building the server variant for the iOS simulator. While you can't distribute apps with it, it might help developers testing their apps quickly. README.md line 48: > 46: > 47: If you need to tell configure the path of the boot JDK, or if configure fails with an error saying > 48: it can't find the boot JDK, for instance if you downloaded a JDK in compressed archive form rather minor: change "the boot JDK" to "a boot JDK" ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2886665175 PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093005460 From ihse at openjdk.org Fri May 16 15:49:55 2025 From: ihse at openjdk.org (Magnus Ihse Bursie) Date: Fri, 16 May 2025 15:49:55 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: <7nIyDM2hGERsPE5BSA9nZAcrL-2xRJTdEBNWBSAZ6RM=.23ad2951-475e-4c2d-8631-01d1d067d31b@github.com> On Fri, 16 May 2025 13:03:13 GMT, Johan Vos wrote: >> Julian Waters has updated the pull request incrementally with one additional commit since the last revision: >> >> Touch up README.md > > @TheShermanTanker thank you for the PR. Looks good, some minor comments. > The biggest minor comment is probably about restricting the VM variant to Zero for all iOS builds. I believe there is value in building the server variant for the iOS simulator. While you can't distribute apps with it, it might help developers testing their apps quickly. @johanvos How can you test if you are building for the device or an emulator? If this can/should be supported, then we also need to write something about it in the documents, not only update configure. And if we can't detect the difference, then maybe most of this PR will need to be scrapped. > README.md line 22: > >> 20: ### Pre-requisites >> 21: Following are the prerequisites to build JDK on Mac targeting iOS: >> 22: 1. Download and install JDK24 for macOS. You can use the JDK you just built targeting macOS in the above note instead, but this is not recommended. > > out of curiosity, why is that not recommended? Yes, I can't see why that would be a problem. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2887096071 PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093289932 From ihse at openjdk.org Fri May 16 15:49:56 2025 From: ihse at openjdk.org (Magnus Ihse Bursie) Date: Fri, 16 May 2025 15:49:56 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 08:58:37 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Touch up README.md README.md line 43: > 41: --with-libffi-include=/libffi/include \ > 42: --with-libffi-lib=/libffi/libs \ > 43: --with-cups-include=/cups-2.3.6 Configure arguments don't have to be absolute paths; configure will rewrite then to absolute path if they are relative. ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093290989 From jvos at openjdk.org Fri May 16 17:09:02 2025 From: jvos at openjdk.org (Johan Vos) Date: Fri, 16 May 2025 17:09:02 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 13:03:13 GMT, Johan Vos wrote: >> Julian Waters has updated the pull request incrementally with one additional commit since the last revision: >> >> Touch up README.md > > @TheShermanTanker thank you for the PR. Looks good, some minor comments. > The biggest minor comment is probably about restricting the VM variant to Zero for all iOS builds. I believe there is value in building the server variant for the iOS simulator. While you can't distribute apps with it, it might help developers testing their apps quickly. > @johanvos How can you test if you are building for the device or an emulator? > > If this can/should be supported, then we also need to write something about it in the documents, not only update configure. > > And if we can't detect the difference, then maybe most of this PR will need to be scrapped. That is defined in the sysroot that is passed with configure. If you provide `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk` you are building for the device. If you provide `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/` you are building the the simulator. If the latter SDK is selected, `#ifdef TARGET_OS_SIMULATOR` will return true when compiling code. (but that won't help for the makefiles to detect if we're building for device or simulator) ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2887262049 From ihse at openjdk.org Fri May 16 20:24:19 2025 From: ihse at openjdk.org (Magnus Ihse Bursie) Date: Fri, 16 May 2025 20:24:19 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: <5QZfku-IYqzWu5Dxzb8ilRFOyP8zsxTSEn0Tk53BzeI=.f3108b27-a8ec-484f-b5b6-e88f8dd86b1f@github.com> On Fri, 16 May 2025 08:58:37 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Touch up README.md We can test for ifdefs by test compiling code, but it is not the most efficient way. Checking for `if [[ SYSROOT =~ .*Simulator.* ]]` seems simpler. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2887609608 From jwaters at openjdk.org Sat May 17 04:10:02 2025 From: jwaters at openjdk.org (Julian Waters) Date: Sat, 17 May 2025 04:10:02 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 17:05:50 GMT, Johan Vos wrote: > @johanvos How can you test if you are building for the device or an emulator? > > If this can/should be supported, then we also need to write something about it in the documents, not only update configure. > > And if we can't detect the difference, then maybe most of this PR will need to be scrapped. I still think defaulting to Zero for iOS is helpful, but I can remove the restricting of valid iOS JVM variants to only Zero since that is problematic. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2888045360 From jwaters at openjdk.org Sat May 17 04:10:02 2025 From: jwaters at openjdk.org (Julian Waters) Date: Sat, 17 May 2025 04:10:02 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: <7nIyDM2hGERsPE5BSA9nZAcrL-2xRJTdEBNWBSAZ6RM=.23ad2951-475e-4c2d-8631-01d1d067d31b@github.com> References: <7nIyDM2hGERsPE5BSA9nZAcrL-2xRJTdEBNWBSAZ6RM=.23ad2951-475e-4c2d-8631-01d1d067d31b@github.com> Message-ID: On Fri, 16 May 2025 15:44:21 GMT, Magnus Ihse Bursie wrote: >> README.md line 22: >> >>> 20: ### Pre-requisites >>> 21: Following are the prerequisites to build JDK on Mac targeting iOS: >>> 22: 1. Download and install JDK24 for macOS. You can use the JDK you just built targeting macOS in the above note instead, but this is not recommended. >> >> out of curiosity, why is that not recommended? > > Yes, I can't see why that would be a problem. I was conservative and thought we wouldn't want to encourage using a bleeding edge JDK compiled off master as the boot JDK. If this is ok, I can remove that "Not recommended" note. ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093883874 From jwaters at openjdk.org Sat May 17 04:10:02 2025 From: jwaters at openjdk.org (Julian Waters) Date: Sat, 17 May 2025 04:10:02 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Fri, 16 May 2025 13:01:27 GMT, Johan Vos wrote: >> Julian Waters has updated the pull request incrementally with one additional commit since the last revision: >> >> Touch up README.md > > README.md line 48: > >> 46: >> 47: If you need to tell configure the path of the boot JDK, or if configure fails with an error saying >> 48: it can't find the boot JDK, for instance if you downloaded a JDK in compressed archive form rather > > minor: change "the boot JDK" to "a boot JDK" I'll change this as soon as possible. > make/autoconf/hotspot.m4 line 82: > >> 80: >> 81: if test "x$OPENJDK_TARGET_OS" = xios; then >> 82: VALID_JVM_VARIANTS="zero" > > This should probably be guarded with a check on Device versus simulator. When running on an iOS simulator, it is technically possible to dynamically generate AND execute code, hence this is not restricted to zero. Ah, I was not aware that one could run server on the iOS simulator. I can remove this part since my assumption seems to be incorrect. ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093884829 PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2093885063 From jvos at openjdk.org Sun May 18 17:56:12 2025 From: jvos at openjdk.org (Johan Vos) Date: Sun, 18 May 2025 17:56:12 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: <-yrBg20bg55jew7k-EB7W-gQNPB8yVoKcvmkFSkxQ-M=.1a19d5b6-1506-4253-8efe-76bf3625a19f@github.com> On Fri, 16 May 2025 17:05:50 GMT, Johan Vos wrote: >> @TheShermanTanker thank you for the PR. Looks good, some minor comments. >> The biggest minor comment is probably about restricting the VM variant to Zero for all iOS builds. I believe there is value in building the server variant for the iOS simulator. While you can't distribute apps with it, it might help developers testing their apps quickly. > >> @johanvos How can you test if you are building for the device or an emulator? >> >> If this can/should be supported, then we also need to write something about it in the documents, not only update configure. >> >> And if we can't detect the difference, then maybe most of this PR will need to be scrapped. > > That is defined in the sysroot that is passed with configure. If you provide > `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk` you are building for the device. > > If you provide > `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/` > you are building the the simulator. > > If the latter SDK is selected, `#ifdef TARGET_OS_SIMULATOR` will return true when compiling code. (but that won't help for the makefiles to detect if we're building for device or simulator) > > @johanvos How can you test if you are building for the device or an emulator? > > If this can/should be supported, then we also need to write something about it in the documents, not only update configure. > > And if we can't detect the difference, then maybe most of this PR will need to be scrapped. > > I still think defaulting to Zero for iOS is helpful, but I can remove the restricting of valid iOS JVM variants to only Zero since that is problematic. Defaulting to Zero for iOS sounds like a good idea indeed. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2889123825 From jwaters at openjdk.org Mon May 19 05:14:27 2025 From: jwaters at openjdk.org (Julian Waters) Date: Mon, 19 May 2025 05:14:27 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v3] In-Reply-To: References: Message-ID: <-6e5yr4_sIPhL8L_PrF81WHxhXpjbE_6Ezzm78i3rT4=.9b870082-1785-4b91-a20f-549785adae00@github.com> > Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. Julian Waters has updated the pull request incrementally with two additional commits since the last revision: - Allow other JVMs again in hotspot.m4 - Improve README.md ------------- Changes: - all: https://git.openjdk.org/mobile/pull/35/files - new: https://git.openjdk.org/mobile/pull/35/files/0eb8eb02..3fed55c3 Webrevs: - full: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=02 - incr: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=01-02 Stats: 16 lines in 2 files changed: 2 ins; 4 del; 10 mod Patch: https://git.openjdk.org/mobile/pull/35.diff Fetch: git fetch https://git.openjdk.org/mobile.git pull/35/head:pull/35 PR: https://git.openjdk.org/mobile/pull/35 From ihse at openjdk.org Tue May 20 12:57:17 2025 From: ihse at openjdk.org (Magnus Ihse Bursie) Date: Tue, 20 May 2025 12:57:17 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v3] In-Reply-To: <-6e5yr4_sIPhL8L_PrF81WHxhXpjbE_6Ezzm78i3rT4=.9b870082-1785-4b91-a20f-549785adae00@github.com> References: <-6e5yr4_sIPhL8L_PrF81WHxhXpjbE_6Ezzm78i3rT4=.9b870082-1785-4b91-a20f-549785adae00@github.com> Message-ID: On Mon, 19 May 2025 05:14:27 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with two additional commits since the last revision: > > - Allow other JVMs again in hotspot.m4 > - Improve README.md README.md line 49: > 47: If you need to tell configure the path of your boot JDK, or if configure fails with an error saying > 48: it can't find a boot JDK, for instance if you downloaded a JDK in compressed archive form rather > 49: than with an installer, you can pass `--with-boot-jdk=` to configure: Suggestion: than with an installer, you can pass `--with-boot-jdk=` to configure. ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2097892763 From jwaters at openjdk.org Tue May 20 13:03:35 2025 From: jwaters at openjdk.org (Julian Waters) Date: Tue, 20 May 2025 13:03:35 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v4] In-Reply-To: References: Message-ID: > Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. Julian Waters has updated the pull request incrementally with one additional commit since the last revision: Change colon to period in README.md Co-authored-by: Magnus Ihse Bursie ------------- Changes: - all: https://git.openjdk.org/mobile/pull/35/files - new: https://git.openjdk.org/mobile/pull/35/files/3fed55c3..babd99be Webrevs: - full: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=03 - incr: https://webrevs.openjdk.org/?repo=mobile&pr=35&range=02-03 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/mobile/pull/35.diff Fetch: git fetch https://git.openjdk.org/mobile.git pull/35/head:pull/35 PR: https://git.openjdk.org/mobile/pull/35 From jwaters at openjdk.org Tue May 20 13:03:35 2025 From: jwaters at openjdk.org (Julian Waters) Date: Tue, 20 May 2025 13:03:35 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v3] In-Reply-To: References: <-6e5yr4_sIPhL8L_PrF81WHxhXpjbE_6Ezzm78i3rT4=.9b870082-1785-4b91-a20f-549785adae00@github.com> Message-ID: <9q73l1UGvRxRopjB6EPf93blSRoSEwbuFPIw3fU-MLE=.b302dc92-ab3f-4e83-8538-b66476558caa@github.com> On Tue, 20 May 2025 12:54:06 GMT, Magnus Ihse Bursie wrote: >> Julian Waters has updated the pull request incrementally with two additional commits since the last revision: >> >> - Allow other JVMs again in hotspot.m4 >> - Improve README.md > > README.md line 49: > >> 47: If you need to tell configure the path of your boot JDK, or if configure fails with an error saying >> 48: it can't find a boot JDK, for instance if you downloaded a JDK in compressed archive form rather >> 49: than with an installer, you can pass `--with-boot-jdk=` to configure: > > Suggestion: > > than with an installer, you can pass `--with-boot-jdk=` to configure. Oops, missed that, good catch ------------- PR Review Comment: https://git.openjdk.org/mobile/pull/35#discussion_r2097906063 From ihse at openjdk.org Tue May 20 14:26:02 2025 From: ihse at openjdk.org (Magnus Ihse Bursie) Date: Tue, 20 May 2025 14:26:02 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v4] In-Reply-To: References: Message-ID: <-60HUUSZUyWvVpGARZkcaJKkeyAB6cnRnnRszgaYDlM=.5f412aeb-fbae-4070-babf-5dca5256e9fe@github.com> On Tue, 20 May 2025 13:03:35 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Change colon to period in README.md > > Co-authored-by: Magnus Ihse Bursie This looks fine to me. You need to update the title in JBS and the PR to remove the "and only" part which no longer applies. ------------- Marked as reviewed by ihse (Reviewer). PR Review: https://git.openjdk.org/mobile/pull/35#pullrequestreview-2854429221 From jvos at openjdk.org Tue May 20 14:51:09 2025 From: jvos at openjdk.org (Johan Vos) Date: Tue, 20 May 2025 14:51:09 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v4] In-Reply-To: References: Message-ID: <309gCSTiPxYySGZqPAFxpcwNiJntAAeRMpsAu03T7ZY=.90a152e6-ff6d-4afd-8b30-12c9aded8c15@github.com> On Tue, 20 May 2025 13:03:35 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Change colon to period in README.md > > Co-authored-by: Magnus Ihse Bursie The paragraph about "ios has no writeable and executable sections" is technically not 100% correct, but since this is an informal README to inform developers, I am ok with the current text (and, TBH, I find it hard to come up with the correct wording). ------------- Marked as reviewed by jvos (Lead). PR Review: https://git.openjdk.org/mobile/pull/35#pullrequestreview-2854528796 From jvos at openjdk.org Mon May 26 08:10:54 2025 From: jvos at openjdk.org (Johan Vos) Date: Mon, 26 May 2025 08:10:54 GMT Subject: RFR: 8357119: Make Zero the default and only variant of HotSpot for iOS [v2] In-Reply-To: References: Message-ID: On Sat, 17 May 2025 04:07:40 GMT, Julian Waters wrote: >>> @johanvos How can you test if you are building for the device or an emulator? >>> >>> If this can/should be supported, then we also need to write something about it in the documents, not only update configure. >>> >>> And if we can't detect the difference, then maybe most of this PR will need to be scrapped. >> >> That is defined in the sysroot that is passed with configure. If you provide >> `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk` you are building for the device. >> >> If you provide >> `--with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/` >> you are building the the simulator. >> >> If the latter SDK is selected, `#ifdef TARGET_OS_SIMULATOR` will return true when compiling code. (but that won't help for the makefiles to detect if we're building for device or simulator) > >> @johanvos How can you test if you are building for the device or an emulator? >> >> If this can/should be supported, then we also need to write something about it in the documents, not only update configure. >> >> And if we can't detect the difference, then maybe most of this PR will need to be scrapped. > > I still think defaulting to Zero for iOS is helpful, but I can remove the restricting of valid iOS JVM variants to only Zero since that is problematic. @TheShermanTanker can you make the change in the PR title (and corresponding JBS issue) as Magnus requested? Once that is done, you can integrate the PR. Thanks! ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2908900624 From jwaters at openjdk.org Mon May 26 08:20:46 2025 From: jwaters at openjdk.org (Julian Waters) Date: Mon, 26 May 2025 08:20:46 GMT Subject: RFR: 8357119: Make Zero the default variant of HotSpot for iOS [v4] In-Reply-To: <309gCSTiPxYySGZqPAFxpcwNiJntAAeRMpsAu03T7ZY=.90a152e6-ff6d-4afd-8b30-12c9aded8c15@github.com> References: <309gCSTiPxYySGZqPAFxpcwNiJntAAeRMpsAu03T7ZY=.90a152e6-ff6d-4afd-8b30-12c9aded8c15@github.com> Message-ID: On Tue, 20 May 2025 14:48:30 GMT, Johan Vos wrote: > The paragraph about "ios has no writeable and executable sections" is technically not 100% correct, but since this is an informal README to inform developers, I am ok with the current text (and, TBH, I find it hard to come up with the correct wording). Oh, I wasn't aware of that. To save you both the trouble of having to re-review the change again I'll just push this as is, then maybe we can look to improve the wording in a follow up. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2908919459 From duke at openjdk.org Mon May 26 08:25:29 2025 From: duke at openjdk.org (duke) Date: Mon, 26 May 2025 08:25:29 GMT Subject: RFR: 8357119: Make Zero the default variant of HotSpot for iOS [v4] In-Reply-To: References: Message-ID: <8fTas2U9MLOs0Bwzf-idXk0UDkIBRVYhxOFbRjZKbdw=.3c72a297-c3da-4cee-b951-a52bcf8c6744@github.com> On Tue, 20 May 2025 13:03:35 GMT, Julian Waters wrote: >> Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. > > Julian Waters has updated the pull request incrementally with one additional commit since the last revision: > > Change colon to period in README.md > > Co-authored-by: Magnus Ihse Bursie @TheShermanTanker Your change (at version babd99be0765a54f2549f8b36548e75aa12fbabb) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/mobile/pull/35#issuecomment-2908934276 From jwaters at openjdk.org Mon May 26 09:36:02 2025 From: jwaters at openjdk.org (Julian Waters) Date: Mon, 26 May 2025 09:36:02 GMT Subject: Integrated: 8357119: Make Zero the default variant of HotSpot for iOS In-Reply-To: References: Message-ID: On Fri, 16 May 2025 08:34:03 GMT, Julian Waters wrote: > Currently, the Zero variant of HotSpot must be manually selected for mobile to compile properly for iOS, since iOS does not allow writeable and executable sections. Since Zero is, to my knowledge, the only valid HotSpot variant for iOS, this default should be handled by the build rather than require the developer to have specific knowledge about iOS and the mobile fork. I also took the opportunity to explicitly disallow selecting other JVM variants at all for iOS, this can be rolled back if my assumption turns out to be incorrect. While here, also touch up the build docs a little. This pull request has now been integrated. Changeset: a41ae11b Author: Julian Waters Committer: Magnus Ihse Bursie URL: https://git.openjdk.org/mobile/commit/a41ae11b149ed9173c288cfaa518387c5b2280b6 Stats: 27 lines in 2 files changed: 14 ins; 3 del; 10 mod 8357119: Make Zero the default variant of HotSpot for iOS Reviewed-by: ihse, jvos ------------- PR: https://git.openjdk.org/mobile/pull/35