https://tracker.ceph.com/https://tracker.ceph.com/favicon.ico2016-02-17T15:06:59ZCeph Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660042016-02-17T15:06:59ZJoao Eduardo Luis
<ul><li><strong>Source</strong> changed from <i>other</i> to <i>Community (dev)</i></li></ul> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660072016-02-17T15:28:14ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>12</i></li><li><strong>Assignee</strong> set to <i>Kefu Chai</i></li></ul><p>so it sounds like a regression after introducing the <code>buffer::list::const_iterator</code>.</p> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660472016-02-18T02:42:53ZBrad Hubbardbhubbard@redhat.com
<ul></ul><p>What version is this?</p>
<p>That missing semicolon was fixed last year.</p>
<p>I can't reproduce this behaviour on master, can you Jesse?</p> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660502016-02-18T03:25:20ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Related to</strong> <i><a class="issue tracker-1 status-3 priority-5 priority-high3 closed" href="/issues/13429">Bug #13429</a>: bufferlist::iterator no longer ABI compatible</i> added</li></ul> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660522016-02-18T03:26:01ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Status</strong> changed from <i>12</i> to <i>New</i></li></ul><p>this reminds me of <a class="issue tracker-1 status-3 priority-5 priority-high3 closed" title="Bug: bufferlist::iterator no longer ABI compatible (Resolved)" href="https://tracker.ceph.com/issues/13429">#13429</a>.</p>
<p>turns out i was compiling with the header in my source repo, while linking against the packaged librados in system.</p> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660722016-02-18T07:09:31ZKefu Chaitchaikov@gmail.com
<ul></ul><p>if that's the case which Jesse ran into. it's because the new buffer.h is referencing the symbols of <code>buffer::list::iterator_impl<false>::*</code>. so, if the client code is compiled using the new header file, the resulting object code will need the (weak) symbols of <code>buffer::list::iterator_impl<false>::*</code>.</p>
<p>but if the client code is compiled using the old header file, it will linked just fine with the new library.</p>
<p>the <code>buffer::list::iterator_impl</code> template class was introduced when adding <code>list::const_iterator</code>, in hope to consolidate the shared bits of <code>list::const_iterator</code> and <code>list::iterator</code>. but it introduced some ABI incompatibilities. <a class="issue tracker-1 status-3 priority-5 priority-high3 closed" title="Bug: bufferlist::iterator no longer ABI compatible (Resolved)" href="https://tracker.ceph.com/issues/13429">#13429</a> addressed some of them by re-exposing the methods offered by <code>list::iterator</code> in hammer using their old symbol names (signatures). but it does not remove the dependency to the <code>buffer::list::iterator_impl</code> symbols.</p>
<p>i will try to add <code>__attribute__ ((visibility ("hidden")))</code> to the template to hide its symbol to see how it works.</p> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660732016-02-18T08:10:36ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Fix Under Review</i></li></ul><p><a class="external" href="https://github.com/ceph/ceph/pull/7688">https://github.com/ceph/ceph/pull/7688</a></p> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=660752016-02-18T08:25:23ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Backport</strong> set to <i>infernalis</i></li></ul> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=664552016-02-26T14:53:59ZKefu Chaitchaikov@gmail.com
<ul><li><strong>Status</strong> changed from <i>Fix Under Review</i> to <i>Pending Backport</i></li></ul> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=665022016-02-28T09:08:00ZNathan Cutlerncutler@suse.cz
<ul><li><strong>Copied to</strong> <i><a class="issue tracker-9 status-6 priority-4 priority-default closed" href="/issues/14916">Backport #14916</a>: infernalis: librados (C++) linker error (undefined reference)</i> added</li></ul> Ceph - Bug #14788: librados (C++) linker error (undefined reference)https://tracker.ceph.com/issues/14788?journal_id=760962016-08-08T08:31:08ZLoïc Dacharyloic@dachary.org
<ul><li><strong>Status</strong> changed from <i>Pending Backport</i> to <i>Resolved</i></li></ul>