View Issue Details

IDProjectCategoryView StatusLast Update
0000543Cinelerra-GG[All Projects] Bugpublic2020-12-20 04:17
Reporterferdnyc Assigned ToPhyllisSmith  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000543: [PATCH] OpenEXR needs patching to build with GCC 11
DescriptionDoesn't look like this has been reported yet ­— building the 2020-10 snapshot with GCC 11, one of the OpenEXR
source files needs to be patched due to a missing include.
Steps To Reproduce1. Check out the 2020-10 tag
1. Build with GCC 11

Results:
  CXX ImfTiledMisc.lo
make[6]: Leaving directory '/builddir/build/BUILD/cinelerra-2020-10/cinelerra-5.1/thirdparty/openexr-2.4.1/OpenEXR/IlmImf'
ImfTiledMisc.cpp: In function 'int Imf_2_4::getTiledChunkOffsetTableSize(const Imf_2_4::Header&)':
ImfTiledMisc.cpp:375:67: error: 'numeric_limits' is not a member of 'std'
  375 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~~~~~~~~~~~~
ImfTiledMisc.cpp:375:82: error: expected primary-expression before 'int'
  375 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~
ImfTiledMisc.cpp:375:82: error: expected ')' before 'int'
  375 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~
      | )
ImfTiledMisc.cpp:375:82: error: expected ')' before 'int'
  375 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ~ ^~~
      | )
ImfTiledMisc.cpp:375:95: error: expected primary-expression before ')' token
  375 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^
ImfTiledMisc.cpp:387:71: error: 'numeric_limits' is not a member of 'std'
  387 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~~~~~~~~~~~~
ImfTiledMisc.cpp:387:86: error: expected primary-expression before 'int'
  387 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~
ImfTiledMisc.cpp:387:86: error: expected ')' before 'int'
  387 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^~~
      | )
ImfTiledMisc.cpp:387:86: error: expected ')' before 'int'
  387 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ~ ^~~
      | )
ImfTiledMisc.cpp:387:99: error: expected primary-expression before ')' token
  387 | if ( lineOffsetSize > static_cast<Int64>(std::numeric_limits<int>::max()) )
      | ^
make[6]: *** [Makefile:883: ImfTiledMisc.lo] Error 1
Additional InformationCopying the attached patch file into cinelerra-5.1/thirdparty/src/ fixes the build, by patching the source file
with the missing '#include <limits>'. There is no issue doing this unconditionally; the patch is correct even for
earlier GCC releases / other compilers.
TagsNo tags attached.

Activities

PhyllisSmith

PhyllisSmith

2020-12-14 18:28

manager   ~0004424

@ferdnyc
This has been checked into GIT.
Thank you for explanation, patch, and confirmation of working on earlier versions/other compilers. I tested this on Fedora 32 with GCC 10.2.1-6 and visually looked at the patch and inspected the results of compilation to ensure the +limits was in ImfTiledMisc.cpp -- that is the extent of what I could do. Thanks so much for your continued support!
ferdnyc

ferdnyc

2020-12-14 07:32

reporter  

openexr-2.4.1.patch1 (637 bytes)

Issue History

Date Modified Username Field Change
2020-12-14 07:32 ferdnyc New Issue
2020-12-14 07:32 ferdnyc File Added: openexr-2.4.1.patch1
2020-12-14 18:28 PhyllisSmith Assigned To => PhyllisSmith
2020-12-14 18:28 PhyllisSmith Status new => acknowledged
2020-12-14 18:28 PhyllisSmith Note Added: 0004424
2020-12-15 18:19 PhyllisSmith Status acknowledged => resolved
2020-12-15 18:19 PhyllisSmith Resolution open => fixed
2020-12-20 04:17 PhyllisSmith Status resolved => closed