mq on kqueue broken after upgrade to FreeBSD 11
Lewis Donzis
lew at perftech.com
Wed Jun 14 19:23:59 UTC 2017
Ah, yes, I see that it's in 11.0-STABLE, but I suppose it's not in 11.0-RELEASE.
Thanks for that, we’ll either update to STABLE or just wait another month for 11.1-RELEASE.
Thanks,
lew
> On Jun 14, 2017, at 9:17 AM, Konstantin Belousov <kostikbel at gmail.com> wrote:
>
> On Wed, Jun 14, 2017 at 08:38:35AM -0500, Lewis Donzis wrote:
>> We had a discussion last October about __mq_oshandle() no longer being visible in FreeBSD 11, and I think the result was that it should be put back in the Symbol.map. There was also some discussion about renaming it.
>>
>> At the moment (11.0-RELEASE-p10), the function is still missing from librt.so.1, but is present in librt.a. What seems odd is that running ???make??? in /usr/src/lib/librt produces a librt.so.1 that *does* have this function.
>>
>> I???m curious as to how it???s possible that librt.a has the function but the released librt.so.1 does not have it, yet rebuilding from source does include the function?
>
> The versioning on librt was broken some time ago, but I think it was fixed
> before 11.0. Anyway, it works for me in HEAD and stable/11.
> librt.a, as any static library, does not support versioning so any symbol
> from the library can be accessed by linked code. This is one of the reasons
> why static linking is discouraged.
>
> It was decided that a symbol in the app-useable namespace must be officially
> exported from librt, and we export mq_getfd_np() for your purposes. Again,
> I am not sure was it done before 11.0 or after, but the symbol is definitely
> present in stable/11 and in upcoming 11.1.
More information about the freebsd-arch
mailing list