[jdk11u-dev] RFR: 8348597: Update HarfBuzz to 10.4.0 [v2]
Andrew John Hughes
andrew at openjdk.org
Tue May 13 22:08:54 UTC 2025
On Mon, 12 May 2025 08:32:59 GMT, Antonio Vieiro <duke at openjdk.org> wrote:
>> Backport of [JDK-8348597](https://bugs.openjdk.org/browse/JDK-8348597) from JDK17 that updates HarfBuzz to 10.4.0 (which [improves drawing performande by 10+% and includes different build fixes](https://newreleases.io/project/github/harfbuzz/harfbuzz/release/10.4.0)). Backport is not clean because it required adapting `make/lib/Awt2dLibraries.gmk` to fit JDK11.
>>
>> Even though the backport built correctly, the resulting `jdk/lib/libfontmanager.so` contained undefined symbols that caused Swing tests to fail with `UnsatisfiedLinkError`. This is because JDK11 is missing [JDK-8319197](https://bugs.openjdk.org/browse/JDK-8319197) that excludes hb-subset from compilation, so this is also included as the second commit in the pull request.
>>
>> While at it, a third commit adds an additional `-Wno-attributes` flag to `HARFBUZZ_DISABLED_WARNINGS_CXX_gcc`, restoring the capability to build JDK11 on Linux with `gcc-4.8.5` (this is an old version of gcc, dating from 2015, but it's still the system gcc version in RHEL-7).
>>
>> Tested
>>
>> - on Windows 10 with `jdk:jfc_demo`.
>> - on Linux with `jdk:jfc_demo`, with
>> - `gcc 4.8.5/harfbuzz-1.7.5 (x86_64 & s390x)`,
>> - `gcc 8.5.0/harfbuzz-1.7.5 (x86_64)`,
>> - `gcc 11.5.0/harfbuzz-2.7.4 (x86_64)`
>> - and `gcc 14.2.1/harfbuzz-9.0.0 (x86_64)`
>>
>> with both `--with-harfbuzz=system` and `--with-harfbuzz=bundled`.
>
> Antonio Vieiro has updated the pull request incrementally with one additional commit since the last revision:
>
> Removed parentheses and use-after-free (tested with gcc 14 & gcc 4.8.5)
The code changes look fine and match 17u.
I'm confused by what is going on in `make/lib/Awt2dLibraries.gmk`. There should be just two changes here according to the description:
* The addition of `dangling-pointer` to the disabled warnings as in 8348597
* The expansion of `LIBFONTMANAGER_EXCLUDE_FILES` from 8319197
While I would prefer 8319197 was handled separately - as it is independent of this change - it is simple enough that it can be included here.
What I don't get is why the block is being indented by one space, which is obscuring the changes made to the set of disabled warnings. I think the clang ones are also being reordered but it's hard to tell for sure. I imagine this is why the other additions Severin already caught slipped in as well.
I also don't think an AIX change should be included if you are not testing on AIX or there is at least some relation to this change.
Please fix `Awt2dLibraries.gmk` to just update the lines we actually want to change as documented in the PR summary without altering the indentation and adding the AIX fix. Thanks.
-------------
Changes requested by andrew (Reviewer).
PR Review: https://git.openjdk.org/jdk11u-dev/pull/3026#pullrequestreview-2838235376
More information about the jdk-updates-dev
mailing list