Review Request: 8001541: Cannot build on Solaris using softlinks

Erik Joelsson erik.joelsson at oracle.com
Mon Dec 3 11:30:52 UTC 2012


http://cr.openjdk.java.net/~erikj/8001541/webrev.root.01/

This change fixes issues with the source root being in a symlinked 
directory path. This has been tweaked before but now I think I've 
finally nailed it.

When configure runs in the source root (or common/makefiles, 
common/autoconf etc), a new output directory should be created. If it's 
being run in an empty directory somewhere else, that should be used as 
output dir. The logic for making sure the current directory isn't used 
as output dir when it shouldn't is the problem here.

In configure we have created a macro BASIC_REMOVE_SYMBOLIC_LINKS which 
is used to normalize paths to make comparisons possible. This is what I 
changed:

* The test for readlink used --help and grep:ed for GNU. On my 
solaris_sparc the gnu readlink didn't print "GNU" in the help message 
but only in --version. Changed to --version.
* The backup implementation failed for directory only symlinks. I 
reordered statements a bit and made it work. I also removed all -P to 
$THEPWDCMD since it isn't supported on all platforms and seems to remove 
symlinks anyway, on both solaris and linux. This differs from the shell 
builtin pwd which only resolves symlinks with -P. I also replaced plain 
`pwd` with $PWD which should work the same way, and be more obvious in 
asking for a non resolved directory.

/Erik



More information about the build-dev mailing list