Subject: client funcs in libmircommon

From: Daniel van Vugt <[email-masked]>
Date: Tue, 27 Jan 2015 11:50:49 +0800

We seem to have some client functions residing in libmircommon now...

That sounds reasonable at first but doesn't this prevent us from being 
able to bump the common ABI without breaking clients?

- Daniel

---

From: Christopher James Halse Rogers <[email-masked]>
Date: Wed, 28 Jan 2015 11:57:00 +1100

On Tue, Jan 27, 2015 at 2:50 PM, Daniel van Vugt 
<[email-masked]> wrote:
> That sounds reasonable at first but doesn't this prevent us from 
> being able to bump the common ABI without breaking clients?

No? They'll just link to libmirclient8. The old libmirclient8 will link 
to libmircommon3 and the new libmirclient8 will link to libmircommon4, 
and everything will work as expected.

---

From: Daniel van Vugt <[email-masked]>
Date: Wed, 28 Jan 2015 09:49:13 +0800

I forgot (and aren't totally sure) about indirect dependencies.

Although these client functions are obviously versioned, so even the 
indirect dependencies will point to funcname@@MIR_COMMON_3.x which 
sounds like it could become a problem for clients/toolkits rather 
quickly as we bump the common ABI.

---

From: Christopher James Halse Rogers <[email-masked]>
Date: Wed, 28 Jan 2015 12:55:20 +1100

> quickly as we bump the common ABI.

Just to be clear, we're not exporting anything that a client would be 
expected to directly call from libmircommon, right? The callstack might 
go client code→libmirclient→libmircommon, but never client 
code→libmircommon, right?

In which case the client code never references anything in 
libmircommon, it's symbol table contains nothing from libmircommon, and 
everything is handled by ld.so when libmirclient is loaded.

>>> being

---

From: Daniel van Vugt <[email-masked]>
Date: Wed, 28 Jan 2015 09:58:35 +0800

That's the point. Yes, we do now have a handful of client functions 
exported from libmircommon directly to (future) clients. So that's why I 
raised it...

On 28/01/15 09:55, Christopher James Halse Rogers wrote:
> In which case the client code never references anything in libmircommon,
> it's symbol table contains nothing from libmircommon, and everything is
> handled by ld.so when libmirclient is loaded.
>
>>
>>

---

From: Christopher James Halse Rogers <[email-masked]>
Date: Wed, 28 Jan 2015 13:17:39 +1100

Ah, ok. That would seem to be incorrect.

On Wed, Jan 28, 2015 at 12:58 PM, Daniel van Vugt 
<[email-masked]> wrote:
> exported from libmircommon directly to (future) clients. So that's 
> why I raised it...
> 
> 
>> libmircommon,