Hello community,

here is the log from the commit of package libimagequant for openSUSE:Factory 
checked in at 2019-05-25 13:15:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libimagequant (Old)
 and      /work/SRC/openSUSE:Factory/.libimagequant.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libimagequant"

Sat May 25 13:15:20 2019 rev:4 rq:704133 version:2.12.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libimagequant/libimagequant.changes      
2019-03-22 14:54:18.094062869 +0100
+++ /work/SRC/openSUSE:Factory/.libimagequant.new.5148/libimagequant.changes    
2019-05-25 13:15:22.448445003 +0200
@@ -1,0 +2,6 @@
+Tue May 14 08:55:03 UTC 2019 - Martin Liška <[email protected]>
+
+- Add gcc9-Update-const-var-openmp-const-var-handling.patch in order
+  to handle boo#1134979.
+
+-------------------------------------------------------------------

New:
----
  gcc9-Update-const-var-openmp-const-var-handling.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libimagequant.spec ++++++
--- /var/tmp/diff_new_pack.dzDBiq/_old  2019-05-25 13:15:24.236444338 +0200
+++ /var/tmp/diff_new_pack.dzDBiq/_new  2019-05-25 13:15:24.244444335 +0200
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -26,6 +26,7 @@
 Group:          Development/Languages/C and C++
 Url:            https://pngquant.org/lib/
 Source:         
https://github.com/ImageOptim/libimagequant/archive/%{version}/%{name}-%{version}.tar.gz
+Patch0:         gcc9-Update-const-var-openmp-const-var-handling.patch
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(lcms2)
 
@@ -52,6 +53,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 # This is not an autoconf configure, but the script simply ignores parameters 
it does not know

++++++ gcc9-Update-const-var-openmp-const-var-handling.patch ++++++
>From 62c4bf1dc8bda1e53fbb65e596a141c5a15a4f00 Mon Sep 17 00:00:00 2001
From: Nicholas Vinson <[email protected]>
Date: Sat, 4 May 2019 14:03:48 -0700
Subject: [PATCH] Update const-var openmp const-var handling

OpenMP 4.0 dropped the data-sharing rule that predetermined const-vars
as "shared".  GCC implemented this rule change with GCC-9.  Because of
the rule change, libimagequant fails to build with gcc-9.1.0.  This
patch updates the code so that it is conformant with OpenMP 4.0 rules.
---
 kmeans.c        | 5 +++++
 libimagequant.c | 5 +++++
 mediancut.c     | 5 +++++
 3 files changed, 15 insertions(+)

diff --git a/kmeans.c b/kmeans.c
index 7ee273d..c8630ae 100644
--- a/kmeans.c
+++ b/kmeans.c
@@ -73,8 +73,13 @@ LIQ_PRIVATE double kmeans_do_iteration(histogram *hist, 
colormap *const map, kme
     const int hist_size = hist->size;
 
     double total_diff=0;
+#if __GNUC__ >= 9
+    #pragma omp parallel for if (hist_size > 2000) \
+        schedule(static) default(none) 
shared(achv,average_color,callback,hist_size,map,n) reduction(+:total_diff)
+#else
     #pragma omp parallel for if (hist_size > 2000) \
         schedule(static) default(none) shared(average_color,callback) 
reduction(+:total_diff)
+#endif
     for(int j=0; j < hist_size; j++) {
         float diff;
         unsigned int match = nearest_search(n, &achv[j].acolor, 
achv[j].tmp.likely_colormap_index, &diff);
diff --git a/libimagequant.c b/libimagequant.c
index 3506564..114e5f1 100644
--- a/libimagequant.c
+++ b/libimagequant.c
@@ -1276,8 +1276,13 @@ LIQ_NONNULL static float remap_to_palette(liq_image 
*const input_image, unsigned
     LIQ_ARRAY(kmeans_state, average_color, (KMEANS_CACHE_LINE_GAP+map->colors) 
* max_threads);
     kmeans_init(map, max_threads, average_color);
 
+#if __GNUC__ >= 9
+    #pragma omp parallel for if (rows*cols > 3000) \
+        schedule(static) default(none) 
shared(acolormap,average_color,cols,input_image,map,n,output_pixels,rows,transparent_index)
 reduction(+:remapping_error)
+#else
     #pragma omp parallel for if (rows*cols > 3000) \
         schedule(static) default(none) shared(acolormap) shared(average_color) 
reduction(+:remapping_error)
+#endif
     for(int row = 0; row < rows; ++row) {
         const f_pixel *const row_pixels = liq_image_get_row_f(input_image, 
row);
         const f_pixel *const bg_pixels = input_image->background && 
acolormap[transparent_index].acolor.a < 1.f/256.f ? 
liq_image_get_row_f(input_image->background, row) : NULL;
diff --git a/mediancut.c b/mediancut.c
index 447a4af..4421cb4 100644
--- a/mediancut.c
+++ b/mediancut.c
@@ -195,8 +195,13 @@ static double prepare_sort(struct box *b, hist_item achv[])
 
     const unsigned int ind1 = b->ind;
     const unsigned int colors = b->colors;
+#if __GNUC__ >= 9
+    #pragma omp parallel for if (colors > 25000) \
+        schedule(static) default(none) shared(achv, channels, colors, ind1)
+#else
     #pragma omp parallel for if (colors > 25000) \
         schedule(static) default(none) shared(achv, channels)
+#endif
     for(unsigned int i=0; i < colors; i++) {
         const float *chans = (const float *)&achv[ind1 + i].acolor;
         // Only the first channel really matters. When trying median cut many 
times
-- 
2.21.0


Reply via email to