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>