Opened 9 months ago

Closed 9 months ago

Last modified 9 months ago

#69232 closed defect (fixed)

freeimage fails to build on PowerPC

Reported by: barracuda156 Owned by: barracuda156
Priority: Normal Milestone:
Component: ports Version: 2.9.0
Keywords: tiger, leopard, snowleopard, powerpc Cc:
Port: freeimage

Description

gcc-4.2:

Source/FreeImage/PluginBMP.cpp: In function ‘BOOL Save(FreeImageIO*, FIBITMAP*, void*, int, int, void*)’:
Source/FreeImage/PluginBMP.cpp:1422: error: ‘bpp’ was not declared in this scope
make: *** [Source/FreeImage/PluginBMP.o] Error 1
make: *** Waiting for unfinished jobs....
Source/FreeImage/PluginDDS.cpp: In function ‘void SwapHeader(DDSHEADER*)’:
Source/FreeImage/PluginDDS.cpp:359: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:360: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:361: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:362: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:363: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:364: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:365: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
Source/FreeImage/PluginDDS.cpp:366: error: ‘struct DDSURFACEDESC2’ has no member named ‘ddpfPixelFormat’
make: *** [Source/FreeImage/PluginDDS.o] Error 1

gcc-13.2.0:

Source/FreeImage/PluginBMP.cpp: In function 'BOOL Save(FreeImageIO*, FIBITMAP*, fi_handle, int, int, void*)':
Source/FreeImage/PluginBMP.cpp:1422:28: error: 'bpp' was not declared in this scope
 1422 |                 } else if (bpp == 16) {
      |                            ^~~
make: *** [Source/FreeImage/PluginBMP.o] Error 1
make: *** Waiting for unfinished jobs....
Source/FreeImage/PluginDDS.cpp: In function 'void SwapHeader(DDSHEADER*)':
Source/FreeImage/PluginDDS.cpp:359:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  359 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwSize);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:360:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  360 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFlags);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:361:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  361 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwFourCC);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:362:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  362 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBBitCount);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:363:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  363 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRBitMask);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:364:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  364 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwGBitMask);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:365:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  365 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwBBitMask);
      |                                       ^~~~~~~~~~~~~~~
Source/FreeImage/PluginDDS.cpp:366:39: error: 'DDSURFACEDESC2' {aka 'struct tagDDSURFACEDESC2'} has no member named 'ddpfPixelFormat'
  366 |         SwapLong(&header->surfaceDesc.ddpfPixelFormat.dwRGBAlphaBitMask);
      |                                       ^~~~~~~~~~~~~~~
make: *** [Source/FreeImage/PluginDDS.o] Error 1
In file included from Source/FreeImage/../OpenEXR/IlmImf/ImfHeader.h:51,
                 from Source/FreeImage/../OpenEXR/IlmImf/ImfOutputFile.h:46,
                 from Source/FreeImage/PluginEXR.cpp:33:
Source/OpenEXR/Imath/ImathVec.h:228:41: error: ISO C++17 does not allow dynamic exception specifications
  228 |     const Vec2 &        normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                         ^~~~~
Source/OpenEXR/Imath/ImathVec.h:232:48: error: ISO C++17 does not allow dynamic exception specifications
  232 |     Vec2<T>             normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                                ^~~~~
Source/OpenEXR/Imath/ImathVec.h:440:41: error: ISO C++17 does not allow dynamic exception specifications
  440 |     const Vec3 &        normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                         ^~~~~
Source/OpenEXR/Imath/ImathVec.h:444:48: error: ISO C++17 does not allow dynamic exception specifications
  444 |     Vec3<T>             normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                                ^~~~~
Source/OpenEXR/Imath/ImathVec.h:622:37: error: ISO C++17 does not allow dynamic exception specifications
  622 |     const Vec4 &    normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
Source/OpenEXR/Imath/ImathVec.h:626:44: error: ISO C++17 does not allow dynamic exception specifications
  626 |     Vec4<T>         normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                            ^~~~~
Source/OpenEXR/Imath/ImathVec.h:714:30: error: ISO C++17 does not allow dynamic exception specifications
  714 | Vec2<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
Source/OpenEXR/Imath/ImathVec.h:723:37: error: ISO C++17 does not allow dynamic exception specifications
  723 | Vec2<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
Source/OpenEXR/Imath/ImathVec.h:738:28: error: ISO C++17 does not allow dynamic exception specifications
  738 | Vec2<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
Source/OpenEXR/Imath/ImathVec.h:747:35: error: ISO C++17 does not allow dynamic exception specifications
  747 | Vec2<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
Source/OpenEXR/Imath/ImathVec.h:762:30: error: ISO C++17 does not allow dynamic exception specifications
  762 | Vec3<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
Source/OpenEXR/Imath/ImathVec.h:771:37: error: ISO C++17 does not allow dynamic exception specifications
  771 | Vec3<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
Source/OpenEXR/Imath/ImathVec.h:786:28: error: ISO C++17 does not allow dynamic exception specifications
  786 | Vec3<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
Source/OpenEXR/Imath/ImathVec.h:795:35: error: ISO C++17 does not allow dynamic exception specifications
  795 | Vec3<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
Source/OpenEXR/Imath/ImathVec.h:809:30: error: ISO C++17 does not allow dynamic exception specifications
  809 | Vec4<short>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                              ^~~~~
Source/OpenEXR/Imath/ImathVec.h:818:37: error: ISO C++17 does not allow dynamic exception specifications
  818 | Vec4<short>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                     ^~~~~
Source/OpenEXR/Imath/ImathVec.h:833:28: error: ISO C++17 does not allow dynamic exception specifications
  833 | Vec4<int>::normalizeExc () throw (IEX_NAMESPACE::MathExc);
      |                            ^~~~~
Source/OpenEXR/Imath/ImathVec.h:842:35: error: ISO C++17 does not allow dynamic exception specifications
  842 | Vec4<int>::normalizedExc () const throw (IEX_NAMESPACE::MathExc);
      |                                   ^~~~~
Source/OpenEXR/Imath/ImathVec.h:1212:26: error: ISO C++17 does not allow dynamic exception specifications
 1212 | Vec2<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
Source/OpenEXR/Imath/ImathVec.h:1249:33: error: ISO C++17 does not allow dynamic exception specifications
 1249 | Vec2<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
Source/OpenEXR/Imath/ImathVec.h:1704:26: error: ISO C++17 does not allow dynamic exception specifications
 1704 | Vec3<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
Source/OpenEXR/Imath/ImathVec.h:1743:33: error: ISO C++17 does not allow dynamic exception specifications
 1743 | Vec3<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
Source/OpenEXR/Imath/ImathVec.h:2109:26: error: ISO C++17 does not allow dynamic exception specifications
 2109 | Vec4<T>::normalizeExc () throw (IEX_NAMESPACE::MathExc)
      |                          ^~~~~
Source/OpenEXR/Imath/ImathVec.h:2150:33: error: ISO C++17 does not allow dynamic exception specifications
 2150 | Vec4<T>::normalizedExc () const throw (IEX_NAMESPACE::MathExc)
      |                                 ^~~~~
In file included from Source/FreeImage/../OpenEXR/IlmImf/ImfXdr.h:108,
                 from Source/FreeImage/../OpenEXR/IlmImf/ImfGenericOutputFile.h:40,
                 from Source/FreeImage/../OpenEXR/IlmImf/ImfOutputFile.h:49:
Source/OpenEXR/Half/half.h: In constructor 'half::half(float)':
Source/OpenEXR/Half/half.h:462:22: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  462 |         register int e = (x.i >> 23) & 0x000001ff;
      |                      ^
Source/OpenEXR/Half/half.h:473:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  473 |             register int m = x.i & 0x007fffff;
      |                          ^
make: *** [Source/FreeImage/PluginEXR.o] Error 1

Upstream issue: https://github.com/WinMerge/freeimage/issues/16

Change History (4)

comment:1 Changed 9 months ago by barracuda156

comment:2 in reply to:  description ; Changed 9 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: duplicate
Status: newclosed

Replying to barracuda156:

Upstream issue: https://github.com/WinMerge/freeimage/issues/16

As they said there, that's not upstream.

Duplicate of #67489 where I pointed out the real upstream bug reports.

comment:3 in reply to:  2 Changed 9 months ago by barracuda156

Replying to ryandesign:

Replying to barracuda156:

Upstream issue: https://github.com/WinMerge/freeimage/issues/16

As they said there, that's not upstream.

Duplicate of #67489 where I pointed out the real upstream bug reports.

Thank you, my memory gets bad.

I am not sure if suggestion here is actually correct though. It is arguably more conceivable that upstream used a wrong name in that chunk of code rather than added a completely meaningless and breaking chunk which is to be simply thrown away. No special opinion on int to unsigned change there, I did not get any errors with that.

UPD. I will reply in that ticket, please ignore this.

Last edited 9 months ago by barracuda156 (previous) (diff)

comment:4 Changed 9 months ago by barracuda156

Owner: set to barracuda156
Resolution: duplicatefixed
Note: See TracTickets for help on using tickets.