On Fri, Sep 15, 2017 at 7:40 AM, Noah Watkins <noahwatkins@xxxxxxxxx> wrote: > Yeh, thanks, I just noticed this: > > On the Fedora nodes the following works `c++ > -D_GLIBCXX_USE_CXX11_ABI=0 --std=c++11 -Wall test.cc -lrados`, and on > CentOS 7, either 0 or 1 works for the CXX11_ABI variable. > > The docs say "When defined to a non-zero value [the CXX11_ABI > variable] the library headers will use the new C++11-conforming ABI > introduced in GCC 5, rather than the older ABI introduced in GCC 3.4". > > Makes sense. I guess I expected issues like this to be filtered out / > caught through rpm magic. Know of any CMake magic macros that can turn > those flags on? You can try these if you want? https://copr.fedorainfracloud.org/coprs/badone/ceph-luminous/build/602668/ Not official of course, but probably (maybe?) better than what you're using now? > > On Thu, Sep 14, 2017 at 2:31 PM, Sage Weil <sage@xxxxxxxxxxxx> wrote: >> On Thu, 14 Sep 2017, Noah Watkins wrote: >>> Running into some undefined references linking against librados in >>> Luminous. Installed using RPM repo instructions from Ceph docs. Note >>> this issue shows up on Fedora 23,24,25, but not on CentOS 7. >> >> It looks a bit like these are C++ ABI differences because you are using >> el7 libraries on an fc25 box, which probably has a different >> version of gcc, libraries, etc? >> >> sage >> >> >>> # Test program >>> >>> [root@0ac98bfcffa2 build]# cat test.cc >>> #include <rados/librados.hpp> >>> >>> int main(int argc, char **argv) >>> { >>> librados::IoCtx ioctx; >>> return ioctx.create("foo", true); >>> } >>> >>> # Linking error >>> >>> [root@0ac98bfcffa2 build]# c++ --std=c++11 -Wall test.cc -lrados >>> /tmp/cc4MZnFR.o: In function `main': >>> test.cc:(.text+0x51): undefined reference to >>> `librados::IoCtx::create(std::__cxx11::basic_string<char, >>> std::char_traits<char>, std::allocator<char> > const&, bool)' >>> collect2: error: ld returned 1 exit status >>> >>> # Looks like everything is installed correctly. >>> >>> [root@0ac98bfcffa2 build]# librados-config --version >>> ceph version 12.2.0 (32ce2a3ae5239ee33d6150705cdb24d43bab910c) luminous (rc) >>> >>> [root@0ac98bfcffa2 build]# rpm -qa | grep 'rados\|ceph' >>> python-rados-12.2.0-0.el7.x86_64 >>> python-cephfs-12.2.0-0.el7.x86_64 >>> ceph-selinux-12.2.0-0.el7.x86_64 >>> ceph-osd-12.2.0-0.el7.x86_64 >>> librados2-12.2.0-0.el7.x86_64 >>> libradosstriper1-12.2.0-0.el7.x86_64 >>> ceph-base-12.2.0-0.el7.x86_64 >>> ceph-mds-12.2.0-0.el7.x86_64 >>> ceph-mon-12.2.0-0.el7.x86_64 >>> ceph-12.2.0-0.el7.x86_64 >>> libcephfs2-12.2.0-0.el7.x86_64 >>> ceph-common-12.2.0-0.el7.x86_64 >>> ceph-mgr-12.2.0-0.el7.x86_64 >>> librados-devel-12.2.0-0.el7.x86_64 >>> -- >>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in >>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >>> > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Cheers, Brad -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html