Ubuntu 16.04 support

9 posts / 0 new
Last post
mpichini's picture
Offline
Last seen: 3 weeks 2 days ago
Joined: 09/16/2015
Posts: 27
Ubuntu 16.04 support

Hi there,

I was wondering if there're plans to release an upgrade to RTI Connext DDS 5.2.0 to support the latest Ubuntu LTS 16.04 release and the corresponding gcc compiler (GCC 5.3.0 or greater)

kind regards

Massimo

Fernando Garcia's picture
Offline
Last seen: 2 weeks 4 hours ago
Joined: 05/18/2011
Posts: 198

Hi Massimo,

The next General Access Release of RTI Connext DDS will add support for Ubuntu 16.04 LTS. In the meantime—since there are no plans for a build of 5.2.0 for Ubuntu 16.04 LTS—you can use the 5.2.0 libraries for Ubuntu 14.04 LTS (i.e., i86Linux3gcc4.8.3 or x64Linux3gcc4.8.3). I think those libraries will work just fine, but if you run into any issues with them, please let me know and I will take a look the problem.
 
Thanks,
Fernando. 
Offline
Last seen: 2 years 3 months ago
Joined: 09/17/2015
Posts: 53

RTI 5.2 does not compile with gcc 5.0 or higher. You will get a linker error.

Fernando Garcia's picture
Offline
Last seen: 2 weeks 4 hours ago
Joined: 05/18/2011
Posts: 198

Hi robuser,

Can you share the error you run into when linking RTI Connext DDS 5.2.0 with GCC 5.0 or higher? I have been successful building and running a simple example on Ubuntu 16.04 64-bit. In particular, have installed the 5.2.0 x64Linux host with the x64Linux3gcc4.8.2 target and run the following commands:

fgarcia@ubuntu:~/test/hello$ ~/rti_connext_dds-5.2.0/bin/rtiddsgen -language C++ -example x64Linux3gcc4.8.2 HelloMessage.idl 
INFO com.rti.ndds.nddsgen.Main Running rtiddsgen version 2.3.0, please wait ...
INFO com.rti.ndds.nddsgen.Main Done
$ gcc --version
gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
fgarcia@ubuntu:~/test/hello$ make -f makefile_HelloMessage_x64Linux3gcc4.8.2 
Checking directory objs
Making directory objs
Checking directory objs/x64Linux3gcc4.8.2
Making directory objs/x64Linux3gcc4.8.2
g++ -m64 -Wall  -o objs/x64Linux3gcc4.8.2/HelloMessageSupport.o -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT  -I. -I"/home/fgarcia/rti_connext_dds-5.2.0"/include -I"/home/fgarcia/rti_connext_dds-5.2.0"/include/ndds  -c HelloMessageSupport.cxx
g++ -m64 -Wall  -o objs/x64Linux3gcc4.8.2/HelloMessagePlugin.o -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT  -I. -I"/home/fgarcia/rti_connext_dds-5.2.0"/include -I"/home/fgarcia/rti_connext_dds-5.2.0"/include/ndds  -c HelloMessagePlugin.cxx
g++ -m64 -Wall  -o objs/x64Linux3gcc4.8.2/HelloMessage.o -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT  -I. -I"/home/fgarcia/rti_connext_dds-5.2.0"/include -I"/home/fgarcia/rti_connext_dds-5.2.0"/include/ndds  -c HelloMessage.cxx
g++ -m64 -Wall  -o objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT  -I. -I"/home/fgarcia/rti_connext_dds-5.2.0"/include -I"/home/fgarcia/rti_connext_dds-5.2.0"/include/ndds  -c HelloMessage_subscriber.cxx
g++ -m64 -Wall  -o objs/x64Linux3gcc4.8.2/HelloMessage_publisher.o -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT  -I. -I"/home/fgarcia/rti_connext_dds-5.2.0"/include -I"/home/fgarcia/rti_connext_dds-5.2.0"/include/ndds  -c HelloMessage_publisher.cxx
g++ -m64 -static-libgcc -Wl,--no-as-needed   -o objs/x64Linux3gcc4.8.2/HelloMessage_subscriber objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o objs/x64Linux3gcc4.8.2/HelloMessageSupport.o objs/x64Linux3gcc4.8.2/HelloMessagePlugin.o objs/x64Linux3gcc4.8.2/HelloMessage.o -L"/home/fgarcia/rti_connext_dds-5.2.0"/lib/x64Linux3gcc4.8.2 -lnddscppz -lnddscz -lnddscorez -ldl -lnsl -lm -lpthread -lrt
g++ -m64 -static-libgcc -Wl,--no-as-needed   -o objs/x64Linux3gcc4.8.2/HelloMessage_publisher objs/x64Linux3gcc4.8.2/HelloMessage_publisher.o objs/x64Linux3gcc4.8.2/HelloMessageSupport.o objs/x64Linux3gcc4.8.2/HelloMessagePlugin.o objs/x64Linux3gcc4.8.2/HelloMessage.o -L"/home/fgarcia/rti_connext_dds-5.2.0"/lib/x64Linux3gcc4.8.2 -lnddscppz -lnddscz -lnddscorez -ldl -lnsl -lm -lpthread -lrt
fgarcia@ubuntu:~/test/hello$ ./objs/x64Linux3gcc4.8.2/HelloMessage_publisher 
Writing HelloMessage, count 0
Writing HelloMessage, count 1
Writing HelloMessage, count 2

I also know of people who have built the 5.2.0 code base on Fedora 23 (which I think includes GCC 5.3.1). I would like to undestand what could be happening in your scenario.

Thanks,
Fernando.

Fernando Garcia's picture
Offline
Last seen: 2 weeks 4 hours ago
Joined: 05/18/2011
Posts: 198

Hi robuser,

Are you using the Modern C++ API? I think I have been able to reproduce your problem generating an example for C++11 using rtiddsgen. Is this the same linker error you reported?:

g++ -m64 -static-libgcc -Wl,--no-as-needed   -o objs/x64Linux3gcc4.8.2/HelloMessage_subscriber objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o objs/x64Linux3gcc4.8.2/HelloMessageImplPlugin.o objs/x64Linux3gcc4.8.2/HelloMessageImpl.o objs/x64Linux3gcc4.8.2/HelloMessage.o -L"/home/fgarcia/rti_connext_dds-5.2.0"/lib/x64Linux3gcc4.8.2 -lnddscpp2z -lnddscz -lnddscorez -ldl -lnsl -lm -lpthread -lrt
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::core::Entity::assert_not_closed() const':
HelloMessage_subscriber.cxx:(.text._ZNK3rti4core6Entity17assert_not_closedEv[_ZNK3rti4core6Entity17assert_not_closedEv]+0x76): undefined reference to `dds::core::AlreadyClosedError::AlreadyClosedError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::LoanedSample::data() const':
HelloMessage_subscriber.cxx:(.text._ZNK3rti3sub12LoanedSampleI12HelloMessageE4dataEv[_ZNK3rti3sub12LoanedSampleI12HelloMessageE4dataEv]+0x72): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::topic::TopicImpl::TopicImpl(dds::domain::TDomainParticipant const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)':
HelloMessage_subscriber.cxx:(.text._ZN3rti5topic9TopicImplI12HelloMessageEC1ERKN3dds6domain18TDomainParticipantINS_6domain21DomainParticipantImplEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN3rti5topic9TopicImplI12HelloMessageEC1ERKN3dds6domain18TDomainParticipantINS_6domain21DomainParticipantImplEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0xb6): undefined reference to `rti::topic::UntypedTopicDescription::UntypedTopicDescription(std::pair<std::pair<dds_entityimpl*, bool="">, DDS_TopicDescriptionImpl*> const&, dds::domain::TDomainParticipant const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `std::pair<std::pair<dds_entityimpl*, bool="">, DDS_TopicDescriptionImpl*> rti::topic::detail::create_native_topic(dds::domain::TDomainParticipant const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, dds::core::TEntityQos const*, dds::topic::TopicListener*, dds::core::status::StatusMask const&)':
HelloMessage_subscriber.cxx:(.text._ZN3rti5topic6detail19create_native_topicI12HelloMessageEESt4pairIS4_IP14DDS_EntityImplbEP24DDS_TopicDescriptionImplERKN3dds6domain18TDomainParticipantINS_6domain21DomainParticipantImplEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESQ_PKNSB_4core10TEntityQosINS0_3qos12TopicQosImplEEEPNSB_5topic13TopicListenerIT_EERKNSR_6status10StatusMaskE[_ZN3rti5topic6detail19create_native_topicI12HelloMessageEESt4pairIS4_IP14DDS_EntityImplbEP24DDS_TopicDescriptionImplERKN3dds6domain18TDomainParticipantINS_6domain21DomainParticipantImplEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESQ_PKNSB_4core10TEntityQosINS0_3qos12TopicQosImplEEEPNSB_5topic13TopicListenerIT_EERKNSR_6status10StatusMaskE]+0x99): undefined reference to `rti::topic::detail::create_native_topic_untyped(dds::domain::TDomainParticipant const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, dds::core::TEntityQos const*, DDS_TopicListener*, dds::core::status::StatusMask const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::core::detail::RetainableType<rti::core::entity, 2ul="">::get_reference()':
HelloMessage_subscriber.cxx:(.text._ZN3rti4core6detail14RetainableTypeINS0_6EntityELm2EE13get_referenceEv[_ZN3rti4core6detail14RetainableTypeINS0_6EntityELm2EE13get_referenceEv]+0x82): undefined reference to `dds::core::AlreadyClosedError::AlreadyClosedError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::topic::detail::TopicListenerForwarder<dds::topic::topic<hellomessage, rti::topic::topicimpl="">, dds::topic::TopicListener >::inconsistent_topic_forward(void*, DDS_TopicWrapperI*, DDS_InconsistentTopicStatus const*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti5topic6detail22TopicListenerForwarderIN3dds5topic5TopicI12HelloMessageNS0_9TopicImplEEENS4_13TopicListenerIS6_EEE26inconsistent_topic_forwardEPvP17DDS_TopicWrapperIPK27DDS_InconsistentTopicStatus[_ZN3rti5topic6detail22TopicListenerForwarderIN3dds5topic5TopicI12HelloMessageNS0_9TopicImplEEENS4_13TopicListenerIS6_EEE26inconsistent_topic_forwardEPvP17DDS_TopicWrapperIPK27DDS_InconsistentTopicStatus]+0x7f): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::detail::DataReaderListenerForwarder<dds::sub::datareader<hellomessage, rti::sub::datareaderimpl="">, dds::sub::DataReaderListener >::requested_deadline_missed_forward(void*, DDS_DataReaderImpl*, DDS_RequestedDeadlineMissedStatus const*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE33requested_deadline_missed_forwardEPvP18DDS_DataReaderImplPK33DDS_RequestedDeadlineMissedStatus[_ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE33requested_deadline_missed_forwardEPvP18DDS_DataReaderImplPK33DDS_RequestedDeadlineMissedStatus]+0x85): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::detail::DataReaderListenerForwarder<dds::sub::datareader<hellomessage, rti::sub::datareaderimpl="">, dds::sub::DataReaderListener >::requested_incompatible_qos_forward(void*, DDS_DataReaderImpl*, DDS_RequestedIncompatibleQosStatus const*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE34requested_incompatible_qos_forwardEPvP18DDS_DataReaderImplPK34DDS_RequestedIncompatibleQosStatus[_ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE34requested_incompatible_qos_forwardEPvP18DDS_DataReaderImplPK34DDS_RequestedIncompatibleQosStatus]+0x8b): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::detail::DataReaderListenerForwarder<dds::sub::datareader<hellomessage, rti::sub::datareaderimpl="">, dds::sub::DataReaderListener >::sample_rejected_forward(void*, DDS_DataReaderImpl*, DDS_SampleRejectedStatus const*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE23sample_rejected_forwardEPvP18DDS_DataReaderImplPK24DDS_SampleRejectedStatus[_ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE23sample_rejected_forwardEPvP18DDS_DataReaderImplPK24DDS_SampleRejectedStatus]+0x8b): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::detail::DataReaderListenerForwarder<dds::sub::datareader<hellomessage, rti::sub::datareaderimpl="">, dds::sub::DataReaderListener >::liveliness_changed_forward(void*, DDS_DataReaderImpl*, DDS_LivelinessChangedStatus const*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE26liveliness_changed_forwardEPvP18DDS_DataReaderImplPK27DDS_LivelinessChangedStatus[_ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE26liveliness_changed_forwardEPvP18DDS_DataReaderImplPK27DDS_LivelinessChangedStatus]+0x8b): undefined reference to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o:HelloMessage_subscriber.cxx:(.text._ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE22data_available_forwardEPvP18DDS_DataReaderImpl[_ZN3rti3sub6detail27DataReaderListenerForwarderIN3dds3sub10DataReaderI12HelloMessageNS0_14DataReaderImplEEENS4_18DataReaderListenerIS6_EEE22data_available_forwardEPvP18DDS_DataReaderImpl]+0x6c): more undefined references to `dds::core::PreconditionNotMetError::PreconditionNotMetError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)' follow
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::core::detail::get_ptr_from_native_entity<rti::topic::topicimpl, DDS_TopicWrapperI>::do_it(DDS_TopicWrapperI*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti4core6detail26get_ptr_from_native_entityINS_5topic9TopicImplI12HelloMessageEE17DDS_TopicWrapperIE5do_itEPS7_[_ZN3rti4core6detail26get_ptr_from_native_entityINS_5topic9TopicImplI12HelloMessageEE17DDS_TopicWrapperIE5do_itEPS7_]+0xf9): undefined reference to `dds::core::InvalidDowncastError::InvalidDowncastError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::core::detail::get_ptr_from_native_entity<rti::sub::datareaderimpl, DDS_DataReaderImpl>::do_it(DDS_DataReaderImpl*)':
HelloMessage_subscriber.cxx:(.text._ZN3rti4core6detail26get_ptr_from_native_entityINS_3sub14DataReaderImplI12HelloMessageEE18DDS_DataReaderImplE5do_itEPS7_[_ZN3rti4core6detail26get_ptr_from_native_entityINS_3sub14DataReaderImplI12HelloMessageEE18DDS_DataReaderImplE5do_itEPS7_]+0xf9): undefined reference to `dds::core::InvalidDowncastError::InvalidDowncastError(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `rti::sub::DataReaderImpl::close()':
HelloMessage_subscriber.cxx:(.text._ZN3rti3sub14DataReaderImplI12HelloMessageE5closeEv[_ZN3rti3sub14DataReaderImplI12HelloMessageE5closeEv]+0x75): undefined reference to `rti::topic::is_builtin_topic(std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `dds::topic::TopicDescription<hellomessage, rti::topic::topicdescriptionimpl="">::name() const':
HelloMessage_subscriber.cxx:(.text._ZNK3dds5topic16TopicDescriptionI12HelloMessageN3rti5topic20TopicDescriptionImplEE4nameEv[_ZNK3dds5topic16TopicDescriptionI12HelloMessageN3rti5topic20TopicDescriptionImplEE4nameEv]+0x35): undefined reference to `rti::topic::UntypedTopicDescription::name[abi:cxx11]() const'
objs/x64Linux3gcc4.8.2/HelloMessage_subscriber.o: In function `dds::topic::TopicDescription<hellomessage, rti::topic::topicdescriptionimpl="">::type_name() const':
HelloMessage_subscriber.cxx:(.text._ZNK3dds5topic16TopicDescriptionI12HelloMessageN3rti5topic20TopicDescriptionImplEE9type_nameEv[_ZNK3dds5topic16TopicDescriptionI12HelloMessageN3rti5topic20TopicDescriptionImplEE9type_nameEv]+0x35): undefined reference to `rti::topic::UntypedTopicDescription::type_name[abi:cxx11]() const'
objs/x64Linux3gcc4.8.2/HelloMessage.o: In function `dds::topic::topic_type_support::register_type(dds::domain::TDomainParticipant&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&)':
HelloMessage.cxx:(.text+0x2b8): undefined reference to `rti::domain::register_type_plugin(dds::domain::TDomainParticipant&, std::__cxx11::basic_string<char, std::char_traits<char="">, std::allocator > const&, PRESTypePlugin* (*)(), void (*)(PRESTypePlugin*))'
collect2: error: ld returned 1 exit status
makefile_HelloMessage_x64Linux3gcc4.8.2:58: recipe for target 'objs/x64Linux3gcc4.8.2/HelloMessage_subscriber' failed
make: *** [objs/x64Linux3gcc4.8.2/HelloMessage_subscriber] Error 1

The developers I mentioned in my earlier post told me that building RTI Connext DDS from source GCC > 5 fixes the issue, but we are looking for interim solution given the fact currently there are no RTI Connext DDS libraries built wiht GCC > 5.

Massimo, are you using the Modern C++ API? If you are using the Traditional C++ API or other languages you should be able to work just fine with the libraries for Ubuntu 14.04 on Ubuntu 16.04.

I will keep you posted.

Thanks,
Fernando.

 

Offline
Last seen: 3 weeks 6 days ago
Joined: 04/02/2013
Posts: 116

That link error happens when you try to link libraries that have been compiled with gcc 4.x into an application that uses gcc 5.x.

Since we don't officially support gcc 5.x, yet, can you try this stackoverflow suggestion?

mpichini's picture
Offline
Last seen: 3 weeks 2 days ago
Joined: 09/16/2015
Posts: 27

Hello Fernando,

yes, I'm working with Modern C++. I think that we will stay on Ubuntu 14.04 until RTI does not release an official version that supports Ubuntu 16.04.

Is there any idea about when the next General Access Release of RTI Connext DDS (including support for Ubuntu 16.04 platform) will be available ?

kind regards

 

jwillemsen's picture
Offline
Last seen: 22 hours 22 min ago
Joined: 09/24/2013
Posts: 53

Hi,

You talk now about GCC 5.x but GCC 6.1 is already available and will be used by people soon.

Johnny

Fernando Garcia's picture
Offline
Last seen: 2 weeks 4 hours ago
Joined: 05/18/2011
Posts: 198

Hi Massimo,

Alex's workaround fixed my linking problems. I set the _GLIBCXX_USE_CXX11_ABI macro to 0 before including any other library header in both my publisher and subscriber applications and was able to link and run with no problem. Here's an example:

#define _GLIBCXX_USE_CXX11_ABI 0

#include <iostream>

#include <dds/pub/ddspub.hpp>
#include <rti/util/util.hpp> // for sleep()                                                                                                                   

#include "HelloMessage.hpp"

void publisher_main(int domain_id, int sample_count)

I am unsure of the consequences of using this macro when linking against other third party libraries that may have been built with a GCC > 5 compiler, but you could give it a shot.

Alternatively, you can upgrade to Ubuntu 16.04 and keep using GCC 4.8 to build your DDS applications like you do in 14.04. To install GCC 4.8 run:

$ sudo apt-get install gcc-4.8 g++-4.8

And then modify the makefile to use g++-4.8 as opposed to g++Note that you will need to recompile the object files before linking. 

COMPILER = g++-4.8
COMPILER_FLAGS = -m64 -Wall -std=c++0x
LINKER = g++-4.8
LINKER_FLAGS = -m64 -static-libgcc -Wl,--no-as-needed
SYSLIBS = -ldl -lnsl -lm -lpthread -lrt
DEFINES = -DRTI_UNIX -DRTI_LINUX -DRTI_64BIT 

As for the release date of the new version of RTI Connext DDS, I do not think it is settled yet, but I will ask around.

Let me know if any of these workarounds work for you.

Thanks,
Fernando.