[Buildroot] [PATCH 3/5] package/libraw: rename internal powf64

Romain Naour romain.naour at gmail.com
Mon Feb 5 20:57:14 UTC 2018


Starting with Glibc 2.27, powf64() is provided by the C library
and colide with the one defined dy libraw.

Rename internal powf64 to libraw_powf64.

Signed-off-by: Romain Naour <romain.naour at gmail.com>
---
 ...ernal-dcraw_common-rename-internal-powf64.patch | 348 +++++++++++++++++++++
 1 file changed, 348 insertions(+)
 create mode 100644 package/libraw/0003-internal-dcraw_common-rename-internal-powf64.patch

diff --git a/package/libraw/0003-internal-dcraw_common-rename-internal-powf64.patch b/package/libraw/0003-internal-dcraw_common-rename-internal-powf64.patch
new file mode 100644
index 0000000000..ef3b81aa24
--- /dev/null
+++ b/package/libraw/0003-internal-dcraw_common-rename-internal-powf64.patch
@@ -0,0 +1,348 @@
+From 045c57d9d030075575409cf50cd7f6ee635df5c0 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at gmail.com>
+Date: Mon, 5 Feb 2018 16:22:39 +0100
+Subject: [PATCH] internal/dcraw_common: rename internal powf64()
+
+Starting with Glibc 2.27, powf64() is provided by the C library
+and colide with the one defined dy libraw.
+
+Rename internal powf64 to libraw_powf64.
+
+Signed-off-by: Romain Naour <romain.naour at gmail.com>
+---
+ internal/dcraw_common.cpp | 98 +++++++++++++++++++++++------------------------
+ 1 file changed, 49 insertions(+), 49 deletions(-)
+
+diff --git a/internal/dcraw_common.cpp b/internal/dcraw_common.cpp
+index 0c7c07a..cf26865 100644
+--- a/internal/dcraw_common.cpp
++++ b/internal/dcraw_common.cpp
+@@ -5537,7 +5537,7 @@ static float powf_lim(float a, float b, float limup)
+ {
+   return (b>limup || b < -limup)?0.f:powf(a,b);
+ }
+-static float powf64(float a, float b)
++static float libraw_powf64(float a, float b)
+ {
+   return powf_lim(a,b,64.f);
+ }
+@@ -5561,7 +5561,7 @@ static float my_roundf(float x) {
+ static float _CanonConvertAperture(ushort in)
+ {
+   if ((in == (ushort)0xffe0) || (in == (ushort)0x7fff)) return 0.0f;
+-  return powf64(2.0, in/64.0);
++  return libraw_powf64(2.0, in/64.0);
+ }
+ 
+ void CLASS setCanonBodyFeatures (unsigned id)
+@@ -5902,21 +5902,21 @@ void CLASS processNikonLensData (uchar *LensData, unsigned len)
+     if (fabsf(imgdata.lens.makernotes.MinFocal) < 1.1f)
+     {
+       if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 2])
+-        imgdata.lens.makernotes.MinFocal = 5.0f * powf64(2.0f, (float)LensData[i + 2] / 24.0f);
++        imgdata.lens.makernotes.MinFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 2] / 24.0f);
+       if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 3])
+-        imgdata.lens.makernotes.MaxFocal = 5.0f * powf64(2.0f, (float)LensData[i + 3] / 24.0f);
++        imgdata.lens.makernotes.MaxFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i + 3] / 24.0f);
+       if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 4])
+-        imgdata.lens.makernotes.MaxAp4MinFocal = powf64(2.0f, (float)LensData[i + 4] / 24.0f);
++        imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(2.0f, (float)LensData[i + 4] / 24.0f);
+       if ((imgdata.lens.nikon.NikonLensType ^ (uchar)0x01) || LensData[i + 5])
+-        imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(2.0f, (float)LensData[i + 5] / 24.0f);
++        imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(2.0f, (float)LensData[i + 5] / 24.0f);
+     }
+     imgdata.lens.nikon.NikonMCUVersion = LensData[i + 6];
+     if (i != 2)
+       {
+         if ((LensData[i - 1]) &&
+             (fabsf(imgdata.lens.makernotes.CurFocal) < 1.1f))
+-          imgdata.lens.makernotes.CurFocal = 5.0f * powf64(2.0f, (float)LensData[i - 1] / 24.0f);
+-        if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = powf64(2.0f, (float)LensData[i + 7] / 24.0f);
++          imgdata.lens.makernotes.CurFocal = 5.0f * libraw_powf64(2.0f, (float)LensData[i - 1] / 24.0f);
++        if (LensData[i + 7]) imgdata.lens.nikon.NikonEffectiveMaxAp = libraw_powf64(2.0f, (float)LensData[i + 7] / 24.0f);
+       }
+     imgdata.lens.makernotes.LensID =
+       (unsigned long long) LensData[i] << 56 |
+@@ -6088,13 +6088,13 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len)	// tag 0x0207
+ 		if (table_buf[iLensData+9] &&
+ 			(fabs(imgdata.lens.makernotes.CurFocal) < 0.1f))
+ 		  imgdata.lens.makernotes.CurFocal =
+-			10*(table_buf[iLensData+9]>>2) * powf64(4, (table_buf[iLensData+9] & 0x03)-2);
++			10*(table_buf[iLensData+9]>>2) * libraw_powf64(4, (table_buf[iLensData+9] & 0x03)-2);
+ 		if (table_buf[iLensData+10] & 0xf0)
+ 		  imgdata.lens.makernotes.MaxAp4CurFocal =
+-			powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f);
++			libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0xf0) >>4)/4.0f);
+ 		if (table_buf[iLensData+10] & 0x0f)
+ 		  imgdata.lens.makernotes.MinAp4CurFocal =
+-			powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f);
++			libraw_powf64(2.0f, (float)((table_buf[iLensData+10] & 0x0f) + 10)/4.0f);
+ 
+ 		if (iLensData != 12)
+ 		  {
+@@ -6111,14 +6111,14 @@ void CLASS PentaxLensInfo (unsigned id, unsigned len)	// tag 0x0207
+ 			if ((table_buf[iLensData+14] > 1) &&
+ 				(fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f))
+ 			  imgdata.lens.makernotes.MaxAp4CurFocal =
+-				powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f);
++				libraw_powf64(2.0f, (float)((table_buf[iLensData+14] & 0x7f) -1)/32.0f);
+ 		  }
+ 		else if ((id != 0x12e76) &&	// K-5
+ 				 (table_buf[iLensData+15] > 1) &&
+ 				 (fabs(imgdata.lens.makernotes.MaxAp4CurFocal) < 0.7f))
+ 		  {
+ 			imgdata.lens.makernotes.MaxAp4CurFocal =
+-			  powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f);
++			  libraw_powf64(2.0f, (float)((table_buf[iLensData+15] & 0x7f) -1)/32.0f);
+ 		  }
+ 	  }
+ 	free(table_buf);
+@@ -6525,11 +6525,11 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id)
+     {
+       if (buf[0])
+         imgdata.lens.makernotes.MaxAp4CurFocal =
+-          my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
++          my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[0]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
+ 
+       if (buf[1])
+         imgdata.lens.makernotes.MinAp4CurFocal =
+-          my_roundf(powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
++          my_roundf(libraw_powf64(2.0f, ((float)SonySubstitution[buf[1]] / 8.0 - 1.06f) / 2.0f)*10.0f) / 10.0f;
+     }
+ 
+   if (imgdata.lens.makernotes.CameraMount != LIBRAW_MOUNT_FixedLens)
+@@ -6539,7 +6539,7 @@ void CLASS process_Sony_0x9050 (uchar * buf, unsigned id)
+           lid = SonySubstitution[buf[0x3d]] << 8 |
+             SonySubstitution[buf[0x3c]];
+           imgdata.lens.makernotes.CurAp =
+-            powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f);
++            libraw_powf64(2.0f, ((float)lid/256.0f - 16.0f) / 2.0f);
+         }
+       if (buf[0x105] && (imgdata.lens.makernotes.LensMount != LIBRAW_MOUNT_Canon_EF))
+         imgdata.lens.makernotes.LensMount =
+@@ -6924,7 +6924,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
+           {
+             unsigned char cc;
+             fread(&cc, 1, 1, ifp);
+-            iso_speed = (int)(100.0 * powf64(2.0, (double)(cc) / 12.0 - 5.0));
++            iso_speed = (int)(100.0 * libraw_powf64(2.0, (double)(cc) / 12.0 - 5.0));
+             break;
+           }
+       }
+@@ -6957,7 +6957,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
+           }
+           break;
+         case 0x1002:
+-          imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2);
++          imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2);
+           break;
+         case 0x20100201:
+           imgdata.lens.makernotes.LensID =
+@@ -6977,10 +6977,10 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
+           fread(imgdata.lens.makernotes.Lens, MIN(len,127), 1, ifp);
+           break;
+         case 0x20100205:
+-          imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100206:
+-          imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100207:
+           imgdata.lens.makernotes.MinFocal = (float)get2();
+@@ -6991,7 +6991,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
+             imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal;
+           break;
+         case 0x2010020a:
+-          imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100301:
+           imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8;
+@@ -7195,7 +7195,7 @@ void CLASS parse_makernote_0xc634(int base, int uptag, unsigned dng_writer)
+                   lid = (((ushort)table_buf[2])<<8) |
+                     ((ushort)table_buf[3]);
+                   imgdata.lens.makernotes.CurAp =
+-                    powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
++                    libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
+                 }
+               break;
+             case 1536:
+@@ -7669,7 +7669,7 @@ void CLASS parse_makernote (int base, int uptag)
+           }
+           break;
+         case 0x1002:
+-          imgdata.lens.makernotes.CurAp = powf64(2.0f, getreal(type)/2);
++          imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, getreal(type)/2);
+           break;
+         case 0x20100201:
+           {
+@@ -7694,10 +7694,10 @@ void CLASS parse_makernote (int base, int uptag)
+           fread(imgdata.lens.makernotes.Lens, MIN(len,127), 1, ifp);
+           break;
+         case 0x20100205:
+-          imgdata.lens.makernotes.MaxAp4MinFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4MinFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100206:
+-          imgdata.lens.makernotes.MaxAp4MaxFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4MaxFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100207:
+           imgdata.lens.makernotes.MinFocal = (float)get2();
+@@ -7708,7 +7708,7 @@ void CLASS parse_makernote (int base, int uptag)
+             imgdata.lens.makernotes.MaxFocal = imgdata.lens.makernotes.MinFocal;
+           break;
+         case 0x2010020a:
+-          imgdata.lens.makernotes.MaxAp4CurFocal = powf64(sqrt(2.0f), get2() / 256.0f);
++          imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(sqrt(2.0f), get2() / 256.0f);
+           break;
+         case 0x20100301:
+           imgdata.lens.makernotes.TeleconverterID = fgetc(ifp) << 8;
+@@ -7977,7 +7977,7 @@ void CLASS parse_makernote (int base, int uptag)
+                   lid = (((ushort)table_buf[2])<<8) |
+                     ((ushort)table_buf[3]);
+                   imgdata.lens.makernotes.CurAp =
+-                    powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
++                    libraw_powf64(2.0f, ((float)lid/8.0f-1.0f)/2.0f);
+                 }
+               break;
+             case 1536:
+@@ -8064,19 +8064,19 @@ void CLASS parse_makernote (int base, int uptag)
+       {
+         unsigned char cc;
+         fread(&cc,1,1,ifp);
+-        iso_speed = int(100.0 * powf64(2.0f,float(cc)/12.0-5.0));
++        iso_speed = int(100.0 * libraw_powf64(2.0f,float(cc)/12.0-5.0));
+       }
+     if (tag == 4 && len > 26 && len < 35) {
+       if ((i=(get4(),get2())) != 0x7fff && (!iso_speed || iso_speed == 65535))
+-	iso_speed = 50 * powf64(2.0, i/32.0 - 4);
++	iso_speed = 50 * libraw_powf64(2.0, i/32.0 - 4);
+ #ifdef LIBRAW_LIBRARY_BUILD
+       get4();
+ #else
+       if ((i=(get2(),get2())) != 0x7fff && !aperture)
+-	aperture = powf64(2.0, i/64.0);
++	aperture = libraw_powf64(2.0, i/64.0);
+ #endif
+       if ((i=get2()) != 0xffff && !shutter)
+-	shutter = powf64(2.0, (short) i/-32.0);
++	shutter = libraw_powf64(2.0, (short) i/-32.0);
+       wbi = (get2(),get2());
+       shot_order = (get2(),get2());
+     }
+@@ -8579,7 +8579,7 @@ void CLASS parse_exif (int base)
+         imgdata.lens.Lens[0] = 0;
+       break;
+     case 0x9205:
+-      imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f));
++      imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f));
+       break;
+ #endif
+       case 33434:  shutter = getreal(type);		break;
+@@ -8592,10 +8592,10 @@ void CLASS parse_exif (int base)
+       case 36867:
+       case 36868:  get_timestamp(0);			break;
+       case 37377:  if ((expo = -getreal(type)) < 128 && shutter == 0.)
+-          shutter = powf64(2.0, expo);		break;
++          shutter = libraw_powf64(2.0, expo);		break;
+       case 37378:                                       // 0x9202 ApertureValue
+         if ((fabs(ape = getreal(type))<256.0) && (!aperture))
+-          aperture = powf64(2.0, ape/2);
++          aperture = libraw_powf64(2.0, ape/2);
+         break;
+       case 37385:  flash_used = getreal(type);          break;
+       case 37386:  focal_len = getreal(type);		break;
+@@ -9196,7 +9196,7 @@ int CLASS parse_tiff_ifd (int base)
+         imgdata.lens.Lens[0] = 0;
+       break;
+     case 0x9205:
+-				imgdata.lens.EXIF_MaxAp = powf64(2.0f, (getreal(type) / 2.0f));
++				imgdata.lens.EXIF_MaxAp = libraw_powf64(2.0f, (getreal(type) / 2.0f));
+       break;
+ // IB end
+ #endif
+@@ -9970,22 +9970,22 @@ void CLASS parse_ciff (int offset, int length, int depth)
+       thumb_length = len;
+     }
+     if (type == 0x1818) {
+-      shutter = powf64(2.0f, -int_to_float((get4(),get4())));
+-      aperture = powf64(2.0f, int_to_float(get4())/2);
++      shutter = libraw_powf64(2.0f, -int_to_float((get4(),get4())));
++      aperture = libraw_powf64(2.0f, int_to_float(get4())/2);
+ #ifdef LIBRAW_LIBRARY_BUILD
+ 			imgdata.lens.makernotes.CurAp = aperture;
+ #endif
+     }
+     if (type == 0x102a) {
+ 			//      iso_speed = pow (2.0, (get4(),get2())/32.0 - 4) * 50;
+-      iso_speed = powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f;
++      iso_speed = libraw_powf64(2.0f, ((get2(),get2()) + get2())/32.0f - 5.0f) * 100.0f;
+ #ifdef LIBRAW_LIBRARY_BUILD
+       aperture  = _CanonConvertAperture((get2(),get2()));
+       imgdata.lens.makernotes.CurAp = aperture;
+ #else
+-      aperture  = powf64(2.0, (get2(),(short)get2())/64.0);
++      aperture  = libraw_powf64(2.0, (get2(),(short)get2())/64.0);
+ #endif
+-      shutter   = powf64(2.0,-((short)get2())/32.0);
++      shutter   = libraw_powf64(2.0,-((short)get2())/32.0);
+       wbi = (get2(),get2());
+       if (wbi > 17) wbi = 0;
+       fseek (ifp, 32, SEEK_CUR);
+@@ -10189,8 +10189,8 @@ void CLASS parse_phase_one (int base)
+       setPhaseOneFeatures(unique_id);
+       break;
+     case 0x0401:
+-      if (type == 4) imgdata.lens.makernotes.CurAp =  powf64(2.0f, (int_to_float(data)/2.0f));
+-      else imgdata.lens.makernotes.CurAp = powf64(2.0f, (getreal(type)/2.0f));
++      if (type == 4) imgdata.lens.makernotes.CurAp =  libraw_powf64(2.0f, (int_to_float(data)/2.0f));
++      else imgdata.lens.makernotes.CurAp = libraw_powf64(2.0f, (getreal(type)/2.0f));
+       break;
+     case 0x0403:
+       if (type == 4) imgdata.lens.makernotes.CurFocal =  int_to_float(data);
+@@ -10204,16 +10204,16 @@ void CLASS parse_phase_one (int base)
+       break;
+     case 0x0414:
+       if (type == 4) {
+-      	imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f));
++      	imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f));
+       } else {
+-        imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f));
++        imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f));
+       }
+       break;
+     case 0x0415:
+       if (type == 4) {
+-      	imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (int_to_float(data)/2.0f));
++      	imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (int_to_float(data)/2.0f));
+       } else {
+-        imgdata.lens.makernotes.MinAp4CurFocal = powf64(2.0f, (getreal(type) / 2.0f));
++        imgdata.lens.makernotes.MinAp4CurFocal = libraw_powf64(2.0f, (getreal(type) / 2.0f));
+       }
+       break;
+     case 0x0416:
+@@ -12119,15 +12119,15 @@ void CLASS identify()
+       case 18: iso_speed = 320; break;
+       case 19: iso_speed = 400; break;
+     }
+-    shutter = powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f;
++    shutter = libraw_powf64(2.0f, (((float)get4())/8.0f)) / 16000.0f;
+     FORC4 cam_mul[c ^ (c >> 1)] = get4();
+     fseek (ifp, 88, SEEK_SET);
+-    aperture = powf64(2.0f, ((float)get4())/16.0f);
++    aperture = libraw_powf64(2.0f, ((float)get4())/16.0f);
+     fseek (ifp, 112, SEEK_SET);
+     focal_len = get4();
+ #ifdef LIBRAW_LIBRARY_BUILD
+     fseek (ifp, 104, SEEK_SET);
+-    imgdata.lens.makernotes.MaxAp4CurFocal = powf64(2.0f, ((float)get4())/16.0f);
++    imgdata.lens.makernotes.MaxAp4CurFocal = libraw_powf64(2.0f, ((float)get4())/16.0f);
+     fseek (ifp, 124, SEEK_SET);
+     fread(imgdata.lens.makernotes.Lens, 32, 1, ifp);
+     imgdata.lens.makernotes.CameraMount = LIBRAW_MOUNT_Contax_N;
+-- 
+2.14.3
+
-- 
2.14.3



More information about the buildroot mailing list