RFR: 8349378: Build splashscreen lib with SIZE optimization

Erik Joelsson erikj at openjdk.org
Thu Dec 4 23:43:18 UTC 2025


On Thu, 6 Feb 2025 14:03:16 GMT, Erik Joelsson <erikj at openjdk.org> wrote:

>> The splashscreen lib is currently built with LOW optimization.
>> This might be fine because it is not very performance critical  (and LOW is not really low when looking at the opt-flags used).
>> But building it with SIZE optimization makes it 10-20 % smaller on some platforms which helps to reduce image size.
>> 
>> current settings (LOW optimization) :
>> ---------------------------------------------------
>> 2.5M /aix_ppc64/jdk-opt/images/jdk/lib/libsplashscreen.so  (not split debuginfo file on AIX currently)
>> 
>> 468K /macosaarch64/jdk-opt/images/jdk/lib/libsplashscreen.dylib
>> 1.6M /macosaarch64/jdk-opt/images/jdk/lib/libsplashscreen.dylib.dSYM
>> 388K /macosintel64/jdk-opt/images/jdk/lib/libsplashscreen.dylib
>> 1.5M /macosintel64/jdk-opt/images/jdk/lib/libsplashscreen.dylib.dSYM
>> 
>> 368K /linux_aarch64/jdk-opt/images/jdk/lib/libsplashscreen.so
>> 1.7M /linux_aarch64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 376K /linux_alpine_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.so
>> 1.8M /linux_alpine_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 500K /linux_ppc64le/jdk-opt/images/jdk/lib/libsplashscreen.so
>> 1.7M /linux_ppc64le/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 364K /linux_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.so
>> 1.7M /linux_x86_64/jdk-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 
>> 
>> new settings (SIZE optimization) :
>> --------------------------------------------------
>> 2.1M /aix_ppc64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so    (not split debuginfo file on AIX currently)
>> 
>> 404K /macosaarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib
>> 1.5M /macosaarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib.dSYM
>> 316K /macosintel64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib
>> 1.4M /macosintel64/jdk-dev-opt/images/jdk/lib/libsplashscreen.dylib.dSYM
>> 
>> 372K /linux_aarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so
>> 1.5M /linux_aarch64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 304K /linux_alpine_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so
>> 1.5M /linux_alpine_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 376K /linux_ppc64le/jdk-dev-opt/images/jdk/lib/libsplashscreen.so
>> 1.4M /linux_ppc64le/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 304K /linux_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.so
>> 1.4M /linux_x86_64/jdk-dev-opt/images/jdk/lib/libsplashscreen.debuginfo
>> 
>> On Linux aarch64 only the debuginfo shrinks but the lib stays abo...
>
> I think this looks good, but someone from client should probably also weigh in.

> @erikj79 @MBaesken I wonder, is it possible to switch this parameter via configuration or something? Or is the only way to tweak the OPT level for the library by modifying the makefile? I tried using with-extra-cflags, but it seems to be appended before OPT, so it’s ignored.

We do not support changing optimization levels through configure or make arguments. You need to edit makefiles for each individual library.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23493#issuecomment-3614748589


More information about the client-libs-dev mailing list