RFR: JDK-8170862: VarDeps breaks when a file with overridden CFLAGS has the same name as the library
Tim Bell
tim.bell at oracle.com
Mon Jan 9 16:46:13 UTC 2017
Hello Erik:
> 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)
Looks good to me.
Thanks-
Tim
More information about the build-dev
mailing list