Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#63110 closed defect (fixed)

clang-12 build error due to cmake portgroup setting an extremely old C and CXX standard because the llvm portfiles don't use base's compiler.c_standard or compiler.cxx_standard

Reported by: blair (Blair Zajac) Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: llvm-12

Description

From the current HEAD at 384430023c65868c8c548d3f1e50c04ce328a218 on Big Sur 11.4

CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_OBJCXX_COMPILER
    CMAKE_OBJC_COMPILER
    CMAKE_POLICY_DEFAULT_CMP0025
    CMAKE_POLICY_DEFAULT_CMP0060


-- Build files have been written to: /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build
Warning: Configuration logfiles contain indications of -Wimplicit-function-declaration; check that features were not accidentally disabled:
  _stricmp: found in build/CMakeFiles/CMakeError.log
  _snprintf: found in build/CMakeFiles/CMakeError.log
  _strnicmp: found in build/CMakeFiles/CMakeError.log
--->  Building llvm-12
Executing:  cd "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build" && /usr/bin/make -j1 -w all VERBOSE=ON 
make: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
/opt/local/bin/cmake -S/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm -B/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build --check-build-system CMakeFiles/Makefile.cmake 0
/opt/local/bin/cmake -E cmake_progress_start /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/CMakeFiles /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build//CMakeFiles/progress.marks
/Library/Developer/CommandLineTools/usr/bin/make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
/Library/Developer/CommandLineTools/usr/bin/make  -f lib/Demangle/CMakeFiles/LLVMDemangle.dir/build.make lib/Demangle/CMakeFiles/LLVMDemangle.dir/depend
make[2]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
cd /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build && /opt/local/bin/cmake -E cmake_depends "Unix Makefiles" /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle/CMakeFiles/LLVMDemangle.dir/DependInfo.cmake --color=
Dependee "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle/CMakeFiles/LLVMDemangle.dir/DependInfo.cmake" is newer than depender "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle/CMakeFiles/LLVMDemangle.dir/depend.internal".
Dependee "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle/CMakeFiles/LLVMDemangle.dir/depend.internal".
Scanning dependencies of target LLVMDemangle
make[2]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
/Library/Developer/CommandLineTools/usr/bin/make  -f lib/Demangle/CMakeFiles/LLVMDemangle.dir/build.make lib/Demangle/CMakeFiles/LLVMDemangle.dir/build
make[2]: Entering directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
[  0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o
cd /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle && /usr/bin/clang++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/include -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -O3 -DNDEBUG -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -mmacosx-version-min=11.0  -fno-exceptions -std=c++98 -o CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o -c /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/Demangle.cpp
In file included from /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/Demangle.cpp:13:
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:23:6: warning: enumeration types with a fixed underlying type are a C++11 extension [-Wc++11-extensions]
enum : int {
     ^~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:28:23: warning: commas at the end of enumerator lists are a C++11 extension [-Wc++11-extensions]
  demangle_success = 0,
                      ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:41:29: warning: commas at the end of enumerator lists are a C++11 extension [-Wc++11-extensions]
  MSDF_NoMemberType = 1 << 4,
                            ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:73:51: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  ItaniumPartialDemangler(ItaniumPartialDemangler &&Other);
                                                  ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:74:62: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  ItaniumPartialDemangler &operator=(ItaniumPartialDemangler &&Other);
                                                             ^
5 warnings generated.
[  0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
cd /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle && /usr/bin/clang++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/lib/Demangle -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build/include -I/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -O3 -DNDEBUG -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -mmacosx-version-min=11.0  -fno-exceptions -std=c++98 -o CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o -c /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/ItaniumDemangle.cpp
In file included from /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/ItaniumDemangle.cpp:13:
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:23:6: warning: enumeration types with a fixed underlying type are a C++11 extension [-Wc++11-extensions]
enum : int {
     ^~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:28:23: warning: commas at the end of enumerator lists are a C++11 extension [-Wc++11-extensions]
  demangle_success = 0,
                      ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:41:29: warning: commas at the end of enumerator lists are a C++11 extension [-Wc++11-extensions]
  MSDF_NoMemberType = 1 << 4,
                            ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:73:51: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  ItaniumPartialDemangler(ItaniumPartialDemangler &&Other);
                                                  ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Demangle.h:74:62: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  ItaniumPartialDemangler &operator=(ItaniumPartialDemangler &&Other);
                                                             ^
In file included from /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/ItaniumDemangle.cpp:14:
In file included from /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:23:
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:28:16: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  char *Buffer = nullptr;
               ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:29:26: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  size_t CurrentPosition = 0;
                         ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:30:25: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  size_t BufferCapacity = 0;
                        ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:68:20: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
  OutputStream() = default;
                   ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:77:29: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  unsigned CurrentPackIndex = std::numeric_limits<unsigned>::max();
                            ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:78:27: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  unsigned CurrentPackMax = std::numeric_limits<unsigned>::max();
                          ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:146:22: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
  bool ShouldRestore = true;
                     ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:170:44: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  SwapAndRestore(const SwapAndRestore &) = delete;
                                           ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/Utility.h:171:55: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  SwapAndRestore &operator=(const SwapAndRestore &) = delete;
                                                      ^
In file included from /opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/lib/Demangle/ItaniumDemangle.cpp:14:
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:8: error: ISO C++ forbids forward references to 'enum' types
  enum Kind : unsigned char {
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:24: error: expected '(' for function-style cast or type construction
  enum Kind : unsigned char {
              ~~~~~~~~ ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:13: error: field has incomplete type 'enum Kind'
  enum Kind : unsigned char {
            ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:8: note: forward declaration of 'llvm::itanium_demangle::Kind'
  enum Kind : unsigned char {
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:124:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class Cache : unsigned char { Yes, No, Unknown, };
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:124:8: error: reference to enumeration must use 'enum' not 'enum class' [-Welaborated-enum-class]
  enum class Cache : unsigned char { Yes, No, Unknown, };
       ^~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:124:31: error: expected '(' for function-style cast or type construction
  enum class Cache : unsigned char { Yes, No, Unknown, };
                     ~~~~~~~~ ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:127:8: error: field has incomplete type 'llvm::itanium_demangle::Kind'
  Kind K;
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:8: note: forward declaration of 'llvm::itanium_demangle::Kind'
  enum Kind : unsigned char {
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:206:21: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions]
  virtual ~Node() = default;
                    ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:144:44: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
  Node(Kind K_, Cache RHSComponentCache_ = Cache::No,
                                           ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:144:44: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
  Node(Kind K_, Cache RHSComponentCache_ = Cache::No,
                                           ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:145:28: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
       Cache ArrayCache_ = Cache::No, Cache FunctionCache_ = Cache::No)
                           ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:145:28: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
       Cache ArrayCache_ = Cache::No, Cache FunctionCache_ = Cache::No)
                           ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:145:62: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
       Cache ArrayCache_ = Cache::No, Cache FunctionCache_ = Cache::No)
                                                             ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:145:62: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
       Cache ArrayCache_ = Cache::No, Cache FunctionCache_ = Cache::No)
                                                             ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:144:13: error: variable has incomplete type 'llvm::itanium_demangle::Kind'
  Node(Kind K_, Cache RHSComponentCache_ = Cache::No,
            ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:8: note: forward declaration of 'llvm::itanium_demangle::Kind'
  enum Kind : unsigned char {
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:159:30: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
    if (RHSComponentCache != Cache::Unknown)
                             ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:159:30: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
    if (RHSComponentCache != Cache::Unknown)
                             ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:160:35: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
      return RHSComponentCache == Cache::Yes;
                                  ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:160:35: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
      return RHSComponentCache == Cache::Yes;
                                  ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:165:23: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
    if (ArrayCache != Cache::Unknown)
                      ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:165:23: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
    if (ArrayCache != Cache::Unknown)
                      ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:166:28: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
      return ArrayCache == Cache::Yes;
                           ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:166:28: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
      return ArrayCache == Cache::Yes;
                           ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:171:26: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
    if (FunctionCache != Cache::Unknown)
                         ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:171:26: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
    if (FunctionCache != Cache::Unknown)
                         ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:172:31: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
      return FunctionCache == Cache::Yes;
                              ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:172:31: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
      return FunctionCache == Cache::Yes;
                              ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:176:8: error: incomplete result type 'llvm::itanium_demangle::Kind' in function definition
  Kind getKind() const { return K; }
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:116:8: note: forward declaration of 'llvm::itanium_demangle::Kind'
  enum Kind : unsigned char {
       ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:190:30: warning: use of enumeration in a nested name specifier is a C++11 extension [-Wc++11-extensions]
    if (RHSComponentCache != Cache::No)
                             ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:190:30: error: incomplete type 'llvm::itanium_demangle::Cache' named in nested name specifier
    if (RHSComponentCache != Cache::No)
                             ^~~~~~~
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:257:41: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
  void printLeft(OutputStream &S) const override {
                                        ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:253:42: error: use of undeclared identifier 'KNodeArrayNode'
  NodeArrayNode(NodeArray Array_) : Node(KNodeArrayNode), Array(Array_) {}
                                         ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:262:17: warning: 'final' keyword is a C++11 extension [-Wc++11-extensions]
class DotSuffix final : public Node {
                ^
/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/llvm-project-12.0.0.src/llvm/include/llvm/Demangle/ItaniumDemangle.h:272:41: warning: 'override' keyword is a C++11 extension [-Wc++11-extensions]
  void printLeft(OutputStream &s) const override {
                                        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
29 warnings and 20 errors generated.
make[2]: *** [lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
make[1]: *** [lib/Demangle/CMakeFiles/LLVMDemangle.dir/all] Error 2
make[1]: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
make: *** [all] Error 2
make: Leaving directory `/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build'
Command failed:  cd "/opt/local/var/macports/build/_Users_blairzajac_Code_MacPorts_macports-ports.git_lang_llvm-12/llvm-12/work/build" && /usr/bin/make -j1 -w all VERBOSE=ON 
Exit code: 2

Change History (8)

comment:1 Changed 3 years ago by kencu (Ken)

Yeah -- this is broken because the cmake portgroup recently started setting C & CXX standards for the builds depending on what is set in the Portfiles

compiler.cxx_standard

and 

compiler.c_standard

and then if the Portfile isn't setting any standard (and the llvm Portfiles don't, because I set the compiler directly for the build) then the PortGroup helpfully adds a really really old one:

https://github.com/macports/macports-ports/commit/0113e7d7fe225d85d250556a5340d97a70a2649e

I'm not sure what the right move is here, but IMHO --- the cmake PG shouldn't be doing that.

Otherwise, what I will have to do is see which one it is setting and strip that out with a

configure.preargs-delete XYX bit

YUK. So nothing to do with llvm or clang, but whose lap this lands on remains to be seen :>

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:2 Changed 3 years ago by kencu (Ken)

Summary: clang-12 build errorclang-12 build error due to cmake portgroup setting an extremely old C and CXX standard because the llvm portfiles don't use base's compiler.c_standard or compiler.cxx_standard

comment:3 Changed 3 years ago by jmroot (Joshua Root)

The compiler.*_standard options were designed as a compiler selection mechanism, not a language standard enforcement mechanism. They don't cause any -std= flag to be used normally, since projects should be setting that themselves, and some will use features from newer standards if available but work fine with an older standard.

comment:4 Changed 3 years ago by kencu (Ken)

they do now, for cmake builds using the cmake 1.1 PG, at least.

see at the link.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:5 Changed 3 years ago by kencu (Ken)

and this one

https://github.com/macports/macports-ports/commit/a3cbd09ac05a1ec6021ef757cc617506db6c1239

where I suggested this might have some unintended side effects

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:6 Changed 3 years ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

comment:7 in reply to:  4 Changed 3 years ago by jmroot (Joshua Root)

Replying to kencu:

they do now, for cmake builds using the cmake 1.1 PG, at least.

Yes, I'm saying that that change to the cmake portgroup significantly changes the semantics of those options when using that portgroup.

comment:8 Changed 3 years ago by kencu (Ken)

certainly agree there...we will see as various ports get updated over the next year or two where else this may cause trouble.

Note: See TracTickets for help on using tickets.