Re: java/openjdk19 fails to build on aarch64

From: Jonathan Chen <jonc_at_chen.org.nz>
Date: Thu, 20 Mar 2025 03:33:15 UTC
On 19/03/25 22:24, Harald Eilertsen wrote:
> On Wed, Mar 19, 2025 at 07:27:00PM +1300, Jonathan Chen wrote:
>> On 18/03/25 01:15, Harald Eilertsen wrote:
>>> On Mon, Mar 17, 2025 at 04:41:13PM +1300, Jonathan Chen wrote:
>>>> ===>  Building for openjdk19-19.0.2+7.1_1
>>>> Error: The configuration is not up to date for 'bsd-aarch64-server-release'.
>>>
>>> Check /usr/ports/openjdk19/work/jdk19u-jdk-19.0.2-7-1/build/bsd-aarch64-server-release/configure.log
>>>
>>> To see if the configure step completes, and if not, what causes it to
>>> fail.
>>
>> I've compared the configure.log+spec.gmk on aarch64 against amd64, and
>> haven't noted anything unusual. However, on my aarch64 system, gmake notices
>> that the files in make/autoconf are newer than
>> build/bsd-aarch64-server-release/spec.gmk and this triggers the failure.
> 
> libraries.m4 should be patched before configure is run, which again
> produces spec.gmk. Otherwise it would be no point in patching it to
> begin with...

You are correct. I only realised this just after I pressed the "Send" 
button. So I dug into this a bit deeper, and it appears that 
make/autoconf/build-aux directory has a later timestamp than spec.gmk 
after the configure phase. There are no files within "build-aux" that 
have a later timestamp, so I guess either a file had been created or 
removed within the directory; resulting in the timestamp change. 
However, this is enough to trigger the "not up to date" warning and 
stopping the build.

To force the build to ignore the warning, I applied the following patch:

diff --git a/java/openjdk19/Makefile b/java/openjdk19/Makefile
index 76e8910459..4b84b82092 100644
--- a/java/openjdk19/Makefile
+++ b/java/openjdk19/Makefile
@@ -48,7 +48,7 @@ MAKE_ENV=     LANG="C" \
                 CC=${CC} \
                 CXX=${CXX} \
                 CPP=${CPP} \
-               MAKEFLAGS=""
+               MAKEFLAGS="CONF_CHECK=ignore "

  JDK_OSARCH=    bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/}
  JDK_BUILDDIR= 
${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE}


Cheers.
-- 
Jonathan Chen <jonc@chen.org.nz>