native cmds and libs in the module library
Mandy Chung
mandy.chung at oracle.com
Tue Jan 17 23:03:16 PST 2012
On 1/17/2012 6:28 AM, Chris Hegarty wrote:
> Here is an updated webrev based on the comments and feedback I received
> on this.
>
> - An additional option is added for supporting config files
If a relative path is specified as an argument to --natlib, --natbin,
or --config option, what is it relative to and what gets recorded
in the module library header? I believe the implementation currently
uses cwd (i.e. the directory where jmod install is invoked) which
means that we can't simply copy the module library and the natlibs
to a different location to use?? See my comment for Modules.gmk.
> http://cr.openjdk.java.net/~chegar/jigsaw/libbin_webrev.03/webrev/
Modules.gmk
L141: --natlib $mlib/.. --natcmd $mlib/../../bin --config $$mlib/..
$mlib is an absolute path. Since these alt paths are recorded
in the module library header, if we zip up the jdk-module-image and
unzip it at a different location, these paths need fixup in order
to install new modules in it. It seems that we should keep
these paths relative to the system module library when creating
the jdk modules image.
Similarly, the realpath of the files are stored in "files"
which would need fixup too which is not ideal.
SimpleLibrary.java
L346-348: I wonder if it's cleaner to initialize these instance
variables to the default path, i.e. new File(root, "bin") if the
given argument is null so that the null check is not needed in
various place.
L301: I think this warning should be output in the Librarian
implementation rather than in the SimpleLibrary. Instead
it should throw an exception if the natlibs is not writeable
and when it writes a native library.
L1289: it's a good question when we should check the extension.
It depends if the specification requires the extension of a
module file be a specific value. I think we can leave as it
is and get back to it later.
ModuleFile.java
L199-201: may be cleaner if these variables are initialized
to the default path e.g. File(destination, "lib") and the
non-null check in the getDirOfSection method will not be needed.
L581-585: minor: since they are interested in 3 section types,
would it be better to handle each section type in this postExtract
method rather than checking the section type in both
markNativeCodeExecutable and trackFiles methods. Probably the
markNativeCodeExecutable method can be merged with this postExtract
method and remove L501-504 as well.
Librarian.java
L55, 151: this comment line can be removed.
hello-native.sh
It might be good to verify if the path of the native library
is expected.
> Issues I intend to address separately:
>
> - Separate out native libs and config files during the build, so they
> can be put into the right sections of the jmod file
> - Investigate the potential for global configuration files versus
> non-editable per-module config files.
That's fine with me.
Mandy
>
> Thanks,
> -Chris.
More information about the jigsaw-dev
mailing list