Accepting request 234224 from Base:System
- add non-elision-enabled libpthread (forwarded request 234223 from Andreas_Schwab) OBS-URL: https://build.opensuse.org/request/show/234224 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=173
This commit is contained in:
commit
e6e8ede87b
@ -5,18 +5,22 @@ Index: glibc-2.19/sysdeps/posix/getaddrinfo.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c
|
--- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c
|
||||||
+++ glibc-2.19/sysdeps/posix/getaddrinfo.c
|
+++ glibc-2.19/sysdeps/posix/getaddrinfo.c
|
||||||
@@ -710,6 +710,14 @@ gaih_inet (const char *name, const struc
|
@@ -712,6 +712,18 @@ gaih_inet (const char *name, const struc
|
||||||
struct gaih_addrtuple *addrfree = addrmem;
|
|
||||||
for (int i = 0; i < air->naddrs; ++i)
|
|
||||||
{
|
{
|
||||||
|
socklen_t size = (air->family[i] == AF_INET
|
||||||
|
? INADDRSZ : IN6ADDRSZ);
|
||||||
|
+
|
||||||
+ if (!((air->family[i] == AF_INET
|
+ if (!((air->family[i] == AF_INET
|
||||||
+ && req->ai_family == AF_INET6
|
+ && req->ai_family == AF_INET6
|
||||||
+ && (req->ai_flags & AI_V4MAPPED) != 0)
|
+ && (req->ai_flags & AI_V4MAPPED) != 0)
|
||||||
+ || req->ai_family == AF_UNSPEC
|
+ || req->ai_family == AF_UNSPEC
|
||||||
+ || air->family[i] == req->ai_family))
|
+ || air->family[i] == req->ai_family))
|
||||||
|
+ {
|
||||||
+ /* Skip over non-matching result. */
|
+ /* Skip over non-matching result. */
|
||||||
|
+ addrs += size;
|
||||||
+ continue;
|
+ continue;
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
socklen_t size = (air->family[i] == AF_INET
|
|
||||||
? INADDRSZ : IN6ADDRSZ);
|
|
||||||
if (*pat == NULL)
|
if (*pat == NULL)
|
||||||
|
{
|
||||||
|
*pat = addrfree++;
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 15 15:45:03 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- add non-elision-enabled libpthread
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 12 13:22:40 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ
|
||||||
|
#16932)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 7 10:13:24 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- getaddrinfo-uninit-result.patch: fix parsing of getai result for
|
||||||
|
IPv6-only request (bnc#876521)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -254,6 +254,8 @@ Patch1009: ibm-long-double-math.patch
|
|||||||
Patch1010: ibm-long-double-frexpl.patch
|
Patch1010: ibm-long-double-frexpl.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
||||||
Patch1011: aarch64-setcontext.patch
|
Patch1011: aarch64-setcontext.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932)
|
||||||
|
Patch1012: nss-nis-stack-use.patch
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
@ -480,6 +482,7 @@ rm nscd/s-stamp
|
|||||||
%patch1009 -p1
|
%patch1009 -p1
|
||||||
%patch1010 -p1
|
%patch1010 -p1
|
||||||
%patch1011 -p1
|
%patch1011 -p1
|
||||||
|
%patch1012 -p1
|
||||||
|
|
||||||
%patch2000 -p1
|
%patch2000 -p1
|
||||||
%patch2001 -p1
|
%patch2001 -p1
|
||||||
@ -623,17 +626,21 @@ configure_and_build_glibc() {
|
|||||||
profile="--enable-profile"
|
profile="--enable-profile"
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
elision=--enable-lock-elision
|
||||||
|
if [ "$dirname" = "noelision" ]; then
|
||||||
|
elision=--disable-lock-elision
|
||||||
|
fi
|
||||||
|
../configure \
|
||||||
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
||||||
CC="$BuildCC" CXX="$BuildCCplus" ../configure \
|
CC="$BuildCC" CXX="$BuildCCplus" \
|
||||||
--prefix=%{_prefix} \
|
--prefix=%{_prefix} \
|
||||||
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
||||||
--enable-add-ons=nptl$addons \
|
--enable-add-ons=nptl$addons \
|
||||||
$profile \
|
$profile $elision \
|
||||||
"$@" \
|
"$@" \
|
||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
--enable-lock-elision \
|
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
@ -695,6 +702,10 @@ configure_and_build_glibc() {
|
|||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
configure_and_build_glibc noelision "$BuildFlags" "$add_ons"
|
||||||
|
%endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build html documentation
|
# Build html documentation
|
||||||
#
|
#
|
||||||
@ -796,10 +807,9 @@ do
|
|||||||
else
|
else
|
||||||
cp -a ${lib}.so $destdir/$libbaseso
|
cp -a ${lib}.so $destdir/$libbaseso
|
||||||
fi
|
fi
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
cd ..
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install power-optimized glibc
|
# Install power-optimized glibc
|
||||||
@ -822,17 +832,23 @@ cd ..
|
|||||||
if test -d %{buildroot}/%{_lib}/power6; then
|
if test -d %{buildroot}/%{_lib}/power6; then
|
||||||
mkdir -p %{buildroot}/%{_lib}/power6x
|
mkdir -p %{buildroot}/%{_lib}/power6x
|
||||||
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
||||||
b=`basename $i`
|
b=$(basename $i)
|
||||||
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
||||||
libbase=${b%.so}
|
|
||||||
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
|
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
|
cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
cd cc-noelision
|
||||||
|
destdir=$RPM_BUILD_ROOT/%{_lib}/noelision
|
||||||
|
mkdir -p $destdir
|
||||||
|
install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so
|
||||||
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
|
%endif
|
||||||
|
|
||||||
# Install locales
|
# Install locales
|
||||||
%if %{build_locales}
|
%if %{build_locales}
|
||||||
# XXX Do not install locales in parallel!
|
# XXX Do not install locales in parallel!
|
||||||
@ -1181,6 +1197,9 @@ exit 0
|
|||||||
%{optimized_libs ppc-cell-be}
|
%{optimized_libs ppc-cell-be}
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
/%{_lib}/noelision
|
||||||
|
%endif
|
||||||
%dir %attr(0700,root,root) /var/cache/ldconfig
|
%dir %attr(0700,root,root) /var/cache/ldconfig
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%{_bindir}/gencat
|
%{_bindir}/gencat
|
||||||
@ -1201,10 +1220,7 @@ exit 0
|
|||||||
%ifarch i586
|
%ifarch i586
|
||||||
%files obsolete
|
%files obsolete
|
||||||
%defattr (755,root,root,755)
|
%defattr (755,root,root,755)
|
||||||
%dir /%{_lib}/obsolete/
|
/%{_lib}/obsolete
|
||||||
%dir /%{_lib}/obsolete/noversion
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion.so.1
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files locale -f libc.lang
|
%files locale -f libc.lang
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 15 15:45:03 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- add non-elision-enabled libpthread
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 12 13:22:40 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ
|
||||||
|
#16932)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 7 10:13:24 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- getaddrinfo-uninit-result.patch: fix parsing of getai result for
|
||||||
|
IPv6-only request (bnc#876521)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -253,6 +253,8 @@ Patch1009: ibm-long-double-math.patch
|
|||||||
Patch1010: ibm-long-double-frexpl.patch
|
Patch1010: ibm-long-double-frexpl.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
||||||
Patch1011: aarch64-setcontext.patch
|
Patch1011: aarch64-setcontext.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932)
|
||||||
|
Patch1012: nss-nis-stack-use.patch
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
@ -480,6 +482,7 @@ rm nscd/s-stamp
|
|||||||
%patch1009 -p1
|
%patch1009 -p1
|
||||||
%patch1010 -p1
|
%patch1010 -p1
|
||||||
%patch1011 -p1
|
%patch1011 -p1
|
||||||
|
%patch1012 -p1
|
||||||
|
|
||||||
%patch2000 -p1
|
%patch2000 -p1
|
||||||
%patch2001 -p1
|
%patch2001 -p1
|
||||||
@ -623,17 +626,21 @@ configure_and_build_glibc() {
|
|||||||
profile="--enable-profile"
|
profile="--enable-profile"
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
elision=--enable-lock-elision
|
||||||
|
if [ "$dirname" = "noelision" ]; then
|
||||||
|
elision=--disable-lock-elision
|
||||||
|
fi
|
||||||
|
../configure \
|
||||||
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
||||||
CC="$BuildCC" CXX="$BuildCCplus" ../configure \
|
CC="$BuildCC" CXX="$BuildCCplus" \
|
||||||
--prefix=%{_prefix} \
|
--prefix=%{_prefix} \
|
||||||
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
||||||
--enable-add-ons=nptl$addons \
|
--enable-add-ons=nptl$addons \
|
||||||
$profile \
|
$profile $elision \
|
||||||
"$@" \
|
"$@" \
|
||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
--enable-lock-elision \
|
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
@ -695,6 +702,10 @@ configure_and_build_glibc() {
|
|||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
configure_and_build_glibc noelision "$BuildFlags" "$add_ons"
|
||||||
|
%endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build html documentation
|
# Build html documentation
|
||||||
#
|
#
|
||||||
@ -796,10 +807,9 @@ do
|
|||||||
else
|
else
|
||||||
cp -a ${lib}.so $destdir/$libbaseso
|
cp -a ${lib}.so $destdir/$libbaseso
|
||||||
fi
|
fi
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
cd ..
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install power-optimized glibc
|
# Install power-optimized glibc
|
||||||
@ -822,17 +832,23 @@ cd ..
|
|||||||
if test -d %{buildroot}/%{_lib}/power6; then
|
if test -d %{buildroot}/%{_lib}/power6; then
|
||||||
mkdir -p %{buildroot}/%{_lib}/power6x
|
mkdir -p %{buildroot}/%{_lib}/power6x
|
||||||
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
||||||
b=`basename $i`
|
b=$(basename $i)
|
||||||
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
||||||
libbase=${b%.so}
|
|
||||||
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
|
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
|
cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
cd cc-noelision
|
||||||
|
destdir=$RPM_BUILD_ROOT/%{_lib}/noelision
|
||||||
|
mkdir -p $destdir
|
||||||
|
install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so
|
||||||
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
|
%endif
|
||||||
|
|
||||||
# Install locales
|
# Install locales
|
||||||
%if %{build_locales}
|
%if %{build_locales}
|
||||||
# XXX Do not install locales in parallel!
|
# XXX Do not install locales in parallel!
|
||||||
@ -1181,6 +1197,9 @@ exit 0
|
|||||||
%{optimized_libs ppc-cell-be}
|
%{optimized_libs ppc-cell-be}
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
/%{_lib}/noelision
|
||||||
|
%endif
|
||||||
%dir %attr(0700,root,root) /var/cache/ldconfig
|
%dir %attr(0700,root,root) /var/cache/ldconfig
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%{_bindir}/gencat
|
%{_bindir}/gencat
|
||||||
@ -1201,10 +1220,7 @@ exit 0
|
|||||||
%ifarch i586
|
%ifarch i586
|
||||||
%files obsolete
|
%files obsolete
|
||||||
%defattr (755,root,root,755)
|
%defattr (755,root,root,755)
|
||||||
%dir /%{_lib}/obsolete/
|
/%{_lib}/obsolete
|
||||||
%dir /%{_lib}/obsolete/noversion
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion.so.1
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files locale -f libc.lang
|
%files locale -f libc.lang
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 15 15:45:03 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- add non-elision-enabled libpthread
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 12 13:22:40 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ
|
||||||
|
#16932)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 7 10:13:24 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- getaddrinfo-uninit-result.patch: fix parsing of getai result for
|
||||||
|
IPv6-only request (bnc#876521)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
Thu Apr 17 09:13:32 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
44
glibc.spec
44
glibc.spec
@ -254,6 +254,8 @@ Patch1009: ibm-long-double-math.patch
|
|||||||
Patch1010: ibm-long-double-frexpl.patch
|
Patch1010: ibm-long-double-frexpl.patch
|
||||||
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
# PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629)
|
||||||
Patch1011: aarch64-setcontext.patch
|
Patch1011: aarch64-setcontext.patch
|
||||||
|
# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932)
|
||||||
|
Patch1012: nss-nis-stack-use.patch
|
||||||
|
|
||||||
###
|
###
|
||||||
# Patches awaiting upstream approval
|
# Patches awaiting upstream approval
|
||||||
@ -480,6 +482,7 @@ rm nscd/s-stamp
|
|||||||
%patch1009 -p1
|
%patch1009 -p1
|
||||||
%patch1010 -p1
|
%patch1010 -p1
|
||||||
%patch1011 -p1
|
%patch1011 -p1
|
||||||
|
%patch1012 -p1
|
||||||
|
|
||||||
%patch2000 -p1
|
%patch2000 -p1
|
||||||
%patch2001 -p1
|
%patch2001 -p1
|
||||||
@ -623,17 +626,21 @@ configure_and_build_glibc() {
|
|||||||
profile="--enable-profile"
|
profile="--enable-profile"
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
elision=--enable-lock-elision
|
||||||
|
if [ "$dirname" = "noelision" ]; then
|
||||||
|
elision=--disable-lock-elision
|
||||||
|
fi
|
||||||
|
../configure \
|
||||||
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \
|
||||||
CC="$BuildCC" CXX="$BuildCCplus" ../configure \
|
CC="$BuildCC" CXX="$BuildCCplus" \
|
||||||
--prefix=%{_prefix} \
|
--prefix=%{_prefix} \
|
||||||
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
--libexecdir=%{_libexecdir} --infodir=%{_infodir} \
|
||||||
--enable-add-ons=nptl$addons \
|
--enable-add-ons=nptl$addons \
|
||||||
$profile \
|
$profile $elision \
|
||||||
"$@" \
|
"$@" \
|
||||||
%if %{enable_stackguard_randomization}
|
%if %{enable_stackguard_randomization}
|
||||||
--enable-stackguard-randomization \
|
--enable-stackguard-randomization \
|
||||||
%endif
|
%endif
|
||||||
--enable-lock-elision \
|
|
||||||
--build=%{target} --host=%{target} \
|
--build=%{target} --host=%{target} \
|
||||||
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
|
||||||
--enable-multi-arch \
|
--enable-multi-arch \
|
||||||
@ -695,6 +702,10 @@ configure_and_build_glibc() {
|
|||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
configure_and_build_glibc noelision "$BuildFlags" "$add_ons"
|
||||||
|
%endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build html documentation
|
# Build html documentation
|
||||||
#
|
#
|
||||||
@ -796,10 +807,9 @@ do
|
|||||||
else
|
else
|
||||||
cp -a ${lib}.so $destdir/$libbaseso
|
cp -a ${lib}.so $destdir/$libbaseso
|
||||||
fi
|
fi
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
cd ..
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install power-optimized glibc
|
# Install power-optimized glibc
|
||||||
@ -822,17 +832,23 @@ cd ..
|
|||||||
if test -d %{buildroot}/%{_lib}/power6; then
|
if test -d %{buildroot}/%{_lib}/power6; then
|
||||||
mkdir -p %{buildroot}/%{_lib}/power6x
|
mkdir -p %{buildroot}/%{_lib}/power6x
|
||||||
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
for i in %{buildroot}/%{_lib}/power6/*.so; do
|
||||||
b=`basename $i`
|
b=$(basename $i)
|
||||||
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b
|
||||||
libbase=${b%.so}
|
|
||||||
libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so)
|
|
||||||
# Emulate ldconfig
|
|
||||||
ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*)
|
|
||||||
done
|
done
|
||||||
|
cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
cd cc-noelision
|
||||||
|
destdir=$RPM_BUILD_ROOT/%{_lib}/noelision
|
||||||
|
mkdir -p $destdir
|
||||||
|
install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so
|
||||||
|
cd ..
|
||||||
|
cc-base/elf/ldconfig -vn $destdir
|
||||||
|
%endif
|
||||||
|
|
||||||
# Install locales
|
# Install locales
|
||||||
%if %{build_locales}
|
%if %{build_locales}
|
||||||
# XXX Do not install locales in parallel!
|
# XXX Do not install locales in parallel!
|
||||||
@ -1181,6 +1197,9 @@ exit 0
|
|||||||
%{optimized_libs ppc-cell-be}
|
%{optimized_libs ppc-cell-be}
|
||||||
%endif
|
%endif
|
||||||
%endif # optimize_power
|
%endif # optimize_power
|
||||||
|
%ifarch i686 x86_64
|
||||||
|
/%{_lib}/noelision
|
||||||
|
%endif
|
||||||
%dir %attr(0700,root,root) /var/cache/ldconfig
|
%dir %attr(0700,root,root) /var/cache/ldconfig
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%{_bindir}/gencat
|
%{_bindir}/gencat
|
||||||
@ -1201,10 +1220,7 @@ exit 0
|
|||||||
%ifarch i586
|
%ifarch i586
|
||||||
%files obsolete
|
%files obsolete
|
||||||
%defattr (755,root,root,755)
|
%defattr (755,root,root,755)
|
||||||
%dir /%{_lib}/obsolete/
|
/%{_lib}/obsolete
|
||||||
%dir /%{_lib}/obsolete/noversion
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so
|
|
||||||
/%{_lib}/obsolete/noversion/libNoVersion.so.1
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files locale -f libc.lang
|
%files locale -f libc.lang
|
||||||
|
111
nss-nis-stack-use.patch
Normal file
111
nss-nis-stack-use.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
2014-05-12 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
[BZ #16932]
|
||||||
|
* nis/nss_nis/nis-hosts.c (internal_gethostbyname2_r)
|
||||||
|
(_nss_nis_gethostbyname4_r): Return error if item length is larger
|
||||||
|
than maximum RPC packet size.
|
||||||
|
* nis/nss_nis/nis-initgroups.c (initgroups_netid): Likewise.
|
||||||
|
* nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Likewise.
|
||||||
|
* nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r)
|
||||||
|
(_nss_nis_getservbyport_r): Likewise.
|
||||||
|
|
||||||
|
Index: glibc-2.19/nis/nss_nis/nis-hosts.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/nis/nss_nis/nis-hosts.c
|
||||||
|
+++ glibc-2.19/nis/nss_nis/nis-hosts.c
|
||||||
|
@@ -270,6 +270,13 @@ internal_gethostbyname2_r (const char *n
|
||||||
|
|
||||||
|
/* Convert name to lowercase. */
|
||||||
|
size_t namlen = strlen (name);
|
||||||
|
+ /* Limit name length to the maximum size of an RPC packet. */
|
||||||
|
+ if (namlen > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
char name2[namlen + 1];
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
@@ -461,6 +468,13 @@ _nss_nis_gethostbyname4_r (const char *n
|
||||||
|
|
||||||
|
/* Convert name to lowercase. */
|
||||||
|
size_t namlen = strlen (name);
|
||||||
|
+ /* Limit name length to the maximum size of an RPC packet. */
|
||||||
|
+ if (namlen > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
char name2[namlen + 1];
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
Index: glibc-2.19/nis/nss_nis/nis-initgroups.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/nis/nss_nis/nis-initgroups.c
|
||||||
|
+++ glibc-2.19/nis/nss_nis/nis-initgroups.c
|
||||||
|
@@ -150,6 +150,13 @@ initgroups_netid (uid_t uid, gid_t group
|
||||||
|
gid_t **groupsp, long int limit, int *errnop,
|
||||||
|
const char *domainname)
|
||||||
|
{
|
||||||
|
+ /* Limit domainname length to the maximum size of an RPC packet. */
|
||||||
|
+ if (strlen (domainname) > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Prepare the key. The form is "unix.UID@DOMAIN" with the UID and
|
||||||
|
DOMAIN field filled in appropriately. */
|
||||||
|
char key[sizeof ("unix.@") + sizeof (uid_t) * 3 + strlen (domainname)];
|
||||||
|
Index: glibc-2.19/nis/nss_nis/nis-network.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/nis/nss_nis/nis-network.c
|
||||||
|
+++ glibc-2.19/nis/nss_nis/nis-network.c
|
||||||
|
@@ -179,6 +179,13 @@ _nss_nis_getnetbyname_r (const char *nam
|
||||||
|
|
||||||
|
/* Convert name to lowercase. */
|
||||||
|
size_t namlen = strlen (name);
|
||||||
|
+ /* Limit name length to the maximum size of an RPC packet. */
|
||||||
|
+ if (namlen > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
char name2[namlen + 1];
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
Index: glibc-2.19/nis/nss_nis/nis-service.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/nis/nss_nis/nis-service.c
|
||||||
|
+++ glibc-2.19/nis/nss_nis/nis-service.c
|
||||||
|
@@ -271,6 +271,13 @@ _nss_nis_getservbyname_r (const char *na
|
||||||
|
/* If the protocol is given, we could try if our NIS server knows
|
||||||
|
about services.byservicename map. If yes, we only need one query. */
|
||||||
|
size_t keylen = strlen (name) + (protocol ? 1 + strlen (protocol) : 0);
|
||||||
|
+ /* Limit key length to the maximum size of an RPC packet. */
|
||||||
|
+ if (keylen > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
char key[keylen + 1];
|
||||||
|
|
||||||
|
/* key is: "name/proto" */
|
||||||
|
@@ -355,6 +362,13 @@ _nss_nis_getservbyport_r (int port, cons
|
||||||
|
Otherwise try first port/tcp, then port/udp and then fallback
|
||||||
|
to sequential scanning of services.byname. */
|
||||||
|
const char *proto = protocol != NULL ? protocol : "tcp";
|
||||||
|
+ /* Limit protocol name length to the maximum size of an RPC packet. */
|
||||||
|
+ if (strlen (proto) > UDPMSGSIZE)
|
||||||
|
+ {
|
||||||
|
+ *errnop = ERANGE;
|
||||||
|
+ return NSS_STATUS_UNAVAIL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
do
|
||||||
|
{
|
||||||
|
/* key is: "port/proto" */
|
Loading…
Reference in New Issue
Block a user