libstdc++ with gcc 4.9 on ubuntu 15.10
Peter Steinbach
steinbach at scionics.de
Thu Jan 7 10:18:28 UTC 2016
any other ideas on this one? should I file a bug report or similar?
On 01/06/2016 01:53 PM, Peter Steinbach wrote:
> On 01/06/2016 11:56 AM, Matthias Klose wrote:
>> On 06.01.2016 11:47, Peter Steinbach wrote:
>>> Hi -
>>>
>>> I am the developer of a CUDA library and the users recently reported a
>>> bug for ubuntu 15.10. As CUDA currently does not support gcc 5.*, I
>>> have to compile all host binaries with gcc-4.9. The funny thing, my
>>> build system bails out with the following error message when linking
>>> to libboost_unit_test_framework which I was able to reproduce with the
>>> attached source code:
>>>
>>> $ gcc-4.9 -D_GLIBCXX_USE_CXX11_ABI=0 external_main_example_1.cpp
>>> -lboost_unit_test_framework
>>> tmp/ccDk5v3M.o: In function
>>> `boost::unit_test::make_test_case(boost::unit_test::callback0<boost::unit_test::ut_detail::unused>
>>>
>>> const&, boost::unit_test::basic_cstring<char const>)':
>>> external_main_example_1.cpp:(.text._ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE[_ZN5boost9unit_test14make_test_caseERKNS0_9callback0INS0_9ut_detail6unusedEEENS0_13basic_cstringIKcEE]+0x42):
>>>
>>> undefined reference to
>>> `boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char
>>>
>>> const>)'
>>> collect2: error: ld returned 1 exit status
>>
>> -D_GLIBCXX_USE_CXX11_ABI=0 has no effect with GCC 4.9.
>>
>>> The above follows the recommendations from
>>> https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html.
>>> Note that, if I build boost with gcc 4.9 on 15.10, the above works as
>>> expected.
>>>
>>> I was wondering if this is a known feature of the ubuntu boost distro?
>>> Are there any workarounds to this, that I potentially overlooked?
>>
>> You have to use CUDA 7.5. Afaik that's the only version supporting GCC
>> 5. Or you have to rebuild every c++ library except libstdc++ using
>> gcc-4.9 or gcc-5 -D_GLIBCXX_USE_CXX11_ABI=0.
>>
>
> Just tested cuda 7.5 on a very simple app:
> #include "cuda.h"
> #include <iostream>
>
> int main(){
>
> std::cout << "hw!\n";
> }
>
> and got:
> $ nvcc test.cu #on ubuntu 15.10 with cuda 7.5
> In file included from
> /usr/local/cuda-7.5//bin/..//include/cuda_runtime.h:76:0,
> from <command-line>:0:
> /usr/local/cuda-7.5//bin/..//include/host_config.h:115:2: error: #error
> -- unsupported GNU version! gcc versions later than 4.9 are not supported!
> #error -- unsupported GNU version! gcc versions later than 4.9 are not
> supported!
> ^
>
> if you however run:
> $ nvcc -ccbin `which g++-4.9` test.cu
> it works perfectly!
>
>
>
--
Peter Steinbach, Dr. rer. nat.
Scientific Software Engineer, Scientific Computing Facility
Scionics Computer Innovation GmbH
Löscherstr. 16
01309 Dresden
Germany
phone +49 351 210 2882
fax +49 351 202 707 04
www.scionics.de
Sitz der Gesellschaft: Dresden (Main office)
Amtsgericht - Registergericht: Dresden HRB 20337 (Commercial Registry)
Ust-IdNr.: DE813263791 (VAT ID Number)
Geschäftsführer: John Duperon, Jeff Oegema (Managing Directors)
More information about the Ubuntu-devel-discuss
mailing list