For a while since switching to the new build system, tests have begun failing on mac, complaining about files starting with '._' showing up in the jdk image. The source of these files are extended attributes on mac when in certain cases copied to a non mac filesystem. In this case the attribute is com.apple.quarantine, which the OS sets to guard against execution of downloaded binaries. Normally this doesn't happen to developers who get the source code through mercurial, but nightly builds get sources by zip bundles, and when unzipped, the source files get this attribute added. For files generated during the build, this isn't a problem, but a bunch of files are just copied from the source to the build directory and these files retain the attribute. In the old build, cpio was used to copy files into the final image directory, and this removed extended attributes, but in the new build, cp is used and the attribute stays.

The solution proposed here explicitly removes the attributes in the install-file macro. Unfortunately the macro wasn't widely used, so all simple copy operations had to also be converted to actually use the macro, which in itself is an improvement on code quality. The -p flag was removed from cp since it's not there on other platforms nor the old build.

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

/Erik

Reply via email to