Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Jul 2002 03:18:24 +0930
From:      Greg Lewis <glewis@eyesbeyond.com>
To:        K.J.Koster@kpn.com
Cc:        freebsd-java@FreeBSD.ORG
Subject:   Re: FW: FreshPorts daily notification
Message-ID:  <20020702031823.A52505@misty.eyesbeyond.com>
In-Reply-To: <59063B5B4D98D311BC0D0001FA7E452205FDA7F1@l04.research.kpn.com>; from K.J.Koster@kpn.com on Mon, Jul 01, 2002 at 10:38:01AM %2B0200
References:  <59063B5B4D98D311BC0D0001FA7E452205FDA7F1@l04.research.kpn.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 01, 2002 at 10:38:01AM +0200, K.J.Koster@kpn.com wrote:
> The message below just showed up on Freshports. Could someone elaborate on
> why the build process gets confused?
> 
> http://www.FreshPorts.org/java/jdk13/
>      Add a pre-build target to check for a setting of WRKDIRPREFIX which
>      will
>      result in the InvokerGen.java target failing.  The bootstrapping Linux
>      JDK will confuse itself if WRKDIRPREFIX also exists in /compat/linux
>      as a symbolic link to the directory in the standard FreeBSD hierarchy.
>      
>      Much appreciated sleuth work by:	     dillon
>      26 Jun 2002 - glewis

I'll attempt to explain this, although Matt Dillon was the one who did
all the detective work.  Basically, the Linux JDK is trying to absolutely
resolve the path of the file and the symlinks confuse it.  This is partly
due to how emulation works.

To give a concrete example.  If there is a file in /usr/tmp that its
trying to compile and /compat/linux/usr/tmp is a symbolic link to
/usr/tmp it will basically get into a loop like this:

Resolve /usr/tmp
-> Emulation layer checks in /compat/linux first, finds /usr/tmp there.
-> Resolve /compat/linux/usr/tmp.
-> /compat/linux/usr/tmp is a symbolic link to /usr/tmp.
-> Back to top of loop.

Matt has a nice truss trace that shows the syscalls happening for this
instance.  Eventually the JDK gives up and errors.

Let me know if that isn't clear and I'll ask Matt if I can forward the
explanation he sent to me.

The commit was to try and stop this happening at least some of the time
(its not perfect, but should catch the common cases).

-- 
Greg Lewis                            Email : glewis@eyesbeyond.com
Eyes Beyond                           Web   : http://www.eyesbeyond.com
Information Technology


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020702031823.A52505>