diff options
-rw-r--r-- | fedora/glibc.spec.in | 142 |
1 files changed, 84 insertions, 58 deletions
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index 413466eb4d..5b450d8bee 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -15,6 +15,7 @@ %endif %define rtkaioarches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x %define debuginfocommonarches %{ix86} alpha alphaev6 sparc sparcv9 sparcv9v sparc64 sparc64v +%define multiarcharches %{ix86} x86_64 %define _unpackaged_files_terminate_build 0 Summary: The GNU libc libraries @@ -63,12 +64,17 @@ BuildRequires: gcc >= 3.2 %endif # Need AS_NEEDED directive # Need --hash-style=* support +%ifarch %{multiarcharches} +# Need STT_IFUNC support +BuildRequires: binutils >= 2.19.51.0.10 +%else BuildRequires: binutils >= 2.17.50.0.2-5 +%endif BuildRequires: gcc >= 3.2.1-5 %ifarch ppc s390 s390x BuildRequires: gcc >= 4.1.0-0.17 %endif -%if "%{_enable_debug_packages}" == "1" +%if 0%{?_enable_debug_packages} BuildRequires: elfutils >= 0.72 BuildRequires: rpm >= 4.2-0.56 %endif @@ -102,7 +108,8 @@ Install glibc-xen if you might run your system under the Xen hypervisor. Summary: Object files for development using standard C libraries. Group: Development/Libraries Requires(pre): /sbin/install-info -Requires(pre): %{name}-headers = %{version}-%{release} +Requires(pre): %{name}-headers +Requires: %{name}-headers = %{version}-%{release} Requires: %{name} = %{version}-%{release} %description devel @@ -182,7 +189,7 @@ which can be helpful during program debugging. If unsure if you need this, don't install this package. -%if "%{_enable_debug_packages}" == "1" +%if 0%{?_enable_debug_packages} %define debug_package %{nil} %define __debug_install_post %{nil} %global __debug_package 1 @@ -323,6 +330,9 @@ CC="$GCC" CXX="$GXX" CFLAGS="$build_CFLAGS" ../configure --prefix=%{_prefix} \ --with-headers=%{_prefix}/include --enable-bind-now \ --with-tls --with-__thread --build %{nptl_target_cpu}-redhat-linux \ --host %{nptl_target_cpu}-redhat-linux \ +%ifarch %{multiarcharches} + --enable-multi-arch \ +%endif --disable-profile --enable-experimental-malloc --enable-nss-crypt make %{?_smp_mflags} -r CFLAGS="$build_CFLAGS" PARALLELMFLAGS=-s @@ -342,10 +352,10 @@ if [ "$platform" != power6 ]; then mkdir -p power6emul/{lib,lib64} $GCC -shared -O2 -fpic -o power6emul/%{_lib}/power6emul.so fedora/power6emul.c -Wl,-z,initfirst %ifarch ppc - echo '' | gcc -shared -nostdlib -O2 -fpic -m64 -o power6emul/lib64/power6emul.so -xc - + gcc -shared -nostdlib -O2 -fpic -m64 -o power6emul/lib64/power6emul.so -xc - </dev/null %endif %ifarch ppc64 - echo '' | gcc -shared -nostdlib -O2 -fpic -m32 -o power6emul/lib/power6emul.so -xc - + gcc -shared -nostdlib -O2 -fpic -m32 -o power6emul/lib/power6emul.so -xc - < /dev/null %endif export LD_PRELOAD=`pwd`/power6emul/\$LIB/power6emul.so fi @@ -554,40 +564,43 @@ rm -f $RPM_BUILD_ROOT/etc/gai.conf rm -f $RPM_BUILD_ROOT%{_sbindir}/rpcinfo # BUILD THE FILE LIST -find $RPM_BUILD_ROOT -type f -or -type l | - sed -e 's|.*/etc|%config &|' \ - -e 's|.*/gconv/gconv-modules$|%verify(not md5 size mtime) %config(noreplace) &|' \ - -e 's|.*/gconv/gconv-modules.cache|%verify(not md5 size mtime) &|' \ - -e '/lib\/debug/d' > rpm.filelist.in -for n in %{_prefix}/share %{_prefix}/include %{_prefix}/lib/locale; do - find ${RPM_BUILD_ROOT}${n} -type d | \ - grep -v '%{_prefix}/share$' | \ - grep -v '%{_infodir}' | \ - sed "s/^/%dir /" >> rpm.filelist.in -done - -# primary filelist -SHARE_LANG='s|.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo|%lang(\1) &|' -LIB_LANG='s|.*/lib/locale/\([^/_]\+\)|%lang(\1) &|' -# rpm does not handle %lang() tagged files hardlinked together accross -# languages very well, temporarily disable -LIB_LANG='' -sed -e "s|$RPM_BUILD_ROOT||" -e "$LIB_LANG" -e "$SHARE_LANG" < rpm.filelist.in | - grep -v '/etc/\(localtime\|nsswitch.conf\|ld.so.conf\|ld.so.cache\|default\)' | \ - grep -v '/%{_lib}/lib\(pcprofile\|memusage\).so' | \ - grep -v 'bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\)' | \ - sort > rpm.filelist +{ + find $RPM_BUILD_ROOT \( -type f -or -type l \) \ + \( \ + -name etc -printf "%%%%config " -o \ + -name gconv-modules \ + -printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " -o \ + -name gconv-modules.cache \ + -printf "%%%%verify(not md5 size mtime) " \ + , \ + ! -path "*/lib/debug" -printf "/%%P\n" \) + find $RPM_BUILD_ROOT -type d \ + \( -path '*%{_prefix}/share/*' ! -path '*%{_infodir}' -o \ + -path "*%{_prefix}/include/*" -o \ + -path "*%{_prefix}/lib/locale/*" \ + \) -printf "%%%%dir /%%P\n" +} | { + + # primary filelist + SHARE_LANG='s|.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo|%lang(\1) &|' + LIB_LANG='s|.*/lib/locale/\([^/_]\+\)|%lang(\1) &|' + # rpm does not handle %lang() tagged files hardlinked together accross + # languages very well, temporarily disable + LIB_LANG='' + sed -e "$LIB_LANG" -e "$SHARE_LANG" \ + -e '\,/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\),d' \ + -e '\,/%{_lib}/lib\(pcprofile\|memusage\)\.so,d' \ + -e '\,bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d' +} | sort > rpm.filelist mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{_lib} mv -f $RPM_BUILD_ROOT/%{_lib}/lib{pcprofile,memusage}.so $RPM_BUILD_ROOT%{_prefix}/%{_lib} for i in $RPM_BUILD_ROOT%{_prefix}/bin/{xtrace,memusage}; do - cp -a $i $i.tmp sed -e 's~=/%{_lib}/libpcprofile.so~=%{_prefix}/%{_lib}/libpcprofile.so~' \ -e 's~=/%{_lib}/libmemusage.so~=%{_prefix}/%{_lib}/libmemusage.so~' \ -e 's~='\''/\\\$LIB/libpcprofile.so~='\''%{_prefix}/\\$LIB/libpcprofile.so~' \ -e 's~='\''/\\\$LIB/libmemusage.so~='\''%{_prefix}/\\$LIB/libmemusage.so~' \ - $i.tmp > $i - chmod 755 $i; rm -f $i.tmp + -i $i done grep '%{_infodir}' < rpm.filelist | grep -v '%{_infodir}/dir' > devel.filelist @@ -597,9 +610,9 @@ grep '%{_prefix}/include' < rpm.filelist | egrep -v '%{_prefix}/include/(linuxthreads|gnu/stubs-[32164]+\.h)' \ > headers.filelist -mv rpm.filelist rpm.filelist.full -grep -v '%{_prefix}/%{_lib}/lib.*_p.a' rpm.filelist.full | - egrep -v "(%{_prefix}/include)|(%{_infodir})" > rpm.filelist +sed -i -e '\|%{_prefix}/%{_lib}/lib.*_p.a|d' \ + -e '\|%{_prefix}/include|d' \ + -e '\|%{_infodir}|d' rpm.filelist grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist \ | grep '/lib\(\(c\|pthread\|nldbl\)_nonshared\|bsd\(\|-compat\)\|g\|ieee\|mcheck\|rpcsvc\)\.a$' \ @@ -610,12 +623,11 @@ grep '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist \ grep '%{_prefix}/%{_lib}/.*\.o' < rpm.filelist >> devel.filelist grep '%{_prefix}/%{_lib}/lib.*\.so' < rpm.filelist >> devel.filelist -mv rpm.filelist rpm.filelist.full -grep -v '%{_prefix}/%{_lib}/lib.*\.a' < rpm.filelist.full | - grep -v '%{_prefix}/%{_lib}/.*\.o' | - grep -v '%{_prefix}/%{_lib}/lib.*\.so'| - grep -v '%{_prefix}/%{_lib}/linuxthreads' | - grep -v 'nscd' > rpm.filelist +sed -i -e '\|%{_prefix}/%{_lib}/lib.*\.a|d' \ + -e '\|%{_prefix}/%{_lib}/.*\.o|d' \ + -e '\|%{_prefix}/%{_lib}/lib.*\.so|d' \ + -e '\|%{_prefix}/%{_lib}/linuxthreads|d' \ + -e '\|nscd|d' rpm.filelist grep '%{_prefix}/bin' < rpm.filelist >> common.filelist #grep '%{_prefix}/lib/locale' < rpm.filelist | grep -v /locale-archive.tmpl >> common.filelist @@ -624,18 +636,16 @@ grep '%{_prefix}/sbin/[^gi]' < rpm.filelist >> common.filelist grep '%{_prefix}/share' < rpm.filelist | \ grep -v '%{_prefix}/share/zoneinfo' >> common.filelist -mv rpm.filelist rpm.filelist.full -grep -v '%{_prefix}/bin' < rpm.filelist.full | - grep -v '%{_prefix}/lib/locale' | - grep -v '%{_prefix}/libexec/pt_chown' | - grep -v '%{_prefix}/sbin/[^gi]' | - grep -v '%{_prefix}/share' > rpm.filelist +sed -i -e '\|%{_prefix}/bin|d' \ + -e '\|%{_prefix}/lib/locale|d' \ + -e '\|%{_prefix}/libexec/pt_chown|d' \ + -e '\|%{_prefix}/sbin/[^gi]|d' \ + -e '\|%{_prefix}/share|d' rpm.filelist > nosegneg.filelist %if %{xenpackage} grep '/%{_lib}/%{nosegneg_subdir}' < rpm.filelist >> nosegneg.filelist -mv rpm.filelist rpm.filelist.full -grep -v '/%{_lib}/%{nosegneg_subdir}' < rpm.filelist.full > rpm.filelist +sed -i -e '\|/%{_lib}/%{nosegneg_subdir}|d' rpm.filelist %endif echo '%{_prefix}/sbin/build-locale-archive' >> common.filelist @@ -757,7 +767,7 @@ ar rcs libpthread.a libpthread.o rm libpthread.o popd -%if "%{_enable_debug_packages}" == "1" +%if 0%{?_enable_debug_packages} # The #line directives gperf generates do not give the proper # file name relative to the build directory. @@ -781,7 +791,7 @@ find_debuginfo_args="$find_debuginfo_args \ list_debug_archives() { local dir=%{_prefix}/lib/debug%{_prefix}/%{_lib} - (cd $RPM_BUILD_ROOT; ls ${dir#/}/*.a) | sed 's,^,/,' + find $RPM_BUILD_ROOT$dir -name "*.a" -printf "$dir/%%P\n" } %ifarch %{debuginfocommonarches} @@ -797,10 +807,9 @@ list_debug_archives() %endif sed -i '\#^%{_prefix}/src/debug/#d' debuginfocommon.filelist -(cd $RPM_BUILD_ROOT%{_prefix}/src; find debug -type d) | -sed 's#^#%dir %{_prefix}/src/#' > debuginfocommon.sources -(cd $RPM_BUILD_ROOT%{_prefix}/src; find debug ! -type d) | -sed 's#^#%{_prefix}/src/#' >> debuginfocommon.sources +find $RPM_BUILD_ROOT%{_prefix}/src/debug \ + \( -type d -printf '%%%%dir ' \) , \ + -printf '%{_prefix}/src/debug/%%P\n' > debuginfocommon.sources # auxarches get only these few source files auxarches_debugsources=\ @@ -810,8 +819,7 @@ egrep "$auxarches_debugsources" debuginfocommon.sources >> debuginfo.filelist egrep -v "$auxarches_debugsources" \ debuginfocommon.sources >> debuginfocommon.filelist -%ifarch %{auxarches} -%else +%ifnarch %{auxarches} # non-aux arches when there is a debuginfo-common # all the sources go into debuginfo-common #cat debuginfocommon.sources >> debuginfocommon.filelist @@ -821,7 +829,8 @@ list_debug_archives >> debuginfocommon.filelist %else -list_debug_archives >> debuginfo.filelist +# already found by find-debuginfo +#list_debug_archives >> debuginfo.filelist %endif @@ -1000,7 +1009,7 @@ rm -f *.filelist* %ghost %config(missingok,noreplace) /etc/sysconfig/nscd %endif -%if "%{_enable_debug_packages}" == "1" +%if 0%{?_enable_debug_packages} %files debuginfo -f debuginfo.filelist %defattr(-,root,root) %ifarch %{debuginfocommonarches} @@ -1012,6 +1021,23 @@ rm -f *.filelist* %endif %changelog +* Thu Jun 26 2009 Andreas Schwab <aschwab@redhat.com> 2.10.90-1 +- Update from master. +- Enable multi-arch support on x86/x86-64. +- Add requires glibc-headers to glibc-devel (#476295). +- Implement second fallback mode for DNS requests (#505105). +- Don't generate invalid POSIX TZ string for Asia/Dhaka timezone (#506941). +- Allow backtrace through __longjmp_chk on powerpc. + +* Fri May 22 2009 Jakub Jelinek <jakub@redhat.com> 2.10.1-2 +- fix accept4 on architectures other than i?86/x86_64 +- robustify nscd client code during server GC +- fix up nscd segfaults during daemon shutdown +- fix memchr on ia64 (BZ#10162) +- replace the Sun RPC license with the BSD license, with the explicit + permission of Sun Microsystems +- fix up powerpc long double errno reporting + * Sun May 10 2009 Jakub Jelinek <jakub@redhat.com> 2.10.1-1 - fix up getsgent_r and getsgnam_r exports on i?86 and ppc |