I remember cygwin having some goofy behaviors with upper case, e.g. for Z:/.  
/cygdrive/Z/  vs. /cygdrive/z/

just a thought...

-kto

On Nov 20, 2013, at 12:11 PM, Francis ANDRE wrote:

> Erik
> 
> >>How are you invoking the build to cause this error? Are you explicitly 
> >>setting ALT_OUTPUTDIR?
> I am invoking just: make sanity without explicitly setting ALT_OUTPUTDIR.
> 
> 
> What is the path to your workspace?
> FrancisANDRE@idefix /cygdrive/Z/JDK/jdk7u
> $ hg path
> default = http://hg.openjdk.java.net/jdk7u/jdk7u
> 
> FrancisANDRE@idefix /cygdrive/Z/JDK/jdk7u
> $ hg root
> /cygdrive/Z/JDK/jdk7u
> 
> 
> 
> I  extracted the relevant commands from the 
> jdk/make/common/shared/Defs-windows.gmk into the joined test.mk file
> 
> if one runs make -f test.mk with $(if $(word 2,$1) at line 72, one gets
> $ make -f test.mk
> *OUTPUTDIR=./build/windows-i586**
> **ABS_OUTPUTDIR=*
> ALT_HOTSPOT_IMPORT_PATH=Z:/JDK/jdk7u/build/windows-i586/hotspot/import
> _HOTSPOT_IMPORT_PATH2=
> _HOTSPOT_IMPORT_PATH3=
> HOTSPOT_IMPORT_PATH=Z:/JDK/jdk7u/build/windows-i586/hotspot/import
> SYSTEMROOT=C:WINDOWS
> xSYSTEMROOT=C:/WINDOWS
> _system_root=C:/WINDOWS
> FOO=Z:/JDK/jdk7u/build/windows-i586
> BAR=C:/WINDOWS
> 
> 
> if one runs make -f test.mk with $(if $(word 1,$1) at line 72, one gets
> $ make -f test.mk
> *OUTPUTDIR=./build/windows-i586**
> **ABS_OUTPUTDIR=Z:/JDK/jdk7u/build/WINDOW~1*
> ALT_HOTSPOT_IMPORT_PATH=Z:/JDK/jdk7u/build/windows-i586/hotspot/import
> _HOTSPOT_IMPORT_PATH2=
> _HOTSPOT_IMPORT_PATH3=
> HOTSPOT_IMPORT_PATH=Z:/JDK/jdk7u/build/WINDOW~1/hotspot/import
> SYSTEMROOT=C:WINDOWS
> xSYSTEMROOT=C:/WINDOWS
> _system_root=C:/WINDOWS
> FOO=Z:/JDK/jdk7u/build/WINDOW~1
> BAR=C:/WINDOWS
> 
> 
> in both case, OUTPUTDIR is a relative path as "./build/windows-i586", but 
> only the second computes properly the ABS_OUTPUTDIR as 
> "Z:/JDK/jdk7u/build/WINDOW~1". In the first case, ABS_OUTPUTDIR is empty with 
> leads to the error "ERROR: Trouble with the absolute path for OUTPUTDIR"
> 
> 
> 
> Le 20/11/2013 10:47, Erik Joelsson a écrit :
>> 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
>> 
>> 
> 
> <test.mk>

Reply via email to