[ofa-general] verbs abi_compat

Roland Dreier rdreier at cisco.com
Thu May 10 03:42:28 PDT 2007


 > It is set in that it is non-zero, but I agree, it has garbage in it...and
 > that's part of the problem. It is not being set in src/cmd.c, and has a
 > non-zero value. When I call ibv_alloc_pd, I'm ending up in
 > __ibv_alloc_pd_1_0 and that attempts to use context->real_context which is
 > non-zero garbage as well and I get a segmentation violation. The abi_compat
 > flag was what I thought was redirecting me into __ibv_alloc_pd_1_0 instead
 > of __ibv_alloc_pd (where it should be going).
 > 
 > So, maybe I asked the wrong question. Let me try a diff approach. What
 > determines if ibv_alloc_pd resolves to __ibv_alloc_pd_1_0 or __ibv_alloc_pd?
 > If I can find out what is redirecting my call to the "compat" code, maybe I
 > can stop it and resolve the problem.

abi_compat has nothing to do with __ibv_alloc_pd vs. __ibv_alloc_pd_1_0.
Rather, that choice is made based on whether your app is linked
against the IBVERBS_1.1 or IBVERBS_1.0 ABI.  If you link against the
new library, you should get all IBVERBS_1.1 symbols; if you link
against libibverbs 1.0, you should get all IBVERBS_1.1 symbols.

Your problem might be that your app is getting __ibv_alloc_pd_1_0, but
it gets __ibv_open_device instead of __ibv_open_device_1_0 so the
context passed into __ibv_alloc_pd_1_0 is wrong.  Are you possibly
relinking only part of your app or something?

 - R.



More information about the general mailing list