When running the build on Macosx with a very long path to the root dir, we have started hitting the command line length limit while linking the gtest libjvm.dylib. In our case, the length of the path is not under our control, so we need to find a way to deal with this.

make/common/NativeCompilation.gmk already utilizes the @-file feature of most toolchains to mitigate this. The problem here is that clang does not properly work with @-files when linking.

This patch rewrites the object file list to paths relative to the output dir when it seems likely to be necessary, and makes sure the link command is executed in that directory. I've tried to only make this rewrite happen when needed (clang, >500 objects, >10 path elements in the output dir). This means that for most users, there should be no difference from today and the contents of the .cmdline files will continue to be runnable from any directory.

Bug: https://bugs.openjdk.java.net/browse/JDK-8186470

Webrev: http://cr.openjdk.java.net/~erikj/8186470/webrev.01/

/Erik

Reply via email to