Hi,

I've created a jdk11u backport of JDK-8247872: Upgrade HarfBuzz to the latest 
2.7.2
http://cr.openjdk.java.net/~mdoerr/8247872_harfbuzz_11u/webrev.00/

I had to resolve it a bit manually [1].
However, the main problem is that it heavily uses C++11, so easiest solution is 
to add HARFBUZZ_CFLAGS := -std=c++11.
This works for all supported compilers [2] except xlC on AIX and sun studio on 
Solaris.

I could envision different solutions:

  1.  Change code to work with older C++ standard. I don't want to do this 
because this seems to be significant effort and is probably error prone (I'm 
not really familiar with the code and TMP code is hard to adapt). And we may 
have to repeat it for future HB upgrades.
  2.  Upgrade compilers: This is possible on AIX. We'd need to backport some 
build changes and use xlclang++. But I guess there's no solaris studio 
available which can compile it. Note that the original bug was blocked by JEP 
362: Deprecate the Solaris and SPARC Ports.
  3.  Use configure flag --with-harfbuzz=system on the problematic platforms. 
Disadvantage: All machines require new enough version of libharfbuzz installed.
  4.  Skip JDK-8247872 backport. Oracle must have had a reason for backporting 
it to 11.0.11-oracle, so some jdk11u users will probably want to have it at 
least on the main platforms.

Any comments or ideas will be appreciated.

Best regards,
Martin


[1] Resolution steps:
- Manually delete hb-dsalgs.hh.
- Awt2dLibraries.gmk is at a different location in 11u.
- Integrate a few hunks manually due to minor adaptations for Solaris build: 
see 
http://cr.openjdk.java.net/~mdoerr/8247872_harfbuzz_11u/8247872_harfbuzz_failing_hunks.txt
- Add HARFBUZZ_CFLAGS := -std=c++11 to Awt2dLibraries.gmk.

[2] Supported compilers:
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms

Reply via email to