Skip to content

FTBFS w/ Clang on MSYS2 #2101

@kmilos

Description

@kmilos

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions