Date: Mon, 5 Oct 2009 20:07:08 +0900 From: Alexander Nedotsukov <bland@freebsd.org> To: Doug Rabson <dfr@rabson.org> Cc: Doug Rabson <dfr@freebsd.org>, Rick Macklem <rmacklem@uoguelph.ca>, John Baldwin <john@baldwin.cx>, freebsd-current@freebsd.org, John Marshall <john.marshall@riverwillow.com.au>, George Mamalakis <mamalos@eng.auth.gr> Subject: Re: 8.0 Dynamic Linker Broken? (Was: [PATCH] SASL problems with spnego on 8.0-BETA4) Message-ID: <A0FFA199-F2D4-48D9-A01D-47D5E2D83CF3@freebsd.org> In-Reply-To: <0EA2E119-29DF-4DDE-84C3-432E35D61C76@rabson.org> References: <54ee35ff63fa25ea4c082134892835fb@mail> <0EA2E119-29DF-4DDE-84C3-432E35D61C76@rabson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Doug, I share your concerns about wrong libgssapi_foo usage. Do you see any possible drawbacks of: 3) Move libgssapi_foo into gssapi/libfoo_mech and link libgoo_mech against libgssapi Thanks, Alexander On 05.10.2009, at 16:29, Doug Rabson wrote: > This is the core of the problem, I think. There are two possible > solutions: > > 1. Link libgssapi_foo.so against libgssapi.so. I'm not a fan of this > because it will encourage people to link with libgssapi_krb5.so when > they really ought to be linking with libgssapi.so to give them > mechanism independance. > > 2. Split the various mechanism libs in to two parts, mech_foo.so > which will contain the actual mechanism implementation (this can > link with libgssapi.so to handle the RTLD_LOCAL issue) and > optionally libgssapi_foo.so to contain any mechanism-specific > extensions. > > Clearly (2) is unsuitable for 8.0 but could happen in current. I > guess we could use (1) as a band-aid fix for 8.0. > > On 5 Oct 2009, at 05:50, Alexander Nedotsukov wrote: > >> >> Actually this may mean quite otherwise. >> What I saying is if some code (eg. libsasl) dlopen() libgssapi as >> RTLD_LOCAL then later attempt to load libgssapi_xxx inside >> libgssapi may >> fail because of this: >> >> $ldd /usr/lib/libgssapi_spnego.so >> /usr/lib/libgssapi_spnego.so: >> libasn1.so.10 => /usr/lib/libasn1.so.10 (0x28300000) >> libc.so.7 => /lib/libc.so.7 (0x2808f000) >> >> I would expect to see libgssapi.so.10 dependency here. >> >> On Mon, 5 Oct 2009 10:07:20 +1100, John Marshall >> <john.marshall@riverwillow.com.au> wrote: >>> On Fri, 02 Oct 2009, 08:24 -0400, John Baldwin wrote: >>>> On Friday 02 October 2009 4:13:19 am John Marshall wrote: >>>>> On Tue, 22 Sep 2009, 08:22 +1000, John Marshall wrote: >>>>>> On Mon, 21 Sep 2009, 11:26 -0400, Rick Macklem wrote: >>>>>> >>> [snip] >>>>>>> >>>>>>> Now, hopefully someone who understands enough about dynamic >>>>>>> linking will >>>>>>> know if this is the correct fix for 8.0? (I'm going on a couple >> of >>>>>>> weeks >>>>>>> vacation at the end of this week, so I won't be around to commit >>>>>>> anything >>>>>>> and don't understand it well enough to know if this is the >> correct >>>>>>> way >>>>>>> to fix it.) >>>>>>> >>>>>>> So, hopefully someone else can pick this one up? >>>>>>> >>> [snip] >>>>>> >>>>>> I have submitted a patch to the FreeBSD Makefile which patches >>>>>> the >>>>>> vendor-supplied template for krb5-config. I should be grateful >>>>>> if >>>>>> dfr@ >>>>>> or another src committer would please review this with a view to >>>>>> obtaining re@ approval to commit it before 8.0-RC2. >>>>>> >>>>>> <http://www.freebsd.org/cgi/query-pr.cgi?pr=139037> >>>>> >>>>> Any src committers able to help with this? >>>> >>>> Hmmm, I thought that libgssapi was supposed to use dlopen to load >>>> the >>>> proper >>>> back-end libraries using /etc/gss/mech rather than having >>>> applications >>>> directly link against them. >>> >>> OK, so if my proposed solution is, in fact, only masking a symptom >>> of a >>> broken dynamic linker, would somebody who understands this stuff >>> please >>> weigh in on this with some debugging suggestions or with a patch to >>> address this problem? >>> >>> I'm able to help with testing but I'm not a programmer and know >>> nothing >>> about the FreeBSD dynamic linker. >>> >>> Thanks. > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org > "
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A0FFA199-F2D4-48D9-A01D-47D5E2D83CF3>