RFR: 8376703: Some coding in libjimage seems to be not called at all or not called from PRODUCT code [v2]
Matthias Baesken
mbaesken at openjdk.org
Fri Jan 30 12:55:07 UTC 2026
On Fri, 30 Jan 2026 12:41:33 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
>> libjimage has a few unused functions/methods; those are listed when logging elimination with -Wl,--gc-sections -Wl,--print-gc-sections .
>> We could remove them (or with if are still needed for completeness put them into #if 0 ) to reduce lib size on Linux and AIX.
>> On Windows and macOS it seems the compiler/linker default settings are good enough to eliminate the code.
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>
> Adjust COPYRIGHT headers
one interesting finding seems to be that the linktime-gc can eliminate more methods like
`ZipDecompressor::decompress(void*, unsigned long, void*, unsigned long, char**)`
which is printed as removed
`
/usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/bin/ld: removing unused section '.text._ZN15ZipDecompressor10decompressEPvyS0_yPPc' in file '/builddir/support/native/java.base/libjimage/imageDecompressor.o'`
but this is not unused/uncalled in our codebase. I think it is inlined at the 1 or 2 points were it is used. But the method is still generated into the library even in case that it is always inlined ; it may be difficult to address this with the usual linker settings on Linux (means without linktime-gc or LTO or similar stuff ) .
-------------
PR Comment: https://git.openjdk.org/jdk/pull/29502#issuecomment-3823600664
More information about the core-libs-dev
mailing list