Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 15 Mar 2018 10:24:05 -0500
From: Thadeus Fleming <>
Subject: Re: How to test if dlclose is a no-op?

I'm working on improving a system that makes some bad assumptions
about dynamic unloading. While I'm not fond of dynamic unloading, I
think it might be valuable to be able to distinguish between "this C
library doesn't support unloading at all" and "if the planets are all
aligned, unloading might work." Testing if dlclose is a no-op would
allow me to make that distinction.

On Thu, Mar 15, 2018 at 9:40 AM, Rich Felker <> wrote:
> On Thu, Mar 15, 2018 at 08:32:34AM -0500, Thadeus Fleming wrote:
>> In the spirit of not “assum[ing] a certain implementation has
>> particular properties rather than testing,” how can one test if
>> dlclose is a no-op, as it is in musl, without breaking things if it
>> isn’t?
> This sounds like an XY problem¹. Do you care about whether you can
> recover virtual memory space, whether the underlying fs objects remain
> referenced, whether there's a cycle of dtors and ctors running, or
> something else?
> FYI there is no clear answer to the question even on other
> implementations. glibc only sometimes unloads; there are corner cases
> and race-type conditions where unloading is impossible for them. You
> really should not be designing around an assumption/requirement that
> anything get unloaded.
> Rich
> ¹

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.