RFR(XS): 8146979: Backport of 8046471 breaks ppc64 build in jdk8u because 8072383 was badly backported before
David Holmes
david.holmes at oracle.com
Wed Jan 13 12:35:49 UTC 2016
Hi Volker,
On 13/01/2016 9:40 PM, Volker Simonis wrote:
> Hi,
>
> I please need an urgent review for this little patch in jdk8u-dev
> which fixes a build problem on ppc64.
>
> Can I push this myself directly to
> http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot ?
It is preferable that a shared file change goes through JPRT, just to
avoid accidents.
> http://cr.openjdk.java.net/~simonis/webrevs/2016/8146979/
> https://bugs.openjdk.java.net/browse/JDK-8146979
>
> Recently the change "8046471: Use OPENJDK_TARGET_CPU_ARCH instead of
> legacy value for hotspot ARCH" was backporeted to jdk8u. It changes
> the ARCH value which is passed from the top-level configure to the
> hotspot make via the hotspot-spec.gmk file. For the ppc64 architecture
> this changes the reported value for ARCH from 'ppc64' to 'ppc'.
>
> In jdk9 this is no problem, because the hotspot makefiles correctly
> handle this value. Unfortunately in jdk8u this is not the case,
> because the change "8072383: resolve conflicts between open and closed
> ports" hasn't been correctly downported from jdk9 to jdk8u before.
That backport was in February 2015 and seems to have been quite correct
until now. I think it is the backport of 8046471 that has caused the
problem - likely because there is a big difference in jdk9 and jdk8u
with regards to our closed ports.
That said the fix you propose may be fine but I need to verify a few
things first - which I will do when I am in the office in the morning.
Thanks,
David
> In jdk9 it contains the following lines:
>
> - SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc
> ppc64 aarch64 zero,$(ARCH)))
> + SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64
> aarch64 zero,$(ARCH)))
>
> ARCH/ppc64 = ppc
> ARCH/ppc = ppc
> - ARCH/arm = arm
> ARCH/aarch64= aarch64
>
> but in the downport this was for whatever reason changed to:
>
> - SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 arm ppc
> ppc64 zero,$(ARCH)))
> + SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc64
> zero,$(ARCH)))
>
> ARCH/ppc64 = ppc
> - ARCH/ppc = ppc
> - ARCH/arm = arm
> ARCH/zero = zero
>
> Notice how in jdk8u 'ppc' was removed from SRCARCH and how the line
> 'ARCH/ppc = ppc' was completely deleted in jdk8u.
>
> We need to fix these two line in jdk8u in order to make the build work
> again on ppc64.
>
> Regards,
> Volker
>
More information about the jdk8u-dev
mailing list