Dear Bo Zhou,

Sorry, I've confirmed by myself.
By default, clang-3.4 for Ubuntu prioritizes old g++ header files, and clang
header files are searched as a fallback.
I can customize the searching order by -nostdinc++...

Regards,
mpsuzuki

suzuki toshiya wrote:
> Dear Bo Zhou,
> 
> Thank you for prompt reply.
> 
>> Be aware that GCC suite actually is independent from the libstdc++, so if 
>> you have a newer compiler, the compiler might still pick the older libstdc++ 
>> without the new API.
> 
> Oh, so, even if I installed clang-3.4, still it uses older (maybe C++03)
> libraries are referred by it?
> 
> Regards,
> mpsuzuki
> 
> Bo Zhou wrote:
>> The emplace() is new API from C++11.
>>
>> Be aware that GCC suite actually is independent from the libstdc++, so if 
>> you have a newer compiler, the compiler might still pick the older libstdc++ 
>> without the new API.
>>
>> This issue doesn't exist at Windows, since Visual Studio is a complete sytem.
>>
>> This issue happens on OSX also, so user must give the compiler a proper 
>> MacOS SDK for the new header files etc.
>>
>> On Thu, Apr 5, 2018 at 1:33 PM, suzuki toshiya 
>> <mpsuz...@hiroshima-u.ac.jp<mailto:mpsuz...@hiroshima-u.ac.jp>> wrote:
>> $ clang++ --version
>> Ubuntu clang version 3.4-1ubuntu3~precise2 (tags/RELEASE_34/final) (based on
>> LLVM 3.4)
>> Target: x86_64-pc-linux-gnu
>> Thread model: posix
>>
>> But I got following abort:
>>
>> cmake-3.11.0/Source/cmLocalGenerator.cxx:553:36: error: no member named 
>> 'emplace' in
>>       'std::unordered_map<std::basic_string<char>, cmGeneratorTarget *,
>> std::hash<string>, std::equal_to<std::basic_string<char> >,
>>       std::allocator<std::pair<const std::basic_string<char>, 
>> cmGeneratorTarget
>> *> > >'
>>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>>   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
>>
>> Grrrr.... X-D
>>
>> Regards,
>> mpsuzuki
>>
>> suzuki toshiya wrote:
>>> Dear Bo Zhou,
>>>
>>> Thank you for the info! Now I'm checking Ubuntu 12.04 in LXC.
>>> So, gcc-4.8.5 or later would be needed for C++11, it seems that the last 
>>> version
>>> of gcc officially provided for Ubuntu-12 was 4.7. oh.
>>> According to https://clang.llvm.org/cxx_status.html , clang-3.3 supports 
>>> C++11,
>>> and the last version of clang officially provided for Ubuntu-12 was 3.4. 
>>> ooh.
>>> I will check if clang-3.4 for Ubuntu-12.04 can compile cmake (or any other
>>> dependency problems would arise).
>>>
>>>> Usually the ABI is not the problem but the libstdc++, you can use a old 
>>>> Ubuntu with old libstdc++ but build CMake with new compiler and make sure 
>>>> it links with old libstdc++. This is the trick.
>>> Indeed.
>>>
>>> Regards,
>>> mpsuzuki
>>>
>>> Bo Zhou wrote:
>>>> The latest CMake requires C++11 compiler, so what you need is just a newer 
>>>> GCC which supports C++11 at your platform, that's it.
>>>>
>>>> Usually the ABI is not the problem but the libstdc++, you can use a old 
>>>> Ubuntu with old libstdc++ but build CMake with new compiler and make sure 
>>>> it links with old libstdc++. This is the trick.
>>>>
>>>> I don't know how to do this on Ubuntu, but on CentOS, it's possible to 
>>>> build CMake in that way, so the CMake would be portable at older CentOS 
>>>> platform with old libstdc++ .
>>>>
>>>> Good luck.
>>>>
>>>> On Thu, Apr 5, 2018 at 12:23 PM, Eric Wing 
>>>> <ewmail...@gmail.com<mailto:ewmail...@gmail.com><mailto:ewmail...@gmail.com<mailto:ewmail...@gmail.com>>>
>>>>  wrote:
>>>> I just discovered that CMake no longer builds on my Ubuntu 12.04. I
>>>> need to build binaries that are compatible with that ABI.
>>>>
>>>> I see that your binary distribution of CMake 3.11 still works on
>>>> Ubuntu 12.04. Can you tell me what you do to achieve this? What are
>>>> you doing for your official builds?
>>>>
>>>> Are you just using -static-libstdc++ -static-libgcc for
>>>> CMAKE_CXX_FLAGS, or is there more?
>>>>
>>>> (I just noticed that ldd shows that you don't have dependencies on
>>>> libssl, libcrypto, and libz, whereas I do.)
>>>>
>>>> Thanks,
>>>> Eric
>>>> --
>>>>
>>>> Powered by www.kitware.com<http://www.kitware.com><http://www.kitware.com>
>>>>
>>>> Please keep messages on-topic and check the CMake FAQ at: 
>>>> http://www.cmake.org/Wiki/CMake_FAQ
>>>>
>>>> Kitware offers various services to support the CMake community. For more 
>>>> information on each offering, please visit:
>>>>
>>>> CMake Support: http://cmake.org/cmake/help/support.html
>>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>>
>>>> Visit other Kitware open-source projects at 
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> https://cmake.org/mailman/listinfo/cmake
>>>>
>>>>
>>>>
>> --
>>
>> Powered by www.kitware.com<http://www.kitware.com>
>>
>> Please keep messages on-topic and check the CMake FAQ at: 
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more 
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at 
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> https://cmake.org/mailman/listinfo/cmake
>>
>>
> 

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to