[7u]: help on jdk/make/common/shared/Defs-windows.gmk

Erik Joelsson erik.joelsson at oracle.com
Wed Nov 20 09:47:12 UTC 2013


The way I understand it $(if $(word 2,$1) is a check for whitespace in 
the input parameter. It's an optimization to avoid executing cygpath 
when it's not needed. The MixedPath macro cannot be used if the path 
contains a space. It also doesn't convert to an absolute path, just 
replacing cygwin specific paths with driveletter paths. The unfortunate 
effect of this is that FullPath behaves differently depending on if the 
path contains a space.

How are you invoking the build to cause this error? Are you explicitly 
setting ALT_OUTPUTDIR? What is the path to your workspace?

/Erik

On 2013-11-15 18:37, Francis ANDRE wrote:
> Hi
>
> I am trying to fix the following error
>
> $ make sanity
> jdk/make/common/shared/Defs.gmk:563: *** "ERROR: Trouble with the 
> absolute path for OUTPUTDIR './bui
> ld/windows-i586'".  Stop.
>
> and found the following code in 
> jdk/make/common/shared/Defs-windows.gmk, line 109
>
> define FullPath
> $(if $(word 2,$1),$(shell $(CYGPATH_CMD) $1 2> $(DEV_NULL)),$(call 
> MixedPath,$(realpath $(subst ",,$1))))
> endef
>
> Can someone explain me what use case is covered by the $(word 2,$1) in 
> the previous statement?
>
> The error "ERROR: Trouble with the absolute path for OUTPUTDIR" can be 
> fixed by replacing $(word 2,$1) by $(word 1,$1) but I cannot find a 
> usage for the $(word 2,$1)
>
> Francis




More information about the build-dev mailing list