View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000543 | Cinelerra-GG | [All Projects] Bug | public | 2020-12-14 07:32 | 2020-12-20 04:17 |
Reporter | ferdnyc | Assigned To | PhyllisSmith | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000543: [PATCH] OpenEXR needs patching to build with GCC 11 | ||||
Description | Doesn'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 Reproduce | 1. 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 Information | Copying 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. | ||||
Tags | No tags attached. | ||||
@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! |
|
openexr-2.4.1.patch1 (637 bytes) |
|
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 |