Re: undefined references in luminous for librados-devel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux