Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jun 2017 17:17:03 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Lewis Donzis <lew@perftech.com>
Cc:        Jilles Tjoelker <jilles@stack.nl>, Alexander Kabaev <kabaev@gmail.com>, deischen@freebsd.org, freebsd-arch@freebsd.org
Subject:   Re: mq on kqueue broken after upgrade to FreeBSD 11
Message-ID:  <20170614141703.GN2088@kib.kiev.ua>
In-Reply-To: <C6959811-CC61-4366-99A0-717ECDBDD998@perftech.com>
References:  <8A6CD0D3-C4D5-40DF-B2AD-4C454CC88AD1@perftech.com> <20160930094544.GP38409@kib.kiev.ua> <19A6EEAA-C68E-4DAD-B98F-4D904734BD8B@perftech.com> <20160930152006.GS38409@kib.kiev.ua> <20160930184418.1047afc2@kan> <20161001092515.GW38409@kib.kiev.ua> <20161001201655.GA91457@stack.nl> <20161001210722.GC38409@kib.kiev.ua> <C6959811-CC61-4366-99A0-717ECDBDD998@perftech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170614141703.GN2088>