Hello Volker,

I very much doubt that JDK-8044480 had anything to do with this. It only touched Bundles.gmk which is only used on Macosx. There was a change recently to how freetype is copied: https://bugs.openjdk.java.net/browse/JDK-8058756

The bug wanted to fix the lack of an "$(MKDIR) -p $(@D)" line in the recipe. I recommended replacing the copy with an $(install-file) instead. It seems that wasn't a good idea in this case as install-file is set to preserve symlinks. To fix your problem, simply replace $(install-file) with mkdir and explicit cp, with follow symlinks, and a comment describing why install-file can't be used.

/Erik


On 2014-10-27 17:08, Volker Simonis wrote:
Hi,

your change for "JDK-8044480: JDK image target overwrites
lib/server/libjsig.dylib symlink with a copy of lib/libjsig.dylib"
breaks our OpenJDK builds on Solaris. The problem is that because on
Solaris "freetype" isn't installed by default on every machine we have
manually build a version of freetype for Solaris into a shared
directory and use that one for our builds.

The lib-directory of a vanilly freetype build looks as follows (which
is not unusual):

$ ls -la freetype/lib/
total 1536
drwxr-xr-x   2 d046063  cproj       4096 Apr 26  2013 .
drwxr-xr-x   4 d046063  cproj       4096 Apr 26  2013 ..
lrwxrwxrwx   1 d046063  cproj         20 Apr 26  2013 libfreetype.so
-> libfreetype.so.6.8.0
lrwxrwxrwx   1 d046063  cproj         20 Apr 26  2013 libfreetype.so.6
-> libfreetype.so.6.8.0
-rwxr-xr-x   1 d046063  cproj     773448 Apr 26  2013 libfreetype.so.6.8.0

When using "--with-freetype" this will automatically enable
"freetype-bundling" and this in turn will require to copy the freetype
libraries into the image during the build. Unfortunately, after change
JDK-8044480, this will now only copy the corresponding symlink which
meaningless in the jdk-directory and leads to a subsequent build error
later on:

gmake[3]: *** No rule to make target
`/net/usr.work/openjdk/nb/sun_64/nightly/output-jdk9/jdk/lib/sparcv9/libfreetype.so.6',
needed by 
`/net/usr.work/openjdk/nb/sun_64/nightly/output-jdk9/images/j2re-image/lib/sparcv9/libfreetype.so.6'.
Stop.

The same problem may also apply to other bundled libraries like zlib,
png, jpeg, etc..

Do you have any idea how we could solve this problem? Or the other way
round - do you see a possibility how to fix "JDK-8044480: JDK image
target overwrites lib/server/libjsig.dylib symlink with a copy of
lib/libjsig.dylib" without affecting the bundling of third part
libraries?

Thank you and best regards,
Volker

Reply via email to