RFR: JDK-8170862: VarDeps breaks when a file with overridden CFLAGS has the same name as the library
Erik Joelsson
erik.joelsson at oracle.com
Mon Jan 9 16:41:43 UTC 2017
Hello,
VarDeps breaks when a file with overridden CFLAGS has the same name as
the library.
SetupNativeCompilation(FOO,
LIBRARY:=foo,
foo_CFLAGS := -DmakeItBreak)
We then get the vardeps file for linking the library and the vardeps
file for the specific CFLAGS ending up with the same name: "foo.vardeps"
I chose to fix this by not stripping off the object extension from the
filename when generating the vardeps file for specific object files.
This also aligns better with other files we generate next to the
objects, like foo.o.cmdline and foo.o.log, and now foo.o.vardeps.
Bug: https://bugs.openjdk.java.net/browse/JDK-8170862
Patch:
diff -r ef056360ddf3 make/common/NativeCompilation.gmk
--- a/make/common/NativeCompilation.gmk
+++ b/make/common/NativeCompilation.gmk
@@ -288,8 +288,7 @@
$$($1_$(notdir $2)_OPTIMIZATION)), )
$1_$2_VARDEPS := $$($1_$(notdir $2)_CFLAGS) $$($1_$(notdir
$2)_CXXFLAGS) \
$$($1_$(notdir $2)_OPT_CFLAGS) $$($1_$(notdir $2)_OPT_CXXFLAGS)
- $1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS, \
- $$(patsubst %$(OBJ_SUFFIX),%.vardeps,$$($1_$2_OBJ)))
+ $1_$2_VARDEPS_FILE := $$(call DependOnVariable, $1_$2_VARDEPS,
$$($1_$2_OBJ).vardeps)
endif
$$($1_$2_OBJ) : $2 $$($1_COMPILE_VARDEPS_FILE)
$$($1_$2_VARDEPS_FILE) | $$($1_BUILD_INFO)
/Erik
More information about the build-dev
mailing list