Re: rdma-core 12 breaks libibverbs ABI

Benjamin Drung
2017-01-31T15:06:11Z

Am Dienstag, den 31.01.2017, 13:23 +0100 schrieb Benjamin Drung:
> Am Donnerstag, den 26.01.2017, 09:35 -0800 schrieb Christoph Hellwig:
> > On Thu, Jan 26, 2017 at 10:13:25AM -0700, Jason Gunthorpe wrote:
> > > I missed asking for this when the ibv_cmd_create_ah@IBVERBS_1.4
> > > patch
> > > was merged, but before we release 13 we need to drop all the
> > > ibv_cmd_*
> > > entry points from the public headers so that nothing outside
> > > rdma-
> > > core
> > > can link to these symbols.
> >
> > A good thing would be to move all these symbols into a
> > @IBVERBS_PRIVATE
> > namespace, similar to what glibc does for it's internal library
> > only
> > exports.
>
> I am fine with moving the private symbols into a IBVERBS_PRIVATE_XX
> namespace as long as all consumers of the private symbols are build
> from the rdma-core source package. I need to check if there is a
> package in Debian that uses the private symbols.

I brought this question to the debian-devel mailing list:
https://lists.debian.org/debian-devel/2017/01/msg00791.html

One private feedback was that removing symbols without bumping the
soname is a really bad idea (even if they are private symbols). So one
option would be to bump the soname once and remove all private symbols
in that run.

I searched for "ibv_cmd_" in Debian's source code:
https://codesearch.debian.net/search?q=ibv_cmd_
It boils down to these source packages:

shipped by rdma-core
====================

* librdmacm
* libibverbs

provided by ibverbs-providers
=============================

* libcxgb3
* libmlx5
* libmthca
* libnes
* libipathverbs
* libmlx4

remaining
=========

* openmpi

openmpi uses ibv_cmd_open_xrcd in config/opal_check_openfabrics.m4:

# We have to check functions both exits *and* are declared
# since some distro ship broken ibverbs devel headers
# IBV_DEVICE_XRC is common to all OFED versions
# ibv_create_xrc_rcv_qp was added in OFED 1.3
# ibv_cmd_open_xrcd (aka XRC Domains) was added in  OFED 3.12

So I recommend to contact openmpi to let them change their configure
check to not check for ibv_cmd_open_xrcd any more.

--
Benjamin Drung
System Developer
Debian & Ubuntu Developer

ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin

Email: benjamin.drung-EIkl63zCoXaH+58JC4qpiA@public.gmane.org
URL: http://www.profitbricks.com

Sitz der Gesellschaft: Berlin.
Registergericht: Amtsgericht Charlottenburg, HRB 125506B.
Geschäftsführer: Andreas Gauger, Achim Weiss.