Accepting request 533416 from Base:System

- nscd-libnsl.patch: Remove reference to libnsl from nscd (bsc#1062244)

- Drop glibc-obsolete
- glibc-2.3.90-noversion.diff: remove
- reinitialize-dl_load_write_lock.patch: remove (forwarded request 533414 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/533416
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=215
This commit is contained in:
Dominique Leuenberger 2017-10-20 12:38:22 +00:00 committed by Git OBS Bridge
commit e016749612
9 changed files with 225 additions and 216 deletions

View File

@ -1,57 +0,0 @@
Index: glibc-2.20/elf/rtld.c
===================================================================
--- glibc-2.20.orig/elf/rtld.c
+++ glibc-2.20/elf/rtld.c
@@ -1591,6 +1591,52 @@ ERROR: ld.so: object '%s' cannot be load
}
}
+#if defined(__i386__)
+ /*
+ * Modifications by Red Hat Software
+ *
+ * Deal with the broken binaries from the non-versioned ages of glibc.
+ * If a binary does not have version information enabled, we assume that
+ * it is a glibc 2.0 binary and we load a compatibility library to try to
+ * overcome binary incompatibilities.
+ * Blame: gafton@redhat.com
+ */
+#define LIB_NOVERSION "/lib/obsolete/noversion/libNoVersion.so.1"
+
+ if (__glibc_unlikely (main_map->l_info[DT_NUM + DT_THISPROCNUM
+ + DT_VERSIONTAGIDX (DT_VERNEED)]
+ == NULL)
+ && (main_map->l_info[DT_DEBUG] != 0
+ || !(GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)))
+ {
+ struct stat64 test_st;
+ int test_fd;
+ bool can_load;
+
+ HP_TIMING_NOW (start);
+
+ can_load = true;
+ test_fd = __open (LIB_NOVERSION, O_RDONLY);
+ if (test_fd < 0)
+ can_load = false;
+ else
+ {
+ if (__fxstat64 (_STAT_VER, test_fd, &test_st) < 0
+ || test_st.st_size == 0)
+ can_load = false;
+ __close(test_fd);
+ }
+
+ if (can_load)
+ npreloads += do_preload (LIB_NOVERSION, main_map,
+ "nonversioned binary");
+
+ HP_TIMING_NOW (stop);
+ HP_TIMING_DIFF (diff, start, stop);
+ HP_TIMING_ACCUM_NT (load_time, diff);
+ }
+#endif
+
if (__glibc_unlikely (*first_preload != NULL))
{
/* Set up PRELOADS with a vector of the preloaded libraries. */

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Tue Oct 10 15:47:05 UTC 2017 - schwab@suse.de
- nscd-libnsl.patch: Remove reference to libnsl from nscd (bsc#1062244)
-------------------------------------------------------------------
Mon Oct 9 08:03:28 UTC 2017 - schwab@suse.de
- Drop glibc-obsolete
- glibc-2.3.90-noversion.diff: remove
- reinitialize-dl_load_write_lock.patch: remove
-------------------------------------------------------------------
Wed Oct 4 12:14:30 UTC 2017 - schwab@suse.de

View File

@ -231,8 +231,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
Patch13: glibc-2.3.2.no_archive.diff
# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport
@ -295,6 +293,8 @@ Patch1010: dynarray-allocation.patch
Patch1011: nearbyint-inexact.patch
# PATCH-FIX-UPSTREAM Move nss_compat from nis to nss subdir and install it unconditionally
Patch1012: nss-compat.patch
# PATCH-FIX-UPSTREAM Remove reference to libnsl from nscd
Patch1013: nscd-libnsl.patch
###
# Patches awaiting upstream approval
@ -311,8 +311,6 @@ Patch2004: fnmatch-collating-elements.patch
Patch2005: nss-files-long-lines-2.patch
# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830)
Patch2006: iconv-reset-input-buffer.patch
# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282)
Patch2008: reinitialize-dl_load_write_lock.patch
# Non-glibc patches
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
@ -467,22 +465,6 @@ are not essential but recommend to use.
makedb: A program to create a database for nss
%package obsolete
Summary: Obsolete Shared Libraries from the GNU C Library
License: LGPL-2.0+
Group: System/Libraries
Requires: glibc = %{version}
%description obsolete
This package provides some old libraries from the GNU C Library which
are no longer supported. Additional it provides a compatibility library
for old binaries linked against glibc 2.0.
Install this package if you need one of this libraries to get old
binaries working, but since this libraries are not supported and there
is no gurantee that they work for you, you should try to get newer
versions of your software.
%prep
%setup -n glibc-%{version} -q -a 3 -a 4
# Owl crypt_blowfish
@ -507,7 +489,6 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
@ -537,6 +518,7 @@ rm nscd/s-stamp
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
%patch1013 -p1
%patch2000 -p1
%patch2001 -p1
@ -544,7 +526,6 @@ rm nscd/s-stamp
%patch2004 -p1
%patch2005 -p1
%patch2006 -p1
%patch2008 -p1
%patch3000
@ -646,9 +627,6 @@ add_ons=libidn
%if %{disable_assert}
BuildFlags="$BuildFlags -DNDEBUG=1"
%endif
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch mipsel
# fails to build otherwise - need to recheck and fix
%define enable_stackguard_randomization 0
@ -931,12 +909,6 @@ cc-base/elf/ldconfig -vn $destdir
# Create file list for glibc-locale package
%{find_lang} libc
# Prepare obsolete/, used only on some architectures:
export RPM_BUILD_ROOT
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete
%endif
# remove nsl compat library
rm -f %{buildroot}%{_libdir}/libnsl*
# part of libnsl-devel
@ -1002,17 +974,6 @@ mkdir -p %{buildroot}/var/cache/ldconfig
rm -f %{buildroot}/etc/ld.so.cache
touch %{buildroot}/etc/ld.so.cache
# libNoVersion belongs only to glibc-obsolete:
%ifarch %ix86
rm -f %{buildroot}%{_libdir}/libNoVersion*
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
%else
rm -f %{buildroot}/%{_lib}/libNoVersion*
%endif
%endif
# Don't look at ldd! We don't wish a /bin/sh requires
chmod 644 %{buildroot}%{_bindir}/ldd
@ -1286,12 +1247,6 @@ exit 0
%{_sbindir}/glibc_post_upgrade
%{_sbindir}/iconvconfig
%ifarch i586
%files obsolete
%defattr (755,root,root,755)
/%{_lib}/obsolete
%endif
%files locale -f libc.lang
%defattr(-,root,root)
%{_datadir}/locale/locale.alias

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Tue Oct 10 15:47:05 UTC 2017 - schwab@suse.de
- nscd-libnsl.patch: Remove reference to libnsl from nscd (bsc#1062244)
-------------------------------------------------------------------
Mon Oct 9 08:03:28 UTC 2017 - schwab@suse.de
- Drop glibc-obsolete
- glibc-2.3.90-noversion.diff: remove
- reinitialize-dl_load_write_lock.patch: remove
-------------------------------------------------------------------
Wed Oct 4 12:14:30 UTC 2017 - schwab@suse.de

View File

@ -231,8 +231,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
Patch13: glibc-2.3.2.no_archive.diff
# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport
@ -295,6 +293,8 @@ Patch1010: dynarray-allocation.patch
Patch1011: nearbyint-inexact.patch
# PATCH-FIX-UPSTREAM Move nss_compat from nis to nss subdir and install it unconditionally
Patch1012: nss-compat.patch
# PATCH-FIX-UPSTREAM Remove reference to libnsl from nscd
Patch1013: nscd-libnsl.patch
###
# Patches awaiting upstream approval
@ -311,8 +311,6 @@ Patch2004: fnmatch-collating-elements.patch
Patch2005: nss-files-long-lines-2.patch
# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830)
Patch2006: iconv-reset-input-buffer.patch
# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282)
Patch2008: reinitialize-dl_load_write_lock.patch
# Non-glibc patches
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
@ -467,22 +465,6 @@ are not essential but recommend to use.
makedb: A program to create a database for nss
%package obsolete
Summary: Obsolete Shared Libraries from the GNU C Library
License: LGPL-2.0+
Group: System/Libraries
Requires: glibc = %{version}
%description obsolete
This package provides some old libraries from the GNU C Library which
are no longer supported. Additional it provides a compatibility library
for old binaries linked against glibc 2.0.
Install this package if you need one of this libraries to get old
binaries working, but since this libraries are not supported and there
is no gurantee that they work for you, you should try to get newer
versions of your software.
%prep
%setup -n glibc-%{version} -q -a 3 -a 4
# Owl crypt_blowfish
@ -507,7 +489,6 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
@ -537,6 +518,7 @@ rm nscd/s-stamp
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
%patch1013 -p1
%patch2000 -p1
%patch2001 -p1
@ -544,7 +526,6 @@ rm nscd/s-stamp
%patch2004 -p1
%patch2005 -p1
%patch2006 -p1
%patch2008 -p1
%patch3000
@ -646,9 +627,6 @@ add_ons=libidn
%if %{disable_assert}
BuildFlags="$BuildFlags -DNDEBUG=1"
%endif
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch mipsel
# fails to build otherwise - need to recheck and fix
%define enable_stackguard_randomization 0
@ -931,12 +909,6 @@ cc-base/elf/ldconfig -vn $destdir
# Create file list for glibc-locale package
%{find_lang} libc
# Prepare obsolete/, used only on some architectures:
export RPM_BUILD_ROOT
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete
%endif
# remove nsl compat library
rm -f %{buildroot}%{_libdir}/libnsl*
# part of libnsl-devel
@ -1002,17 +974,6 @@ mkdir -p %{buildroot}/var/cache/ldconfig
rm -f %{buildroot}/etc/ld.so.cache
touch %{buildroot}/etc/ld.so.cache
# libNoVersion belongs only to glibc-obsolete:
%ifarch %ix86
rm -f %{buildroot}%{_libdir}/libNoVersion*
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
%else
rm -f %{buildroot}/%{_lib}/libNoVersion*
%endif
%endif
# Don't look at ldd! We don't wish a /bin/sh requires
chmod 644 %{buildroot}%{_bindir}/ldd
@ -1286,12 +1247,6 @@ exit 0
%{_sbindir}/glibc_post_upgrade
%{_sbindir}/iconvconfig
%ifarch i586
%files obsolete
%defattr (755,root,root,755)
/%{_lib}/obsolete
%endif
%files locale -f libc.lang
%defattr(-,root,root)
%{_datadir}/locale/locale.alias

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Tue Oct 10 15:47:05 UTC 2017 - schwab@suse.de
- nscd-libnsl.patch: Remove reference to libnsl from nscd (bsc#1062244)
-------------------------------------------------------------------
Mon Oct 9 08:03:28 UTC 2017 - schwab@suse.de
- Drop glibc-obsolete
- glibc-2.3.90-noversion.diff: remove
- reinitialize-dl_load_write_lock.patch: remove
-------------------------------------------------------------------
Wed Oct 4 12:14:30 UTC 2017 - schwab@suse.de

View File

@ -237,8 +237,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
Patch13: glibc-2.3.2.no_archive.diff
# PATCH-FIX-OPENSUSE -- add blacklist for bindresvport
@ -301,6 +299,8 @@ Patch1010: dynarray-allocation.patch
Patch1011: nearbyint-inexact.patch
# PATCH-FIX-UPSTREAM Move nss_compat from nis to nss subdir and install it unconditionally
Patch1012: nss-compat.patch
# PATCH-FIX-UPSTREAM Remove reference to libnsl from nscd
Patch1013: nscd-libnsl.patch
###
# Patches awaiting upstream approval
@ -317,8 +317,6 @@ Patch2004: fnmatch-collating-elements.patch
Patch2005: nss-files-long-lines-2.patch
# PATCH-FIX-UPSTREAM Fix iconv buffer handling with IGNORE error handler (BZ #18830)
Patch2006: iconv-reset-input-buffer.patch
# PATCH-FIX-UPSTREAM Reinitialize dl_load_write_lock on fork (BZ #19282)
Patch2008: reinitialize-dl_load_write_lock.patch
# Non-glibc patches
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
@ -473,22 +471,6 @@ are not essential but recommend to use.
makedb: A program to create a database for nss
%package obsolete
Summary: Obsolete Shared Libraries from the GNU C Library
License: LGPL-2.0+
Group: System/Libraries
Requires: glibc = %{version}
%description obsolete
This package provides some old libraries from the GNU C Library which
are no longer supported. Additional it provides a compatibility library
for old binaries linked against glibc 2.0.
Install this package if you need one of this libraries to get old
binaries working, but since this libraries are not supported and there
is no gurantee that they work for you, you should try to get newer
versions of your software.
%prep
%setup -n glibc-%{version} -q -a 3 -a 4
# Owl crypt_blowfish
@ -513,7 +495,6 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
@ -543,6 +524,7 @@ rm nscd/s-stamp
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
%patch1013 -p1
%patch2000 -p1
%patch2001 -p1
@ -550,7 +532,6 @@ rm nscd/s-stamp
%patch2004 -p1
%patch2005 -p1
%patch2006 -p1
%patch2008 -p1
%patch3000
@ -652,9 +633,6 @@ add_ons=libidn
%if %{disable_assert}
BuildFlags="$BuildFlags -DNDEBUG=1"
%endif
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch mipsel
# fails to build otherwise - need to recheck and fix
%define enable_stackguard_randomization 0
@ -937,12 +915,6 @@ cc-base/elf/ldconfig -vn $destdir
# Create file list for glibc-locale package
%{find_lang} libc
# Prepare obsolete/, used only on some architectures:
export RPM_BUILD_ROOT
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete
%endif
# remove nsl compat library
rm -f %{buildroot}%{_libdir}/libnsl*
# part of libnsl-devel
@ -1008,17 +980,6 @@ mkdir -p %{buildroot}/var/cache/ldconfig
rm -f %{buildroot}/etc/ld.so.cache
touch %{buildroot}/etc/ld.so.cache
# libNoVersion belongs only to glibc-obsolete:
%ifarch %ix86
rm -f %{buildroot}%{_libdir}/libNoVersion*
%ifarch i586
mkdir -p %{buildroot}/%{_lib}/obsolete/noversion
mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/
%else
rm -f %{buildroot}/%{_lib}/libNoVersion*
%endif
%endif
# Don't look at ldd! We don't wish a /bin/sh requires
chmod 644 %{buildroot}%{_bindir}/ldd
@ -1292,12 +1253,6 @@ exit 0
%{_sbindir}/glibc_post_upgrade
%{_sbindir}/iconvconfig
%ifarch i586
%files obsolete
%defattr (755,root,root,755)
/%{_lib}/obsolete
%endif
%files locale -f libc.lang
%defattr(-,root,root)
%{_datadir}/locale/locale.alias

180
nscd-libnsl.patch Normal file
View File

@ -0,0 +1,180 @@
2017-10-11 Andreas Schwab <schwab@suse.de>
* nis/Makefile (aux): Remove.
* nscd/Makefile (aux): Add nscd_hash.
(nscd-modules): Likewise.
($(objpfx)nscd): Don't depend on libnsl.
* nscd/nscd_hash.c: New file.
* nscd/nscd_hash.h: Likewise.
* nscd/cache.c: Include "nscd_hash.h" instead of <rpcsvc/nis.h>.
(cache_search, cache_add): Use __nscd_hash instead of __nis_hash.
* nscd/nscd_helper.c: Include <sys/param.h> and "nscd_hash.h"
instead of <nis/rpcsvc/nis.h>.
(__nscd_cache_search): Use __nscd_hash instead of __nis_hash.
Index: glibc-2.26/nis/Makefile
===================================================================
--- glibc-2.26.orig/nis/Makefile
+++ glibc-2.26/nis/Makefile
@@ -22,8 +22,6 @@ subdir := nis
include ../Makeconfig
-aux := nis_hash
-
ifeq ($(build-obsolete-nsl),yes)
headers := $(wildcard rpcsvc/*.[hx])
Index: glibc-2.26/nscd/Makefile
===================================================================
--- glibc-2.26.orig/nscd/Makefile
+++ glibc-2.26/nscd/Makefile
@@ -25,7 +25,7 @@ include ../Makeconfig
ifneq ($(use-nscd),no)
routines := nscd_getpw_r nscd_getgr_r nscd_gethst_r nscd_getai \
nscd_initgroups nscd_getserv_r nscd_netgroup
-aux := nscd_helper
+aux := nscd_helper nscd_hash
endif
# To find xmalloc.c
@@ -36,7 +36,7 @@ nscd-modules := nscd connections pwdcach
getsrvbynm_r getsrvbypt_r servicescache \
dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \
xmalloc xstrdup aicache initgrcache gai res_hconf \
- netgroupcache
+ netgroupcache nscd_hash
ifeq ($(build-nscd)$(have-thread-library),yesyes)
@@ -97,7 +97,7 @@ include $(patsubst %,$(..)libof-iterator
$(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o)
ifeq ($(build-shared),yes)
-$(objpfx)nscd: $(shared-thread-library) $(common-objpfx)nis/libnsl.so
+$(objpfx)nscd: $(shared-thread-library)
else
-$(objpfx)nscd: $(static-thread-library) $(common-objpfx)nis/libnsl.a
+$(objpfx)nscd: $(static-thread-library)
endif
Index: glibc-2.26/nscd/cache.c
===================================================================
--- glibc-2.26.orig/nscd/cache.c
+++ glibc-2.26/nscd/cache.c
@@ -25,7 +25,6 @@
#include <string.h>
#include <libintl.h>
#include <arpa/inet.h>
-#include <rpcsvc/nis.h>
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/stat.h>
@@ -33,6 +32,7 @@
#include "nscd.h"
#include "dbg_log.h"
+#include "nscd_hash.h"
/* Wrapper functions with error checking for standard functions. */
@@ -74,7 +74,7 @@ struct datahead *
cache_search (request_type type, const void *key, size_t len,
struct database_dyn *table, uid_t owner)
{
- unsigned long int hash = __nis_hash (key, len) % table->head->module;
+ unsigned long int hash = __nscd_hash (key, len) % table->head->module;
unsigned long int nsearched = 0;
struct datahead *result = NULL;
@@ -153,7 +153,7 @@ cache_add (int type, const void *key, si
first ? _(" (first)") : "");
}
- unsigned long int hash = __nis_hash (key, len) % table->head->module;
+ unsigned long int hash = __nscd_hash (key, len) % table->head->module;
struct hashentry *newp;
newp = mempool_alloc (table, sizeof (struct hashentry), 0);
Index: glibc-2.26/nscd/nscd_hash.c
===================================================================
--- /dev/null
+++ glibc-2.26/nscd/nscd_hash.c
@@ -0,0 +1,19 @@
+/* Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __nis_hash __nscd_hash
+#include <nis/nis_hash.c>
Index: glibc-2.26/nscd/nscd_hash.h
===================================================================
--- /dev/null
+++ glibc-2.26/nscd/nscd_hash.h
@@ -0,0 +1,21 @@
+/* Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+extern uint32_t __nscd_hash (const void *__keyarg, size_t __len)
+ attribute_hidden;
Index: glibc-2.26/nscd/nscd_helper.c
===================================================================
--- glibc-2.26.orig/nscd/nscd_helper.c
+++ glibc-2.26/nscd/nscd_helper.c
@@ -27,6 +27,7 @@
#include <unistd.h>
#include <stdint.h>
#include <sys/mman.h>
+#include <sys/param.h>
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/stat.h>
@@ -34,10 +35,10 @@
#include <sys/uio.h>
#include <sys/un.h>
#include <not-cancel.h>
-#include <nis/rpcsvc/nis.h>
#include <kernel-features.h>
#include "nscd-client.h"
+#include "nscd_hash.h"
/* Extra time we wait if the socket is still receiving data. This
@@ -451,7 +452,7 @@ struct datahead *
__nscd_cache_search (request_type type, const char *key, size_t keylen,
const struct mapped_database *mapped, size_t datalen)
{
- unsigned long int hash = __nis_hash (key, keylen) % mapped->head->module;
+ unsigned long int hash = __nscd_hash (key, keylen) % mapped->head->module;
size_t datasize = mapped->datasize;
ref_t trail = mapped->head->array[hash];

View File

@ -1,15 +0,0 @@
Index: glibc-2.22/sysdeps/nptl/fork.c
===================================================================
--- glibc-2.22.orig/sysdeps/nptl/fork.c
+++ glibc-2.22/sysdeps/nptl/fork.c
@@ -174,8 +174,9 @@ __libc_fork (void)
_IO_list_resetlock ();
}
- /* Reset the lock the dynamic loader uses to protect its data. */
+ /* Reset the locks the dynamic loader uses to protect its data. */
__rtld_lock_initialize (GL(dl_load_lock));
+ __rtld_lock_initialize (GL(dl_load_write_lock));
/* Run the handlers registered for the child. */
while (allp != NULL)