|
Quick Lists
|
|
Bug ID:
|
6668781
|
|
Votes
|
0
|
|
Synopsis
|
Openjdk windows cygwin build failure: no rule to make linker_md.obj target
|
|
Category
|
java:build
|
|
Reported Against
|
|
|
Release Fixed
|
6-open(b07),
7(b25) (Bug ID:2159578)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
2-High
|
|
Related Bugs
|
6672777
|
|
Submit Date
|
28-FEB-2008
|
|
Description
|
Download openjdk7 sources and binary plugs:
#!/bin/bash
set -x
export ALT_JDK_IMPORT_PATH=C:/jdk1.6.0
export ALT_BOOTDIR=C:/jdk1.6.0
export ALT_SLASH_JAVA=C:/jprt/slashjava
export ALT_PREVIOUS_RELEASE_PATH=C:/jdk1.6.0
export ALT_BINARY_PLUGS_PATH=C:/jprt/products/P1/binaryplugs6/openjdk-binary-plugs
( cd jdk7 && rm -f -r build jdk/build )
( cd jdk7 && make OPENJDK=true BUILD_HOTSPOT=false )
You will get something like:
make[6]: *** No rule to make target `c:/kto/jdk7/build/WINDOW~1/tmp/java/hpi/windows_threads/obj/linker_md.obj',
needed by `c:/kto/jdk7/build/WINDOW~1/tmp/java/hpi/windows_threads/obj/.files_compiled'.
Stop.
make[6]: Leaving directory /cygdrive/c/kto/jdk7/jdk/make/java/hpi/windows'
Posted Date : 2008-02-28 01:27:05.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
I'm trying this fix in the top level repository:
bonsai<315> hg diff
diff --git a/make/Defs-internal.gmk b/make/Defs-internal.gmk
--- a/make/Defs-internal.gmk
+++ b/make/Defs-internal.gmk
@@ -208,7 +208,6 @@ endif
# Common make arguments (supplied to all component builds)
COMMON_BUILD_ARGUMENTS = \
- JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
EXTERNALSANITYCONTROL=true \
TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
Just delete that one line.
The root cause appears to be that the cygwin make is seeing ':' characters in the paths supplied to the vpath or VPATH mechanism, and is interpreting them as separators rather than part of the path. The above fix triggers the use of relative paths and avoids the issue. The documentation on vpath seems to state that ';' is used on windows, but is cygwin unix or windows? :^(
It's possible a better answer would be to always make sure that vpath entries are only relative paths, and in general try and use relative paths in the makefiles if at all possible.
Use of the cygwin style paths (/cygdrive/c/) is assumed a problem because the resulting path will be supplied to the Windows Visual Stusio compiler (cl.exe) which will not like these /cygdrive/c/ paths. Although I suppose the compile rule could be adjusted to always transform any path it gets into a C:/ style path with cygpath -m.
Posted Date : 2008-02-28 01:27:05.0
A better fix would be to make sure that the vpath entries always use relative paths, looking at this change:
Posted Date : 2008-03-06 02:49:47.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |