RFR: 8371914: PNG defines in CFLAGS can cause compilation errors with external libpng [v2]
Jayathirth D V
jdv at openjdk.org
Wed Dec 3 16:31:46 UTC 2025
On Wed, 3 Dec 2025 15:58:28 GMT, Kurt Miller <kurt at openjdk.org> wrote:
>> make/modules/java.desktop/lib/ClientLibraries.gmk line 167:
>>
>>> 165: ifeq ($(USE_EXTERNAL_LIBPNG), false)
>>> 166: LIBSPLASHSCREEN_HEADER_DIRS += libsplashscreen/libpng
>>> 167: LIBSPLASHSCREEN_CFLAGS += -DPNG_NO_MMX_CODE -DPNG_ARM_NEON_OPT=0
>>
>> I think we can move these flags which are not specific to any OS/Architecture to src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h itself. But it should be handled in follow-up task not under this bug. Filed https://bugs.openjdk.org/browse/JDK-8372979 for the same.
>
> @jayathirthrao Thank you for the review.
>
> The internal PNG defines are treated inconsistently. MMX is x86, PNG_ARM is arm/aarch64 but they are not behind CpuArch conditionals while the others are behind OS + CpuArch conditionals. All of these defines appear to be well scoped and likely don't conflict with each other for internal png. I suspect they all can be defined without OS + CpuArch conditionals for the internal png case.
Thanks for the info. We need to make sure changing things in src/java.desktop/share/native/libsplashscreen/libpng/pnglibconf.h doesn't break things and it also needs good amount of testing. So this will be taken up in follow-up task.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28324#discussion_r2585814360
More information about the client-libs-dev
mailing list