From Tyler.Steele at ibm.com Wed Jun 21 18:31:25 2023 From: Tyler.Steele at ibm.com (Tyler Steele) Date: Wed, 21 Jun 2023 18:31:25 +0000 Subject: The History of nortti and noeh on AIX Message-ID: Hi all, I was recently asked [1] why we include -qnoeh [2] and -qnoftti [3] with the build. It looks like it's been in the project since at least jdk9 [4], but I suspect that might not be the true origin of the flags. Reading the descriptions for the flags makes me suspect that these were added to improve performance "For improved runtime performance, suppress RTTI information generation with the -qnortti setting." [2] and possibly to reduce code bloat "If your program does not use C++ structured exception handling, you can compile with -qnoeh to prevent generation of code that is not needed by your application." [3]. But these are just guesses. Any chance that anyone out there knows/remembers why these were added? Tyler [1] https://github.com/adoptium/adoptium-support/issues/824#issuecomment-1599049333 [2] https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qrtti-qnortti-fno-rtti-c-only [3] https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qeh-fexceptions-c-only#opt_eh [4] https://github.com/openjdk/jdk/commit/e709aa268df64b2dc000433a1d9621a2fb0940f0 -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias.baesken at sap.com Thu Jun 22 09:40:02 2023 From: matthias.baesken at sap.com (Baesken, Matthias) Date: Thu, 22 Jun 2023 09:40:02 +0000 Subject: The History of nortti and noeh on AIX In-Reply-To: References: Message-ID: Hi Tyler, we had the flags -qnoeh and -qnortti already set before 2010 in our internal AIX build (some time before the AIX OpenJDK port started). Probably the features were not needed in those ancient times . I took over the flags when doing the xlc16 support changes in OpenJDK . Best regards, Matthias From: ppc-aix-port-dev On Behalf Of Tyler Steele Sent: Wednesday, 21 June 2023 20:31 To: ppc-aix-port-dev at openjdk.org Subject: The History of nortti and noeh on AIX Hi all, I was recently asked [1] why we include -qnoeh [2] and -qnoftti [3] with the build. It looks like it's been in the project since at least jdk9 [4], but I suspect that might not be the true origin of the flags. Reading the descriptions for the flags makes me suspect that these were added to improve performance "For improved runtime performance, suppress RTTI information generation with the -qnortti setting." [2] and possibly to reduce code bloat "If your program does not use C++ structured exception handling, you can compile with -qnoeh to prevent generation of code that is not needed by your application." [3]. But these are just guesses. Any chance that anyone out there knows/remembers why these were added? Tyler [1] https://github.com/adoptium/adoptium-support/issues/824#issuecomment-1599049333 [2] https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qrtti-qnortti-fno-rtti-c-only [3] https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qeh-fexceptions-c-only#opt_eh [4] https://github.com/openjdk/jdk/commit/e709aa268df64b2dc000433a1d9621a2fb0940f0 -------------- next part -------------- An HTML attachment was scrubbed... URL: From thomas.stuefe at gmail.com Thu Jun 22 09:53:42 2023 From: thomas.stuefe at gmail.com (=?UTF-8?Q?Thomas_St=C3=BCfe?=) Date: Thu, 22 Jun 2023 11:53:42 +0200 Subject: The History of nortti and noeh on AIX In-Reply-To: References: Message-ID: Yes, hotspot don't need it. AFAIK its disabled on all platforms. See: https://github.com/openjdk/jdk/blob/master/doc/hotspot-style.md#error-handling https://github.com/openjdk/jdk/blob/master/doc/hotspot-style.md#rtti-runtime-type-information C++ exception stack unwinding would probably fail in the face of our mixed, non-ABI-conform stacks. And RTTI is just not needed, why pay for it. Cheers, Thomas On Thu, Jun 22, 2023 at 11:40?AM Baesken, Matthias wrote: > Hi Tyler, we had the flags -qnoeh and -qnortti already set before > 2010 in our internal AIX build (some time before the AIX OpenJDK port > started). > > Probably the features were not needed in those ancient times . > > > > I took over the flags when doing the xlc16 support changes in OpenJDK . > > > > Best regards, Matthias > > > > > > *From:* ppc-aix-port-dev *On Behalf > Of *Tyler Steele > *Sent:* Wednesday, 21 June 2023 20:31 > *To:* ppc-aix-port-dev at openjdk.org > *Subject:* The History of nortti and noeh on AIX > > > > Hi all, > > > > I was recently asked [1] why we include -qnoeh [2] and -qnoftti [3] with > the build. It looks like it's been in the project since at least jdk9 [4], > but I suspect that might not be the true origin of the flags. > > > > Reading the descriptions for the flags makes me suspect that these were > added to improve performance "For improved runtime performance, suppress > RTTI information generation with the -qnortti setting." [2] and possibly > to reduce code bloat "If your program does not use C++ structured exception > handling, you can compile with -qnoeh to prevent generation of code that > is not needed by your application." [3]. But these are just guesses. Any > chance that anyone out there knows/remembers why these were added? > > > > Tyler > > > > [1] > https://github.com/adoptium/adoptium-support/issues/824#issuecomment-1599049333 > > [2] > https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qrtti-qnortti-fno-rtti-c-only > > [3] > https://www.ibm.com/docs/en/xl-c-and-cpp-aix/16.1?topic=descriptions-qeh-fexceptions-c-only#opt_eh > > [4] > https://github.com/openjdk/jdk/commit/e709aa268df64b2dc000433a1d9621a2fb0940f0 > -------------- next part -------------- An HTML attachment was scrubbed... URL: