This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC][BZ #14577] Unload failed modules even if nodelete is specified.
- From: Roland McGrath <roland at hack dot frob dot com>
- To: OndÅej BÃlka <neleai at seznam dot cz>
- Cc: libc-alpha at sourceware dot org
- Date: Thu, 31 Oct 2013 13:13:30 -0700 (PDT)
- Subject: Re: [RFC][BZ #14577] Unload failed modules even if nodelete is specified.
- Authentication-results: sourceware.org; auth=none
- References: <20131026084410 dot GA17601 at domone dot podge>
Needs a test case.
I don't see how that fix could be right. DF_1_NODELETE is not set until
after _dl_init is called (and sets l_init_called).
In fact, it looks to me like there may be a bug in the other direction.
That is, since DF_1_NODELETE is not set until after _dl_init, the
initializers themselves could cause a dlclose call that results in their
own removal. When RTLD_NODELETE was not requested, that would just be a
bug in the module itself. But with RTLD_NODELETE, the module has a
reasonable expectation that dlclose would be a no-op. Maybe you'd like to
write a test case for that scenario as well?