Accepting request 397758 from home:1Antoine1:branches:graphics
- Fix build with GCC 6: * Add libraw-0.17.1-gcc6-compatibility.patch (See openSUSE:Factory:Staging:A:DVD/libraw) OBS-URL: https://build.opensuse.org/request/show/397758 OBS-URL: https://build.opensuse.org/package/show/graphics/libraw?expand=0&rev=80
This commit is contained in:
parent
67c228ae4c
commit
060797b031
191
libraw-0.17.1-gcc6-compatibility.patch
Normal file
191
libraw-0.17.1-gcc6-compatibility.patch
Normal file
@ -0,0 +1,191 @@
|
||||
From eba7a66e23f2f62cc4c8115af8066f2df5da085a Mon Sep 17 00:00:00 2001
|
||||
From: Alex Tutubalin <lexa@lexa.ru>
|
||||
Date: Sun, 20 Mar 2016 16:32:58 +0300
|
||||
Subject: [PATCH] gcc6 compatibility
|
||||
|
||||
---
|
||||
dcraw/dcraw.c | 67 ++++++++++++++++++++++++++---------------------
|
||||
internal/dcraw_common.cpp | 67 ++++++++++++++++++++++++++---------------------
|
||||
libraw/libraw_const.h | 3 +--
|
||||
3 files changed, 75 insertions(+), 62 deletions(-)
|
||||
|
||||
diff --git a/dcraw/dcraw.c b/dcraw/dcraw.c
|
||||
index 3667404..39edcaa 100755
|
||||
--- a/dcraw/dcraw.c
|
||||
+++ b/dcraw/dcraw.c
|
||||
@@ -5788,30 +5788,37 @@ void CLASS lin_interpolate()
|
||||
*/
|
||||
void CLASS vng_interpolate()
|
||||
{
|
||||
- static const signed char *cp, terms[] = {
|
||||
- -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
|
||||
- -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
|
||||
- -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
|
||||
- -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
|
||||
- -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
|
||||
- -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
|
||||
- -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
|
||||
- -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
|
||||
- -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
|
||||
- -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
|
||||
- -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
|
||||
- -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
|
||||
- -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
|
||||
- +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
|
||||
- +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
|
||||
- +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
|
||||
- +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
|
||||
- +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
|
||||
- +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
|
||||
- +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
|
||||
- +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
|
||||
- +1,+0,+2,+1,0,0x10
|
||||
- }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
|
||||
+ struct interpolate_terms {
|
||||
+ signed char y1, x1, y2, x2, weight;
|
||||
+ unsigned char grads;
|
||||
+ };
|
||||
+ static const interpolate_terms terms[] = {
|
||||
+ {-2,-2,+0,-1,0,0x01}, {-2,-2,+0,+0,1,0x01}, {-2,-1,-1,+0,0,0x01},
|
||||
+ {-2,-1,+0,-1,0,0x02}, {-2,-1,+0,+0,0,0x03}, {-2,-1,+0,+1,1,0x01},
|
||||
+ {-2,+0,+0,-1,0,0x06}, {-2,+0,+0,+0,1,0x02}, {-2,+0,+0,+1,0,0x03},
|
||||
+ {-2,+1,-1,+0,0,0x04}, {-2,+1,+0,-1,1,0x04}, {-2,+1,+0,+0,0,0x06},
|
||||
+ {-2,+1,+0,+1,0,0x02}, {-2,+2,+0,+0,1,0x04}, {-2,+2,+0,+1,0,0x04},
|
||||
+ {-1,-2,-1,+0,0,0x80}, {-1,-2,+0,-1,0,0x01}, {-1,-2,+1,-1,0,0x01},
|
||||
+ {-1,-2,+1,+0,1,0x01}, {-1,-1,-1,+1,0,0x88}, {-1,-1,+1,-2,0,0x40},
|
||||
+ {-1,-1,+1,-1,0,0x22}, {-1,-1,+1,+0,0,0x33}, {-1,-1,+1,+1,1,0x11},
|
||||
+ {-1,+0,-1,+2,0,0x08}, {-1,+0,+0,-1,0,0x44}, {-1,+0,+0,+1,0,0x11},
|
||||
+ {-1,+0,+1,-2,1,0x40}, {-1,+0,+1,-1,0,0x66}, {-1,+0,+1,+0,1,0x22},
|
||||
+ {-1,+0,+1,+1,0,0x33}, {-1,+0,+1,+2,1,0x10}, {-1,+1,+1,-1,1,0x44},
|
||||
+ {-1,+1,+1,+0,0,0x66}, {-1,+1,+1,+1,0,0x22}, {-1,+1,+1,+2,0,0x10},
|
||||
+ {-1,+2,+0,+1,0,0x04}, {-1,+2,+1,+0,1,0x04}, {-1,+2,+1,+1,0,0x04},
|
||||
+ {+0,-2,+0,+0,1,0x80}, {+0,-1,+0,+1,1,0x88}, {+0,-1,+1,-2,0,0x40},
|
||||
+ {+0,-1,+1,+0,0,0x11}, {+0,-1,+2,-2,0,0x40}, {+0,-1,+2,-1,0,0x20},
|
||||
+ {+0,-1,+2,+0,0,0x30}, {+0,-1,+2,+1,1,0x10}, {+0,+0,+0,+2,1,0x08},
|
||||
+ {+0,+0,+2,-2,1,0x40}, {+0,+0,+2,-1,0,0x60}, {+0,+0,+2,+0,1,0x20},
|
||||
+ {+0,+0,+2,+1,0,0x30}, {+0,+0,+2,+2,1,0x10}, {+0,+1,+1,+0,0,0x44},
|
||||
+ {+0,+1,+1,+2,0,0x10}, {+0,+1,+2,-1,1,0x40}, {+0,+1,+2,+0,0,0x60},
|
||||
+ {+0,+1,+2,+1,0,0x20}, {+0,+1,+2,+2,0,0x10}, {+1,-2,+1,+0,0,0x80},
|
||||
+ {+1,-1,+1,+1,0,0x88}, {+1,+0,+1,+2,0,0x08}, {+1,+0,+2,-1,0,0x40},
|
||||
+ {+1,+0,+2,+1,0,0x10}
|
||||
+ };
|
||||
+ const interpolate_terms *cpt;
|
||||
+ signed char *cp;
|
||||
+ signed char chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
|
||||
ushort (*brow[5])[4], *pix;
|
||||
int prow=8, pcol=2, *ip, *code[16][16], gval[8], gmin, gmax, sum[4];
|
||||
int row, col, x, y, x1, x2, y1, y2, t, weight, grads, color, diag;
|
||||
@@ -5829,11 +5836,11 @@ void CLASS vng_interpolate()
|
||||
for (row=0; row < prow; row++) /* Precalculate for VNG */
|
||||
for (col=0; col < pcol; col++) {
|
||||
code[row][col] = ip;
|
||||
- for (cp=terms, t=0; t < 64; t++) {
|
||||
- y1 = *cp++; x1 = *cp++;
|
||||
- y2 = *cp++; x2 = *cp++;
|
||||
- weight = *cp++;
|
||||
- grads = *cp++;
|
||||
+ for (cpt=&terms[0], t=0; t < 64, cpt = &terms[t]; t++) {
|
||||
+ y1 = cpt->y1; x1 = cpt->x1;
|
||||
+ y2 = cpt->y2; x2 = cpt->x2;
|
||||
+ weight = cpt->weight;
|
||||
+ grads = cpt->grads;
|
||||
color = fcol(row+y1,col+x1);
|
||||
if (fcol(row+y2,col+x2) != color) continue;
|
||||
diag = (fcol(row,col+1) == color && fcol(row+1,col) == color) ? 2:1;
|
||||
diff --git a/internal/dcraw_common.cpp b/internal/dcraw_common.cpp
|
||||
index 56f3624..85ef98b 100644
|
||||
--- a/internal/dcraw_common.cpp
|
||||
+++ b/internal/dcraw_common.cpp
|
||||
@@ -4618,30 +4618,37 @@ void CLASS lin_interpolate()
|
||||
*/
|
||||
void CLASS vng_interpolate()
|
||||
{
|
||||
- static const signed char *cp, terms[] = {
|
||||
- -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
|
||||
- -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
|
||||
- -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
|
||||
- -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
|
||||
- -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
|
||||
- -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
|
||||
- -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
|
||||
- -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
|
||||
- -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
|
||||
- -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
|
||||
- -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
|
||||
- -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
|
||||
- -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
|
||||
- +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
|
||||
- +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
|
||||
- +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
|
||||
- +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
|
||||
- +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
|
||||
- +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
|
||||
- +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
|
||||
- +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
|
||||
- +1,+0,+2,+1,0,0x10
|
||||
- }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
|
||||
+ struct interpolate_terms {
|
||||
+ signed char y1, x1, y2, x2, weight;
|
||||
+ unsigned char grads;
|
||||
+ };
|
||||
+ static const interpolate_terms terms[] = {
|
||||
+ {-2,-2,+0,-1,0,0x01}, {-2,-2,+0,+0,1,0x01}, {-2,-1,-1,+0,0,0x01},
|
||||
+ {-2,-1,+0,-1,0,0x02}, {-2,-1,+0,+0,0,0x03}, {-2,-1,+0,+1,1,0x01},
|
||||
+ {-2,+0,+0,-1,0,0x06}, {-2,+0,+0,+0,1,0x02}, {-2,+0,+0,+1,0,0x03},
|
||||
+ {-2,+1,-1,+0,0,0x04}, {-2,+1,+0,-1,1,0x04}, {-2,+1,+0,+0,0,0x06},
|
||||
+ {-2,+1,+0,+1,0,0x02}, {-2,+2,+0,+0,1,0x04}, {-2,+2,+0,+1,0,0x04},
|
||||
+ {-1,-2,-1,+0,0,0x80}, {-1,-2,+0,-1,0,0x01}, {-1,-2,+1,-1,0,0x01},
|
||||
+ {-1,-2,+1,+0,1,0x01}, {-1,-1,-1,+1,0,0x88}, {-1,-1,+1,-2,0,0x40},
|
||||
+ {-1,-1,+1,-1,0,0x22}, {-1,-1,+1,+0,0,0x33}, {-1,-1,+1,+1,1,0x11},
|
||||
+ {-1,+0,-1,+2,0,0x08}, {-1,+0,+0,-1,0,0x44}, {-1,+0,+0,+1,0,0x11},
|
||||
+ {-1,+0,+1,-2,1,0x40}, {-1,+0,+1,-1,0,0x66}, {-1,+0,+1,+0,1,0x22},
|
||||
+ {-1,+0,+1,+1,0,0x33}, {-1,+0,+1,+2,1,0x10}, {-1,+1,+1,-1,1,0x44},
|
||||
+ {-1,+1,+1,+0,0,0x66}, {-1,+1,+1,+1,0,0x22}, {-1,+1,+1,+2,0,0x10},
|
||||
+ {-1,+2,+0,+1,0,0x04}, {-1,+2,+1,+0,1,0x04}, {-1,+2,+1,+1,0,0x04},
|
||||
+ {+0,-2,+0,+0,1,0x80}, {+0,-1,+0,+1,1,0x88}, {+0,-1,+1,-2,0,0x40},
|
||||
+ {+0,-1,+1,+0,0,0x11}, {+0,-1,+2,-2,0,0x40}, {+0,-1,+2,-1,0,0x20},
|
||||
+ {+0,-1,+2,+0,0,0x30}, {+0,-1,+2,+1,1,0x10}, {+0,+0,+0,+2,1,0x08},
|
||||
+ {+0,+0,+2,-2,1,0x40}, {+0,+0,+2,-1,0,0x60}, {+0,+0,+2,+0,1,0x20},
|
||||
+ {+0,+0,+2,+1,0,0x30}, {+0,+0,+2,+2,1,0x10}, {+0,+1,+1,+0,0,0x44},
|
||||
+ {+0,+1,+1,+2,0,0x10}, {+0,+1,+2,-1,1,0x40}, {+0,+1,+2,+0,0,0x60},
|
||||
+ {+0,+1,+2,+1,0,0x20}, {+0,+1,+2,+2,0,0x10}, {+1,-2,+1,+0,0,0x80},
|
||||
+ {+1,-1,+1,+1,0,0x88}, {+1,+0,+1,+2,0,0x08}, {+1,+0,+2,-1,0,0x40},
|
||||
+ {+1,+0,+2,+1,0,0x10}
|
||||
+ };
|
||||
+ const interpolate_terms *cpt;
|
||||
+ signed char *cp;
|
||||
+ signed char chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
|
||||
ushort (*brow[5])[4], *pix;
|
||||
int prow=8, pcol=2, *ip, *code[16][16], gval[8], gmin, gmax, sum[4];
|
||||
int row, col, x, y, x1, x2, y1, y2, t, weight, grads, color, diag;
|
||||
@@ -4659,11 +4666,11 @@ void CLASS vng_interpolate()
|
||||
for (row=0; row < prow; row++) /* Precalculate for VNG */
|
||||
for (col=0; col < pcol; col++) {
|
||||
code[row][col] = ip;
|
||||
- for (cp=terms, t=0; t < 64; t++) {
|
||||
- y1 = *cp++; x1 = *cp++;
|
||||
- y2 = *cp++; x2 = *cp++;
|
||||
- weight = *cp++;
|
||||
- grads = *cp++;
|
||||
+ for (cpt=&terms[0], t=0; t < 64, cpt = &terms[t]; t++) {
|
||||
+ y1 = cpt->y1; x1 = cpt->x1;
|
||||
+ y2 = cpt->y2; x2 = cpt->x2;
|
||||
+ weight = cpt->weight;
|
||||
+ grads = cpt->grads;
|
||||
color = fcol(row+y1,col+x1);
|
||||
if (fcol(row+y2,col+x2) != color) continue;
|
||||
diag = (fcol(row,col+1) == color && fcol(row+1,col) == color) ? 2:1;
|
||||
diff --git a/libraw/libraw_const.h b/libraw/libraw_const.h
|
||||
index dd716b1..20e043f 100644
|
||||
--- a/libraw/libraw_const.h
|
||||
+++ b/libraw/libraw_const.h
|
||||
@@ -255,8 +255,7 @@ enum LibRaw_progress
|
||||
|
||||
LIBRAW_PROGRESS_THUMB_LOAD = 1<<28,
|
||||
LIBRAW_PROGRESS_TRESERVED1 = 1<<29,
|
||||
- LIBRAW_PROGRESS_TRESERVED2 = 1<<30,
|
||||
- LIBRAW_PROGRESS_TRESERVED3 = 1<<31
|
||||
+ LIBRAW_PROGRESS_TRESERVED2 = 1<<30
|
||||
};
|
||||
#define LIBRAW_PROGRESS_THUMB_MASK 0x0fffffff
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue May 24 16:21:17 UTC 2016 - antoine.belvire@laposte.net
|
||||
|
||||
- Fix build with GCC 6:
|
||||
* Add libraw-0.17.1-gcc6-compatibility.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 3 13:56:58 UTC 2015 - pgajdos@suse.com
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package libraw
|
||||
#
|
||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -29,6 +29,8 @@ Url: http://www.libraw.org/
|
||||
|
||||
#Git-Clone: git://github.com/LibRaw/LibRaw
|
||||
Source: http://www.libraw.org/data/%tar_name-%version.tar.gz
|
||||
# PATCH-FIX-UPSTREAM libraw-0.17.1-gcc6-compatibility.patch -- picked from upstream
|
||||
Patch: libraw-0.17.1-gcc6-compatibility.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libjasper-devel
|
||||
@ -95,6 +97,7 @@ against LibRaw. LibRaw does not provide dynamic libraries.
|
||||
|
||||
%prep
|
||||
%setup -qn %tar_name-%version
|
||||
%patch -p1
|
||||
|
||||
%build
|
||||
export CXXFLAGS="%optflags -fPIC"
|
||||
|
Loading…
Reference in New Issue
Block a user