Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-05 Thread suzuki toshiya
Dear Marcel,

Oh, I slipped to remind the exist of launchpad... Thanks!
at least, gcc-6.2.0 seems to be available for 12.04.

Regards,
mpsuzuki

Marcel Loose wrote:
> Hi Suzuki,
> 
> Sorry for chiming in late, but you may want to try the PPA for Ubuntu
> Toolchain test builds, which contains compiler builds up to gcc-8 for
> Ubuntu version as old as 10.04. Much less of a hassle than building GCC
> yourself, I can tell from experience. Check out
> https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
> 
> Cheers,
> Marcel.
> 
> 
> On 05/04/18 07:29, suzuki toshiya wrote:
>> Sorry for bothering subscribers for posting about C++11 environment
>> instead of cmake itself. Now I understand building gcc >= 4.8.5
>> manually might be easier, in comparison with the quest of libc++
>> for clang-3.4.
>>
>> https://stackoverflow.com/questions/39332406/install-libc-on-ubuntu
>>
>> Regards,
>> mpsuzuki
>>
>> suzuki toshiya wrote:
>>> 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 
> > 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::hash, std::equal_to,
>   std::allocator cmGeneratorTarget
> *> > >'
>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>    ^
>
> G 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 
>>> >>
>>>  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

Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-05 Thread Marcel Loose
Hi Suzuki,

Sorry for chiming in late, but you may want to try the PPA for Ubuntu
Toolchain test builds, which contains compiler builds up to gcc-8 for
Ubuntu version as old as 10.04. Much less of a hassle than building GCC
yourself, I can tell from experience. Check out
https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test

Cheers,
Marcel.


On 05/04/18 07:29, suzuki toshiya wrote:
> Sorry for bothering subscribers for posting about C++11 environment
> instead of cmake itself. Now I understand building gcc >= 4.8.5
> manually might be easier, in comparison with the quest of libc++
> for clang-3.4.
>
> https://stackoverflow.com/questions/39332406/install-libc-on-ubuntu
>
> Regards,
> mpsuzuki
>
> suzuki toshiya wrote:
>> 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 
 > 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::allocator > >'
   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
    ^

 G 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 
>> >>
>>  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,
>> 

Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-04 Thread suzuki toshiya
Sorry for bothering subscribers for posting about C++11 environment
instead of cmake itself. Now I understand building gcc >= 4.8.5
manually might be easier, in comparison with the quest of libc++
for clang-3.4.

https://stackoverflow.com/questions/39332406/install-libc-on-ubuntu

Regards,
mpsuzuki

suzuki toshiya wrote:
> 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 
>>> > 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::hash, std::equal_to,
>>>   std::allocator>> cmGeneratorTarget
>>> *> > >'
>>>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>>>    ^
>>>
>>> G 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 
> >>
>  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
>
> 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: 

Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-04 Thread suzuki toshiya
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 
>> > 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::hash, std::equal_to,
>>   std::allocator> cmGeneratorTarget
>> *> > >'
>>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>>    ^
>>
>> G 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 
 >>
  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

 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 

Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-04 Thread suzuki toshiya
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 
> > 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::hash, std::equal_to,
>   std::allocator cmGeneratorTarget
> *> > >'
>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>    ^
> 
> G 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 
>>> >>
>>>  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
>>>
>>> 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 

Re: [CMake] [FYI] clang-3.4 vs cmake-3.11.0 (How to build CMake so it works on an older Linux?)

2018-04-04 Thread Bo Zhou
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 
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::hash, std::equal_to,
>   std::allocator cmGeneratorTarget
> *> > >'
>   this->GeneratorTargetSearchIndex.emplace(gt->GetName(), gt);
>    ^
>
> G 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 > 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
> >>
> >> 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
>
-- 

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