I expect that will fix it but I wonder if the problem is that all of this needs
to be guarded by checking :-

#ifdef PNG_POWERPC_VSX_API_SUPPORTED

It looks to me configure would have set that if it had been run on PPC AND
you have passed --enable-powerpc-vsx to configure

But of course I did not.

And someone can set it unsupported anyway.

So this seems like a libpng bug.

Wrapping in that check might be OK (for PNG_POWERPC_VSX_API_SUPPORTED) but
you'll want to report this upstream.

I have no intention of pulling in the accelerated code .. even for intel ... this
library is used only for splashscreen.

-phil.



On 12/21/2017 07:13 AM, Baesken, Matthias wrote:

>Do you have a version of libpng available that contains the missing function png_init_filter_functions_vsx ?

>Or do you have an idea where it should come from (I cannot find it in the main libpng sources).

>To fix the build, we could probably disable the part bringing in png_init_filter_functions_vsx in png_init_filter_functions_vsx .

Hello, small update - here is a fix that disables the libpng vsx optimizations on ppc64 (and fixes the build issue).

Should I prepare a webrev ? Or how to get a ppc64 le / be png_init_filter_functions_vsx implementation ?

Best regards, Matthias

-----------------------

diff -r d55bee3727de src/java.desktop/share/native/libsplashscreen/libpng/pngpriv.h

--- a/src/java.desktop/share/native/libsplashscreen/libpng/pngpriv.h Tue Dec 19 17:31:53 2017 -0500

+++ b/src/java.desktop/share/native/libsplashscreen/libpng/pngpriv.h Wed Dec 20 17:16:01 2017 +0100

@@ -220,12 +220,15 @@

#  endif

#endif

+/* for now avoid the ppc64 vsx optimizations */

#ifndef PNG_POWERPC_VSX_OPT

-#  if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__)

-#     define PNG_POWERPC_VSX_OPT 2

-#  else

+/*

+ * #  if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__)

+ * #     define PNG_POWERPC_VSX_OPT 2

+ * #  else

+ */

#     define PNG_POWERPC_VSX_OPT 0

-#  endif

+/* #  endif */

#endif

 #ifndef PNG_INTEL_SSE_OPT

-----------------------

*From:*Baesken, Matthias
*Sent:* Mittwoch, 20. Dezember 2017 13:04
*To:* Phil Race (philip.r...@oracle.com) <philip.r...@oracle.com>
*Cc:* Doerr, Martin <martin.do...@sap.com>; Simonis, Volker <volker.simo...@sap.com>; 2d-dev@openjdk.java.net
*Subject:* jdk-hs ppc64le build error, probably related to libpng update

Hi Phil, it looks like  the recent  png lib change

8183960: Upgrade to libpng 1.6.34

http://hg.openjdk.java.net/jdk/hs/rev/791d551bcdb8

+#if PNG_POWERPC_VSX_OPT > 0

+#  define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx

+#  define PNG_POWERPC_VSX_IMPLEMENTATION 1

+#endif

Causes build errors in our linuxppc64le openjdk jdk-hs (fast)dbg build .

We get  this linker error :

pngrutil.c:(.text+0x4824): undefined reference to `png_init_filter_functions_vsx'

Do you have a version of libpng available that contains the missing function png_init_filter_functions_vsx ?

Or do you have an idea where it should come from (I cannot find it in the main libpng sources).

To fix the build, we could probably disable the part bringing in png_init_filter_functions_vsx in png_init_filter_functions_vsx .

Thanks, Matthias

Error message :

  * /hs/support/native/java.desktop/libsplashscreen/pngrutil.o: In
    function `png_read_filter_row':
  * pngrutil.c:(.text+0x4824): undefined reference to
    `png_init_filter_functions_vsx'
  * collect2: error: ld returned 1 exit status
  * Awt2dLibraries.gmk:928: recipe for target
    '/hs/support/modules_libs/java.desktop/libsplashscreen.so' failed


Reply via email to