%bcond_with kernelheaders # use headers from kernel-headers instead of
# linux-libc-headers (evil, breakage etc., don't use)
%bcond_without dist_kernel # for above, allow non-distribution kernel
-%bcond_with nptl # use nptl instead of linuxthreads
+%bcond_with nptl # use nptl instead of linuxthreads (implies tls)
%bcond_with tls # use tls
%bcond_with tests # perform "make test"
# TODO:
# - localedb-gen man pages(?)
# - fix what trojan broke while upgreading (getaddrinfo-workaround)
-#
-# WARNING:
-# posix zoneinfo dir removed, /etc/rc.d/init.d/timezone must be changed
-# in order to use this version!
+# - math/{test-fenv,test-tgmath,test-float,test-ifloat},
+# linuxthreads/tst-cancel8, debug/backtrace-tst(SEGV) fail on alpha
#
%{!?min_kernel:%global min_kernel 2.4.6}
%if %{with nptl}
# it seems that nptl uses cmpxchgl (available since i486) on x86
-%ifarch i486 i586 i686 pentium3 pentium4 athlon amd64 ia64 s390 s390x sparcv9 ppc ppc64
+%ifarch i486 i586 i686 pentium3 pentium4 athlon amd64 ia64 alpha s390 s390x sparcv9 ppc ppc64
%if "%{min_kernel}" < "2.6.0"
%global min_kernel 2.6.0
%endif
+# NPTL requires TLS
+%define with_tls 1
%else
-%undefine with_nptl
+%undefine with_nptl
%endif
%endif
%if %{with tls}
-%ifnarch %{ix86} amd64 ia64 s390 s390x sparc sparcv9 ppc ppc64
-%undefine with_tls
+%ifnarch %{ix86} amd64 ia64 alpha s390 s390x sparc sparcv9 ppc ppc64
+%undefine with_tls
+%endif
%endif
+
+%ifarch sparc64
+%undefine with_memusage
%endif
-%define llh_version 7:2.6.4.0
-%define _snap 20040603
+%define llh_version 7:2.6.6.0
+%define _snap 20040722
Summary: GNU libc
Summary(de): GNU libc
Summary(uk): GNU libc ×ÅÒÓ¦§ 2.3
Name: glibc
Version: 2.3.4
-Release: 0.%{_snap}.1%{?with_nptl:+nptl}
+Release: 0.%{_snap}.2%{?with_nptl:+nptl}%{!?with_nptl:%{?with_tls:+tls}}
Epoch: 6
License: LGPL
Group: Libraries
#Source0: ftp://sources.redhat.com/pub/glibc/releases/%{name}-%{version}.tar.bz2
Source0: %{name}-%{_snap}.tar.bz2
-# Source0-md5: 8564ff95873944201e4bb6317ea070d6
+# Source0-md5: 492f7dbecb7f8e5c03d48dd5443a1e88
#Source1: ftp://sources.redhat.com/pub/glibc/releases/%{name}-linuxthreads-%{version}.tar.bz2
#Source1: %{name}-linuxthreads-2.3.3.tar.bz2
Source2: nscd.init
Patch13: %{name}-kernel_includes.patch
Patch14: %{name}-includes.patch
Patch15: %{name}-soinit-EH_FRAME.patch
-Patch17: %{name}-sparc-errno_fix.patch
-Patch18: %{name}-make.patch
-Patch20: %{name}-tests-noproc.patch
-Patch21: %{name}-linuxthreads-ppc-fix.patch
-Patch23: %{name}-new-charsets.patch
-Patch26: %{name}-sr_CS.patch
+Patch16: %{name}-sparc-errno_fix.patch
+Patch17: %{name}-csu-quotes.patch
+Patch18: %{name}-tests-noproc.patch
+Patch19: %{name}-new-charsets.patch
+Patch20: %{name}-sr_CS.patch
+Patch21: %{name}-sparc64-dl-machine.patch
+Patch22: %{name}-tzfile-noassert.patch
+Patch23: %{name}-ifreq.patch
+Patch24: %{name}-morelocales.patch
# PaX
Patch30: %{name}-pax_iconvconfig.patch
Patch31: %{name}-pax_dl-execstack.patch
URL: http://www.gnu.org/software/libc/
BuildRequires: automake
-BuildRequires: binutils >= 2.13.90.0.2
+BuildRequires: binutils >= 2.15.90.0.3
BuildRequires: gcc >= 3.2
%{?with_memusage:BuildRequires: gd-devel >= 2.0.1}
BuildRequires: gettext-devel >= 0.10.36
%define debugcflags -O1 -g
%ifarch sparc64
-%undefine with_memusage
%define specflags_sparc64 -mvis -fcall-used-g6
%define _libdir /usr/lib64
%endif
+# we don't want perl dependency in glibc-devel
+%define _noautoreqfiles %{_bindir}/mtrace
# hack: don't depend on rpmlib(PartialHardlinkSets) for easier upgrade from Ra
# (hardlinks here are unlikely to be "partial"... and rpm 4.0.2 from Ra was
# patched not to crash on partial hardlinks too)
Can be used on: Linux kernel >= %{min_kernel}.
%description -l es
-Contiene las bibliotecas estándared que son usadas por varios programas
-del sistema. Para ahorrar el espacio en el disco y la memoria, igual que
-para facilitar actualizaciones, código común del sistema se guarda en un
-sitio y es compartido entre los programas. Este paquete contiene las
-bibliotecas compartidas más importantes, es decir la biblioteca C estándar
-y la biblioteca estándar de matemática. Sin éstas, un sistema Linux no
-podrá funcionar. También está incluido soporte de idiomas nacionales
-(locale) y bases de datos de zona de tiempo.
+Contiene las bibliotecas estándared que son usadas por varios
+programas del sistema. Para ahorrar el espacio en el disco y la
+memoria, igual que para facilitar actualizaciones, código común del
+sistema se guarda en un sitio y es compartido entre los programas.
+Este paquete contiene las bibliotecas compartidas más importantes, es
+decir la biblioteca C estándar y la biblioteca estándar de matemática.
+Sin éstas, un sistema Linux no podrá funcionar. También está incluido
+soporte de idiomas nacionales (locale) y bases de datos de zona de
+tiempo.
Puede usarse con: núcleo Linux >= %{min_kernel}.
Summary(pl): Narzêdzia i dane u¿ywane przez glibc
Group: Development/Libraries
AutoReq: false
-Requires: %{name} = %{epoch}:%{version}-%{release}
+PreReq: %{name} = %{epoch}:%{version}-%{release}
%description misc
Utilities and data used by glibc.
und Objektdateien zum Erstellen der ausführbaren Programme.
%description devel -l es
-Para desarrollar programas que utilizan las bibliotecas C estándar
-(lo cual hacen prácticamente todos los programas), el sistema necesita
+Para desarrollar programas que utilizan las bibliotecas C estándar (lo
+cual hacen prácticamente todos los programas), el sistema necesita
disponer de estos ficheros de cabecera y de objetos para crear los
ejecutables.
nscd happens to hit these bugs particularly hard.
%description -n nscd -l es
-nscd guarda las peticiones del servicio de nombres en una caché; eso puede
-aumentar drásticamente las prestaciones de NIS+, y también puede ayudar
-con DNS. No puede usar nscd con núcleos 2.0, por contener éstos errores
-en el soporte de hilos. Resulta que estos errores impactan el nscd de manera
-realmente grave.
+nscd guarda las peticiones del servicio de nombres en una caché; eso
+puede aumentar drásticamente las prestaciones de NIS+, y también puede
+ayudar con DNS. No puede usar nscd con núcleos 2.0, por contener éstos
+errores en el soporte de hilos. Resulta que estos errores impactan el
+nscd de manera realmente grave.
%description -n nscd -l ja
Nscd ¤Ï¥Í¡¼¥à¥µ¡¼¥Ó¥¹»²¾È¤ò¥¥ã¥Ã¥·¥å¤·¡¢NIS+ ¤Î¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò
script (when database is generated, localedb-src can be uninstalled).
%description localedb-all -l es
-Este paquete contiene una base de datos de todos los locales soportados
-por glibc. En glibc 2.3.x ése es un fichero grande (aprox. 39 MB) -- si
-prefiere algo más pequeño, sólo con soporte de unos locales elegidos,
-considérese instalar localedb-src y regenerar la base de datos usando
-el escript localedb-gen (una vez que la base de datos esté creada,
-localedb-src se podrá desinstalar).
+Este paquete contiene una base de datos de todos los locales
+soportados por glibc. En glibc 2.3.x ése es un fichero grande (aprox.
+39 MB) -- si prefiere algo más pequeño, sólo con soporte de unos
+locales elegidos, considérese instalar localedb-src y regenerar la
+base de datos usando el escript localedb-gen (una vez que la base de
+datos esté creada, localedb-src se podrá desinstalar).
%description localedb-all -l pl
Ten pakiet zawiera bazê danych locale dla wszystkich lokalizacji
Summary(tr): Ölçüm desteði olan glibc
Summary(uk): GNU libc Ú Ð¦ÄÔÒÉÍËÏÀ ÐÒÏÆÁÊÌÅÒÁ
Group: Development/Libraries/Libc
-Obsoletes: libc-profile
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+Obsoletes: libc-profile
%description profile
When programs are being profiled using gprof, they must use these
library which is a smaller subset of the standard libc shared library.
%description pic -l es
-El archivo PIC de la biblioteca glibc contiene una biblioteca archivada
-(un fichero ar) compuesta de individuales objetos compartidos. Es usado
-para crear una biblioteca que sea un subconjunto más pequeño de la
-biblioteca libc compartida estándar.
+El archivo PIC de la biblioteca glibc contiene una biblioteca
+archivada (un fichero ar) compuesta de individuales objetos
+compartidos. Es usado para crear una biblioteca que sea un subconjunto
+más pequeño de la biblioteca libc compartida estándar.
%description pic -l pl
Archiwum PIC biblioteki GNU C zawiera archiwaln± bibliotekê (plik ar)
glibc NSS (Name Service Switch) module for NIS+ databases access.
%description -n nss_nisplus -l es
-Módulo NSS (Name Service Switch) de glibc para acceder las bases de datos NIS+.
+Módulo NSS (Name Service Switch) de glibc para acceder las bases de
+datos NIS+.
%description -n nss_nisplus -l pl
Modu³ glibc NSS (Name Service Switch) dostêpu do baz danych NIS+.
architecture.
%description -n %{name}64-devel -l es
-Ficheros de desarrollo para las bibliotecas GNU libc de 64 bits para la
-arquitectura 64bit.
+Ficheros de desarrollo para las bibliotecas GNU libc de 64 bits para
+la arquitectura 64bit.
%description -n %{name}64-devel -l pl
Pliki do programowania z u¿yciem 64-bitowych bibliotek GNU libc dla
%{?with_kernelheaders:%patch13}
%{?!with_kernelheaders:%patch14 -p1}
%patch15 -p1
-%patch17
+%patch16 -p0
+%patch17 -p1
%patch18 -p1
+%patch19 -p1
%patch20 -p1
%patch21 -p1
+%patch22 -p1
%patch23 -p1
-%patch26 -p1
+%patch24 -p1
%patch30 -p1
%patch31 -p1
%build
# Build glibc
-cp /usr/share/automake/config.sub .
-cp /usr/share/automake/config.sub scripts
+cp %{_datadir}/automake/config.sub .
+cp %{_datadir}/automake/config.sub scripts
%{__aclocal}
%{__autoconf}
# i786 (aka pentium4) hack
%endif
%if %{with kernelheaders}
CPPFLAGS="-I%{_kernelsrcdir}/include" \
- --with-headers=%{_kernelsrcdir}/include
+ --with-headers=%{_kernelsrcdir}/include
%else
CPPFLAGS="-I%{_includedir}" \
- --with-headers=%{_includedir}
+ --with-headers=%{_includedir}
%endif
# problem compiling with --enable-bounded (must be reported to libc-alpha)
%{__make} tests 2>&1 | awk '
BEGIN { file = "" }
{
- if (($0 ~ /\*\*\* \[.*\.out\] Error/) && (file == "")) {
+ if (($0 ~ /\*\*\* \[.*\.out\] Error/) && ($0 !~ /annexc/) && (file == "")) {
file=$0;
gsub(/.*\[/, NIL, file);
gsub(/\].*/, NIL, file);
# strip ld.so with --strip-debug only (other ELFs are stripped by rpm):
%ifnarch sparc64
-%{!?debug:strip -g -R .comment -R .note $RPM_BUILD_ROOT/%{_lib}/ld-%{version}.so}
+%{!?debug:strip -g -R .comment -R .note $RPM_BUILD_ROOT/%{_lib}/ld-*.so}
%endif
# Collect locale files and mark them with %%lang()
# bn is used for bn_BD or bn_IN?
# omitted here - already existing (with libc.mo):
# be,ca,cs,da,de,el,en_GB,es,fi,fr,gl,hr,hu,it,ja,ko,nb,nl,pl,pt_BR,sk,sv,tr,zh_CN,zh_TW
-for i in af am ar az bg bn br bs cy de_AT en en_AU eo es_AR es_MX et eu fa ga \
- gr he hi id is ja_JP.SJIS ka kn lg lt lv mk ml mn ms mt nn pt ro ru \
- se sl sq sr sr@Latn ta tg th uk uz vi wa xh yi zu ; do
+for i in af am ar az bg bn br bs cy de_AT en en_AU en_CA en_US eo es_AR es_MX \
+ et eu fa fo ga gu he hi ia id is ja_JP.SJIS ka kn leet lg li lo lt lv mi \
+ mk ml mn mr ms mt nds ne nn pa pt ro ru se sl sq sr sr@Latn sr@ije ta tg \
+ th uk uz vi wa xh yi zh_HK zu ; do
if [ ! -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES ]; then
install -d $RPM_BUILD_ROOT%{_datadir}/locale/$i/LC_MESSAGES
lang=`echo $i | sed -e 's/_.*//'`
echo "%lang($lang) %{_datadir}/locale/$i" >> ../glibc.lang
fi
done
+cd $RPM_BUILD_ROOT%{_datadir}/locale
+ln -s zh_CN zh_SG
+cd -
# localedb-gen infrastructure
install %{SOURCE7} $RPM_BUILD_ROOT%{_bindir}/localedb-gen
/sbin/ldconfig
-/sbin/telinit u
+%ifarch amd64
+%triggerpostun -n %{name}64 -p /sbin/postshell -- glibc-misc < 6:2.3.4-0.20040505.1
+%else
+%triggerpostun -p /sbin/postshell -- glibc-misc < 6:2.3.4-0.20040505.1
+%endif
+-/bin/mv %{_sysconfdir}/ld.so.conf.rpmsave %{_sysconfdir}/ld.so.conf
+
%post memusage -p /sbin/ldconfig
%postun memusage -p /sbin/ldconfig
%ifnarch sparc64
%ifarch amd64
%files -n glibc64
+%defattr(644,root,root,755)
%else
-%files
+%files
+%defattr(644,root,root,755)
%endif
%defattr(644,root,root,755)
%doc README NEWS FAQ BUGS
%attr(755,root,root) %{_bindir}/getent
%attr(755,root,root) %{_bindir}/iconv
%attr(755,root,root) %{_bindir}/ldd
-%ifnarch alpha ppc sparc64 amd64
+%ifnarch alpha amd64 ia64 ppc sparc64
%attr(755,root,root) %{_bindir}/lddlibc4
%endif
%attr(755,root,root) %{_bindir}/locale