RFR: 8257679: Improved unix compatibility layer in Windows build (winenv) [v4]

Erik Joelsson erikj at openjdk.java.net
Fri Dec 4 14:20:14 UTC 2020


On Thu, 3 Dec 2020 22:39:00 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> make/common/JavaCompilation.gmk line 241:
>> 
>>> 239: 
>>> 240:       $$($1_JAVAC_SERVER_CONFIG): $$($1_CONFIG_VARDEPS_FILE)
>>> 241: 	$(ECHO) portfile=$$($1_JAVAC_PORT_FILE) > $$@
>> 
>> Did you consider using WriteFile here?
>
> Yes, I tried that first. And pulled my hair a couple of times. Turns out there is no way (that I could find, at least) to get WriteFile to write multiple lines.

Fair enough.

>> make/autoconf/util_paths.m4 line 401:
>> 
>>> 399:             if test "x$4" != xNOFIXPATH; then
>>> 400:               [ if [[ $FIXPATH != "" && $result =~ ^"$FIXPATH " ]]; then ]
>>> 401:                 result="\$FIXPATH ${result#"$FIXPATH "}"
>> 
>> Maybe I'm missing something, but is this unconditionally adding fixpath to any executable based just on if FIXPATH is set? Shouldn't there be a conditional on if the executable is Windows or Unix type?
>
> I agree it is a bit hairy. Perhaps not ideal; even though this is a rewrite it has suffered some legacy "lava flow" itself, being in development for so long.
> 
> The idea here is. that NOFIXPATH (or not) as $4 is passed to UTIL_FIXUP_EXECUTABLE. If it is set, then UTIL_FIXUP_EXECUTABLE will never prepend FIXPATH. Otherwise, UTIL_FIXUP_EXECUTABLE will do the check you are requesting, and see if we are on Windows and it is a non-unix-aware executable, and if so, prepend FIXPATH.
> 
> So when we come back to UTIL_LOOKUP_PROGS, if we don't have NOFIXPATH, and we are on Windows (FIXPATH is non-empty) and the path we got from UTIL_FIXUP_EXECUTABLE starts with FIXPATH, then we remove all instances of FIXPATH, and prepend a single FIXPATH instance.
> 
> While seems like unneccessary work. I ran into situations where I got a double FIXPATH prefix. It might have been the result of some other bug that is fixed by now, but costs very little to keep this as a safeguard. It should get a comment, though, describing what it does.

Comment is good for me, thanks.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1597


More information about the hotspot-compiler-dev mailing list