Re: [PATCH rdma-core] mlx5: Return pointer to CQ doorbell

Jason Gunthorpe
2017-08-24T15:00:45Z

On Thu, Aug 24, 2017 at 08:27:16AM +0300, Leon Romanovsky wrote:

> It is not complete output as I would expect to see. It doesn't have
> mlx5dv_init_obj (without explicit @MLX5_1.2). There is a need to declare default
> function name for the static linking has no knowledge of versions.

symver support and static linking in verbs has never worked properly,
we need to do more work overall to fix that..

Some common macros a bit of use of .alias will do the job, but nobody
has cared enough about static linking to do it. We shouldn't worry
about that now...

> The simplest approach which is used in whole rdma-core is just retain
> the original function name and the patch below on top of your patch
> achieves it.

Well, if this is the result you got:

> 99: 000000000000dab0 55 FUNC GLOBAL DEFAULT 13 mlx5dv_init_obj@MLX5_1.0
> 165: 000000000000dab0 55 FUNC LOCAL DEFAULT 13 __mlx5dv_init_obj_1_0
> 194: 000000000000d8f0 443 FUNC LOCAL DEFAULT 13 mlx5dv_init_obj
> 268: 000000000000dab0 55 FUNC GLOBAL DEFAULT 13 mlx5dv_init_obj@MLX5_1.0

Then changing the name totally broke the dynamic symbols.

Which is what I remember when I last tried to work on this (to avoid
having to specify a prototype for the __).

I concluded the linkers broke if there was a symbol in the link with
the same name as the versioned symbol when using _symver.