I’ve tested the LyX build with clang6.0 - the system compiler of Mac OS X 10.10. The automake build is working. The Cmake generated project build stops with typedef redefinition errors. Somehow the strfwd.h causes the error about redefinition of docstring and other types. I’d guess the compiler flags are different. But are the typedefs really equivalent? Isn’t this a real problem?
Stephan These are the error messages: CompileC /Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/Objects-normal/x86_64/GraphicsCacheItem.o src/graphics/GraphicsCacheItem.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler cd /Users/stephan/git/LyX-2.2-2.2.0dev export LANG=en_US.US-ASCII /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DCMAKE_INTDIR=\"Debug\" -DBOOST_SIGNALS_NO_DEPRECATION_WARNING=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.10 -Wno-sign-conversion -I/Users/stephan/git/lyx-build/cmake/2.2.0dev/lib/Debug/include -I/Users/stephan/git/lyx-build/cmake/2.2.0dev -I/Users/stephan/git/LyX-2.2-2.2.0dev/src -I/Users/Shared/LyX/utilities/include -I/Users/stephan/git/LyX-2.2-2.2.0dev/boost -I/Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics -I/Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/DerivedSources/x86_64 -I/Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/DerivedSources -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/stephan/git/lyx-build/cmake/2.2.0dev/lib/Debug -Wall -Wunused-parameter -fno-strict-aliasing -Wall -Wunused-parameter -fno-strict-aliasing -D_DEBUG -g3 -DBOOST_USER_CONFIG=<config.h> -MMD -MT dependencies -MF /Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/Objects-normal/x86_64/GraphicsCacheItem.d --serialize-diagnostics /Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/Objects-normal/x86_64/GraphicsCacheItem.dia -c /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp -o /Users/stephan/git/lyx-build/cmake/2.2.0dev/src/graphics/LyX.build/Debug/graphics.build/Objects-normal/x86_64/GraphicsCacheItem.o In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:22: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/Format.h:15: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/docstring.h:27:38: error: typedef redefinition with different types ('std::basic_string<char_type>' vs 'std::basic_string<char_type, std::char_traits<char_type>, std::allocator<char_type> >') typedef std::basic_string<char_type> docstring; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:31: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsTypes.h:18: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/strfwd.h:73:30: note: previous definition is here std::allocator<char_type> > docstring; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:22: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/Format.h:17: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/OutputParams.h:17: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/Changes.h:20: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/docstream.h:37:39: error: typedef redefinition with different types ('std::basic_istream<char_type>' vs 'std::basic_istream<char_type, std::char_traits<char_type> >') typedef std::basic_istream<char_type> idocstream; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:31: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsTypes.h:18: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/strfwd.h:76:69: note: previous definition is here typedef std::basic_istream<char_type, std::char_traits<char_type> > idocstream; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:22: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/Format.h:17: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/OutputParams.h:17: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/Changes.h:20: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/docstream.h:49:39: error: typedef redefinition with different types ('std::basic_ostream<char_type>' vs 'std::basic_ostream<char_type, std::char_traits<char_type> >') typedef std::basic_ostream<char_type> odocstream; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:31: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsTypes.h:18: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/strfwd.h:79:69: note: previous definition is here typedef std::basic_ostream<char_type, std::char_traits<char_type> > odocstream; ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:22: /Users/stephan/git/LyX-2.2-2.2.0dev/src/Format.h:63:34: error: incompatible operand types ('const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') and 'const value_type' (aka 'const std::__1::basic_string<char>')) return extension_list_.empty() ? empty_string() : extension_list_[0]; ^ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:15: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/os.h:156:25: error: no viable conversion from 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') std::string const & path = empty_string()); ^ ~~~~~~~~~~~~~~ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:33: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signal.hpp:27: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal0.hpp:24: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal_template.hpp:21: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/slot.hpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/trackable.hpp:13: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits.hpp:49: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits/is_complex.hpp:12: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:247: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/sstream:174: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ostream:131: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ios:216: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__locale:15: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1293:5: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::__1::basic_string<char> &' basic_string(const basic_string& __str); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1302:31: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const value_type *' (aka 'const char *') _LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:15: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/os.h:156:25: note: passing argument to parameter 'path' here std::string const & path = empty_string()); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:264:46: error: no viable conversion from 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') std::string relFileName(std::string const & buffer_path = empty_string()) const; ^ ~~~~~~~~~~~~~~ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:33: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signal.hpp:27: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal0.hpp:24: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal_template.hpp:21: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/slot.hpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/trackable.hpp:13: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits.hpp:49: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits/is_complex.hpp:12: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:247: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/sstream:174: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ostream:131: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ios:216: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__locale:15: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1293:5: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::__1::basic_string<char> &' basic_string(const basic_string& __str); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1302:31: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const value_type *' (aka 'const char *') _LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:264:46: note: passing argument to parameter 'buffer_path' here std::string relFileName(std::string const & buffer_path = empty_string()) const; ^ /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:266:49: error: no viable conversion from 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') std::string outputFileName(std::string const & buf_path = empty_string()) const; ^ ~~~~~~~~~~~~~~ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:33: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signal.hpp:27: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal0.hpp:24: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal_template.hpp:21: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/slot.hpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/trackable.hpp:13: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits.hpp:49: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits/is_complex.hpp:12: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:247: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/sstream:174: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ostream:131: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ios:216: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__locale:15: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1293:5: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::__1::basic_string<char> &' basic_string(const basic_string& __str); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1302:31: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const value_type *' (aka 'const char *') _LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:266:49: note: passing argument to parameter 'buf_path' here std::string outputFileName(std::string const & buf_path = empty_string()) const; ^ /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:289:38: error: no viable conversion from 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') mangledFileName(std::string const & dir = empty_string()) const; ^ ~~~~~~~~~~~~~~ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:33: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signal.hpp:27: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal0.hpp:24: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/signal_template.hpp:21: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/slot.hpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/signals/trackable.hpp:13: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits.hpp:49: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/boost/boost/type_traits/is_complex.hpp:12: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:247: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/sstream:174: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ostream:131: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/ios:216: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__locale:15: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1293:5: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const std::__1::basic_string<char> &' basic_string(const basic_string& __str); ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1302:31: note: candidate constructor not viable: cannot convert argument of incomplete type 'const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'const value_type *' (aka 'const char *') _LIBCPP_INLINE_VISIBILITY basic_string(const value_type* __s); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:25: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/FileName.h:289:38: note: passing argument to parameter 'dir' here mangledFileName(std::string const & dir = empty_string()) const; ^ /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:378:39: error: implicit instantiation of undefined template 'std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >' docstring const displayed_filename = makeDisplayPath(filename_.absFileName()); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:31: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsTypes.h:18: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/strfwd.h:54:64: note: template is declared here template<typename Char, typename Traits, typename Alloc> class basic_string; ^ /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:378:18: error: implicit instantiation of undefined template 'std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >' docstring const displayed_filename = makeDisplayPath(filename_.absFileName()); ^ In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.cpp:15: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsCacheItem.h:31: In file included from /Users/stephan/git/LyX-2.2-2.2.0dev/src/graphics/GraphicsTypes.h:18: /Users/stephan/git/LyX-2.2-2.2.0dev/src/support/strfwd.h:54:64: note: template is declared here template<typename Char, typename Traits, typename Alloc> class basic_string; ^ 10 errors generated.