Current cross-compilation configurations require adding the whole lot of 
configure options to make it find the dependencies: freetype and X11 libs are 
the only problematic dependencies. We should be able to specify just the 
`--with-sysroot`, and get everything else autodetected.

After this patch, doing `sh ./configure --openjdk-target=powerpc64le-linux-gnu 
--with-sysroot=/chroots/ppc64el`, where chroot is `debootstrap`-ed chroot as 
per our build docs, is enough to get everything configured. See the GH Actions 
definition to see what options are not needed anymore.

Some explanations:
  - `*-gnuabi64` is needed for `mips64el`
  - `*-gnueabihf` is needed for `armhf`
  - `$OPENJDK_TARGET_CPU_AUTOCONF-linux-gnu` is needed for `powerpc*`, because 
OpenJDK build rewrites `VAR_CPU` to `ppc`, leading to mismatch. 

Additional testing:
 - [x] Configure with target `x86_64-linux-gnu`
 - [x] Configure with cross-target `i686-linux-gnu`
 - [x] Configure with cross-target `alpha-linux-gnu`
 - [x] Configure with cross-target `aarch64-linux-gnu`
 - [x] Configure with cross-target `arm-linux-gnueabihf`
 - [x] Configure with cross-target `arm-linux-gnueabi`
 - [x] Configure with cross-target `mipsel-linux-gnu`
 - [x] Configure with cross-target `mips64el-linux-gnuabi64`
 - [x] Configure with cross-target `powerpc-linux-gnu`
 - [x] Configure with cross-target `powerpc64-linux-gnu`
 - [x] Configure with cross-target `powerpc64le-linux-gnu`
 - [x] Configure with cross-target `m68k-linux-gnu`
 - [x] Configure with cross-target `sh4-linux-gnu`
 - [ ] Build with target `x86_64-linux-gnu`
 - [x] Build with cross-target `i686-linux-gnu`
 - [ ] Build with cross-target `alpha-linux-gnu`
 - [ ] Build with cross-target `aarch64-linux-gnu`
 - [ ] Build with cross-target `arm-linux-gnueabihf`
 - [ ] Build with cross-target `arm-linux-gnueabi`
 - [ ] Build with cross-target `mipsel-linux-gnu`
 - [ ] Build with cross-target `mips64el-linux-gnuabi64`
 - [ ] Build with cross-target `powerpc-linux-gnu`
 - [ ] Build with cross-target `powerpc64-linux-gnu`
 - [ ] Build with cross-target `powerpc64le-linux-gnu`
 - [ ] Build with cross-target `m68k-linux-gnu`
 - [ ] Build with cross-target `sh4-linux-gnu`

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

Commit messages:
 - 8257913: Enable cross-compilation with only sysroot specified

Changes: https://git.openjdk.java.net/jdk/pull/2833/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2833&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257913
  Stats: 32 lines in 4 files changed: 28 ins; 4 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2833.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2833/head:pull/2833

PR: https://git.openjdk.java.net/jdk/pull/2833

Reply via email to