This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: upgrade problem
Ben Collins <bcollins@debian.org> writes:
[...]
> BTW, for the record, the patch I plan on using is attached. Note the other
> half of making it work is in the package install/upgrade scripts (which is
> of little concern to the list, so I wont bore anyone with it).
>
> Ben
--- glibc22/nss/nsswitch.c~ Fri Mar 31 15:38:32 2000
+++ glibc22/nss/nsswitch.c Thu Nov 9 17:28:45 2000
@@ -333,9 +333,20 @@
ni->library->lib_handle = __libc_dlopen (shlib_name);
if (ni->library->lib_handle == NULL)
{
- /* Failed to load the library. */
- ni->library->lib_handle = (void *) -1l;
- __set_errno (saved_errno);
+ /* Failed to load the library. Try a fallback. */
+ int n = __snprintf(shlib_name, shlen, "libnss_%s.so.%d.%d",
+ ni->library->name, __GLIBC__, __GLIBC_MINOR__);
With the current naming scheme, it should be:
+ int n = __snprintf(shlib_name, shlen, "libnss_%s-%d.%d.so",
+ ni->library->name, __GLIBC__, __GLIBC_MINOR__);
+ if (n >= shlen)
+ ni->library->lib_handle = NULL;
+ else
+ ni->library->lib_handle = __libc_dlopen (shlib_name);
+
+ if (ni->library->lib_handle == NULL)
+ {
+ /* Ok, really fail now. */
+ ni->library->lib_handle = (void *) -1l;
+ __set_errno (saved_errno);
+ }
}
}
--
Fred - May the source be with you