RFR: 8371893: [macOS aarch64] use dead_strip linker option to reduce binary size [v4]

Matthias Baesken mbaesken at openjdk.org
Tue Nov 25 09:26:11 UTC 2025


On Mon, 24 Nov 2025 14:53:33 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

>> The dead_strip linker option on macOS removes functions and data that are unreachable by the entry point or exported symbols.
>> Setting it can reduce the size of some binaries we generate quite a lot, for example (product build, Xcode 15 is used) :
>> (before -> after setting the option)
>> 
>> 1.4M -> 1.1M images/jdk/lib/libfontmanager.dylib
>> 264K -> 248K images/jdk/lib/libjavajpeg.dylib
>> 152K -> 132K images/jdk/lib/libjli.dylib
>> 388K -> 296K images/jdk/lib/liblcms.dylib
>> 164K -> 128K images/jdk/lib/libzip.dylib
>> 
>> 
>> and libjvm :
>> 
>> 20M -> 18M images/jdk/lib/server/libjvm.dylib
>> 146M -> 137M images/jdk/lib/server/libjvm.dylib.dSYM
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Set the -dead_strip linker option only for the JDK libs

Here are some current values  (build from last evening 24th Nov.) for JDK native libs where I see a noticeable effect in size reduction with this PR (values in K without `->` with the flag , product build, XCode 15 used)

1216 ->  1188    /jdk/lib/libawt_lwawt.dylib
1348 ->  1036    /jdk/lib/libfontmanager.dylib
636	 ->  620     /jdk/lib/libfreetype.dylib
264  ->  248     /jdk/lib/libjavajpeg.dylib
312	 ->  292     /jdk/lib/libjdwp.dylib
152 -> 132       /jdk/lib/libjli.dylib
388 -> 296       /jdk/lib/liblcms.dylib
500 -> 484     /jdk/lib/libmlib_image.dylib
164 -> 128     /jdk/lib/libzip.dylib

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

PR Comment: https://git.openjdk.org/jdk/pull/28319#issuecomment-3574624069


More information about the hotspot-dev mailing list