AcademySoftwareFoundation/openexr

FTBFS w/ Clang on MSYS2

Open

#2,101 opened on Aug 21, 2025

 (3 comments) (0 reactions) (1 assignee)C (695 forks)auto 404
good first issuehelp wanted

Repository metrics

Stars
 (1,812 stars)
PR merge metrics
 (PR metrics pending)

Description

OpenEXR 3.3.5 fails to build against Imath 3.2.1 using Clang (20.1.8) on MSYS2 (CLANG64 or CLANGARM64 environments):

FAILED: [code=1] src/lib/OpenEXR/CMakeFiles/OpenEXR.dir/ImfBoxAttribute.cpp.obj 
  D:\M\msys64\clang64\bin\clang++.exe -DIMATH_DLL -DOPENEXR_DLL -DOPENEXR_EXPORTS -DOpenEXR_EXPORTS -ID:/_/B/src/build-CLANG64/src/lib/OpenEXR -ID:/_/B/src/openexr-3.3.5/src/lib/OpenEXR -ID:/_/B/src/build-CLANG64/cmake -ID:/_/B/src/openexr-3.3.5/src/lib/Iex -ID:/_/B/src/openexr-3.3.5/src/lib/IlmThread -ID:/_/B/src/openexr-3.3.5/src/lib/OpenEXRCore -isystem D:/M/msys64/clang64/include/Imath -march=nocona -msahf -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wp,-D__USE_MINGW_ANSI_STDIO=1 -Wno-ignored-attributes -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -pthread -MD -MT src/lib/OpenEXR/CMakeFiles/OpenEXR.dir/ImfBoxAttribute.cpp.obj -MF src\lib\OpenEXR\CMakeFiles\OpenEXR.dir\ImfBoxAttribute.cpp.obj.d -o src/lib/OpenEXR/CMakeFiles/OpenEXR.dir/ImfBoxAttribute.cpp.obj -c D:/_/B/src/openexr-3.3.5/src/lib/OpenEXR/ImfBoxAttribute.cpp
  In file included from D:/_/B/src/openexr-3.3.5/src/lib/OpenEXR/ImfBoxAttribute.cpp:24:
  In file included from D:/_/B/src/openexr-3.3.5/src/lib/OpenEXR/ImfBoxAttribute.h:20:
  In file included from D:/M/msys64/clang64/include/Imath/ImathBox.h:16:
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1097:37: error: explicit specialization of 'length' after instantiation
   1097 | IMATH_HOSTDEVICE short Vec2<short>::length () const IMATH_NOEXCEPT = delete;
        |                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1100:37: error: explicit specialization of 'normalize' after instantiation
   1100 |                        Vec2<short>::normalize () IMATH_NOEXCEPT = delete;
        |                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1101:45: error: explicit specialization of 'normalizeExc' after instantiation
   1101 | template <> const Vec2<short>& Vec2<short>::normalizeExc ()     = delete;
        |                                             ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1104:37: error: explicit specialization of 'normalizeNonNull' after instantiation
   1104 |                        Vec2<short>::normalizeNonNull () IMATH_NOEXCEPT = delete;
        |                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1107:31: error: explicit specialization of 'normalized' after instantiation
   1107 |                  Vec2<short>::normalized () const IMATH_NOEXCEPT = delete;
        |                               ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1108:38: error: explicit specialization of 'normalizedExc' after instantiation
   1108 | template <> Vec2<short> Vec2<short>::normalizedExc () const      = delete;
        |                                      ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1111:14: error: explicit specialization of 'normalizedNonNull' after instantiation
   1111 | Vec2<short>::normalizedNonNull () const IMATH_NOEXCEPT = delete;
        |              ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1115:33: error: explicit specialization of 'length' after instantiation
   1115 | IMATH_HOSTDEVICE int Vec2<int>::length () const IMATH_NOEXCEPT = delete;
        |                                 ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1118:41: error: explicit specialization of 'normalize' after instantiation
   1118 |                              Vec2<int>::normalize () IMATH_NOEXCEPT = delete;
        |                                         ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1119:41: error: explicit specialization of 'normalizeExc' after instantiation
   1119 | template <> const Vec2<int>& Vec2<int>::normalizeExc ()             = delete;
        |                                         ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1122:35: error: explicit specialization of 'normalizeNonNull' after instantiation
   1122 |                        Vec2<int>::normalizeNonNull () IMATH_NOEXCEPT = delete;
        |                                   ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1125:34: error: explicit specialization of 'normalized' after instantiation
   1125 |                       Vec2<int>::normalized () const IMATH_NOEXCEPT = delete;
        |                                  ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1126:34: error: explicit specialization of 'normalizedExc' after instantiation
   1126 | template <> Vec2<int> Vec2<int>::normalizedExc () const             = delete;
        |                                  ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1129:29: error: explicit specialization of 'normalizedNonNull' after instantiation
   1129 |                  Vec2<int>::normalizedNonNull () const IMATH_NOEXCEPT = delete;
        |                             ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1133:41: error: explicit specialization of 'length' after instantiation
   1133 | IMATH_HOSTDEVICE int64_t Vec2<int64_t>::length () const IMATH_NOEXCEPT = delete;
        |                                         ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1136:39: error: explicit specialization of 'normalize' after instantiation
   1136 |                        Vec2<int64_t>::normalize () IMATH_NOEXCEPT = delete;
        |                                       ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1137:49: error: explicit specialization of 'normalizeExc' after instantiation
   1137 | template <> const Vec2<int64_t>& Vec2<int64_t>::normalizeExc ()   = delete;
        |                                                 ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1140:16: error: explicit specialization of 'normalizeNonNull' after instantiation
   1140 | Vec2<int64_t>::normalizeNonNull () IMATH_NOEXCEPT = delete;
        |                ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:1143:33: error: explicit specialization of 'normalized' after instantiation
   1143 |                  Vec2<int64_t>::normalized () const IMATH_NOEXCEPT = delete;
        |                                 ^
  D:/M/msys64/clang64/include/Imath/ImathVec.h:53:53: note: implicit instantiation first required here
     53 | template <class T> class IMATH_EXPORT_TEMPLATE_TYPE Vec2
        |                                                     ^
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  20 errors generated.

Contributor guide