The moving of most of these files will cause me some significant pain.
I am not convinced why its necessary. And if done wrong we lose the
history. Even if done *right* the history is harder to get at.
Plus the jigsaw people are very likely to move this code *again*.
I need to look at this more, but I have no time right now.
If we aren't using a system library I am not sure what purpose a little
stub will serve, so I need to think about that.
And this needs to be built and tested on all platforms to be approved.
And open & closed builds need to work. I'm not sure they will.
That suggests I'd need to run it through JPRT.

-phil.



On 02/28/2014 01:27 PM, Omair Majid wrote:
* Omair Majid <oma...@redhat.com> [2014-02-20 17:43]:
The following is a preliminary webrev that allows OpenJDK to build and
run against a system-installed copy of lcms2 rather than the copy
bundled with OpenJDK:

root: http://cr.openjdk.java.net/~omajid/webrevs/system-lcms/00/
jdk: http://cr.openjdk.java.net/~omajid/webrevs/system-lcms/00-jdk/

The goal is to add a new option `--with-lcms=` with possible values
`bundled` or `system`. Using `--with-lcms=system` builds using the
system-installed copy of lcms2 while `--with-lcms=bundled` builds with
the bundled copy of lcms2 in OpenJDK.

This patch is quite a bit more invasive than the libpng one [1]. There
are a few issues that came up:

1. The sources for the bundled library are contained next to
OpenJDK-specific sources. This is not true for the bundled copies of
zlib, libpng and giflib. On the other hand, the jpeg code in OpenJDK
also mixes OpenJDK-specific code with bundled libjpeg code.  To make it
easier to see (and compile) only non-lcms2 code, I moved the
lcms2-specific code into a separate directory. There are no code changes
there.

2. The library name. The current library name for the combined library
containing lcms and OpenJDK code (that goes under jre/lib/$(ARCH)/) is
currently `liblcms.so` (on my Linux platform). When linked against the
system library, this new `liblcms.so` links to the system-wide
`liblcms2.so`. This looks a little bizarre. I am also afraid of some
distribution packaging the upstream lcms2 as `liblcms.so` which would
cause a name conflict. Following the convention of `libj2gss.so`, I
renamed it to `libj2lcms.so`.

I made changes which made sense to me, but I am not sure how this fits
in with existing conventions. Perhaps people here have suggestions on
how to make this less invasive and still achieve the goal while keep
things separate and distinct?
Anyone else have any comments on this? I would like to hear from 2d
folks who would probably be the ones most impacted by this change. Is
the moving of lcms files around okay?

Thanks,
Omair


Reply via email to