fmrico / popf

The POPF planner from KCL planning group with some modifications to make it work with "modern" compilers...
GNU General Public License v2.0
17 stars 9 forks source link

Error compiling Instantiation on MacOS #11

Open rpgoldman opened 6 months ago

rpgoldman commented 6 months ago

Trying to compile POPF (after fixes described in #10) I get these error messages:

In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:594:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__tree:2477:26: error: no matching function for call to object of type 'value_compare' (aka 'std::__map_value_compare<const VAL::const_symbol *, std::__value_type<const VAL::const_symbol *, int>, Inst::ConstSymbolLT>')
    if (__p != end() && !value_comp()(__v, *__p))
                         ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:1529:68: note: in instantiation of function template specialization 'std::__tree<std::__value_type<const VAL::const_symbol *, int>, std::__map_value_compare<const VAL::const_symbol *, std::__value_type<const VAL::const_symbol *, int>, Inst::ConstSymbolLT>, std::allocator<std::__value_type<const VAL::const_symbol *, int> > >::find<const VAL::const_symbol *>' requested here
    iterator find(const key_type& __k)             {return __tree_.find(__k);}
                                                                   ^
/Users/rpg/src/popf/src/VALfiles/instantiation.cpp:1141:113: note: in instantiation of member function 'std::map<const VAL::const_symbol *, int, Inst::ConstSymbolLT>::find' requested here
                            const pviLookup::iterator findEntry = parameterValuesToIndices[parameterIndex[aff]].find(asConst);
                                                                                                                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:638:10: note: candidate function not viable: no known conversion from 'const VAL::const_symbol *const' to 'const std::__value_type<const VAL::const_symbol *, int>' for 1st argument
    bool operator()(const _CP& __x, const _CP& __y) const
         ^
In file included from /Users/rpg/src/popf/src/VALfiles/instantiation.cpp:31:
In file included from /Users/rpg/src/popf/src/VALfiles/parsing/ptree.h:55:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:594:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__tree:2547:14: error: no matching function for call to object of type 'value_compare' (aka 'std::__map_value_compare<const VAL::const_symbol *, std::__value_type<const VAL::const_symbol *, int>, Inst::ConstSymbolLT>')
        if (!value_comp()(__root->__value_, __v))
             ^~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__tree:2476:20: note: in instantiation of function template specialization 'std::__tree<std::__value_type<const VAL::const_symbol *, int>, std::__map_value_compare<const VAL::const_symbol *, std::__value_type<const VAL::const_symbol *, int>, Inst::ConstSymbolLT>, std::allocator<std::__value_type<const VAL::const_symbol *, int> > >::__lower_bound<const VAL::const_symbol *>' requested here
    iterator __p = __lower_bound(__v, __root(), __end_node());
                   ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:1529:68: note: in instantiation of function template specialization 'std::__tree<std::__value_type<const VAL::const_symbol *, int>, std::__map_value_compare<const VAL::const_symbol *, std::__value_type<const VAL::const_symbol *, int>, Inst::ConstSymbolLT>, std::allocator<std::__value_type<const VAL::const_symbol *, int> > >::find<const VAL::const_symbol *>' requested here
    iterator find(const key_type& __k)             {return __tree_.find(__k);}
                                                                   ^
/Users/rpg/src/popf/src/VALfiles/instantiation.cpp:1141:113: note: in instantiation of member function 'std::map<const VAL::const_symbol *, int, Inst::ConstSymbolLT>::find' requested here
                            const pviLookup::iterator findEntry = parameterValuesToIndices[parameterIndex[aff]].find(asConst);
                                                                                                                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/map:638:10: note: candidate function not viable: no known conversion from 'const VAL::const_symbol *const' to 'const std::__value_type<const VAL::const_symbol *, int>' for 2nd argument
    bool operator()(const _CP& __x, const _CP& __y) const
         ^
1 warning and 4 errors generated.
make[2]: *** [src/VALfiles/CMakeFiles/Inst.dir/instantiation.o] Error 1

Trying to set CXX and CC to use gcc from homebrew instead of Apple's gcc does not fix this.

rpgoldman commented 6 months ago

Using clang++ and clang doesn't fix this, either.

rpgoldman commented 6 months ago

But ... does cmake even use these standard Make variables?