[OpenJDK 2D-Dev] jdk-hs ppc64le build error, probably related to libpng update

Phil Race philip.race at oracle.com
Fri Dec 22 18:07:52 UTC 2017


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.race at oracle.com) <philip.race at oracle.com>
> *Cc:* Doerr, Martin <martin.doerr at sap.com>; Simonis, Volker 
> <volker.simonis at sap.com>; 2d-dev at 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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20171222/5ee5e124/attachment-0001.html>


More information about the 2d-dev mailing list