Re: [PATCH rdma-core] verbs: Encode the private ABI version number in verbs_register_driver

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

 



On Fri, Sep 01, 2017 at 03:30:21PM -0500, Chien Tin Tung wrote:
> On Thu, Aug 24, 2017 at 04:56:01PM -0500, Jason Gunthorpe wrote:
> > This causes the symbol table to look like:
> > 
> >    208: 000000000000c000   142 FUNC    GLOBAL DEFAULT   13 verbs_register_driver_15@@IBVERBS_PRIVATE_15
> > 
> > Which encodes the expected private ABI version inside the symbol name
> > as well as with the symbol version.
> > 
> > This ensures that the ABI version is checked even if the linking
> > environment does not include symbol versions, for instance if an
> > end user is linking a provider static library to the system dynamic
> > libibverbs.
> > 
> > Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
> >  buildlib/config.h.in         |  1 +
> >  libibverbs/driver.h          | 11 +++++++++++
> >  libibverbs/libibverbs.map.in |  2 +-
> >  3 files changed, 13 insertions(+), 1 deletion(-)
> > 
> > Since Leon says people are using static provider libraries we should
> > do more to make sure they work right.
> 
> Jason,
> 
> Can you dumb this down for me?  I don't understand the provider static library part.
> Do you mean an application statically linking in a provider library and dynamically
> to libibverbs?

Yes.

> Why would someone do this?

Not sure. Leon said there was interest and the patch is simple.

Perhaps it makes sense when combined with libmlx5dv. Eg you could
build a middleware library that embeds the 'dv' library. Maybe turn on
LTO to gain some speed.

> Are there examples of this?

Compile rdma-core with -DENABLE_STATIC

>From memory, untested:
  $ gcc -o foo foo.o -Wl,--whole-archive -lmlx5dv

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux