[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