This commit is contained in:
Jakub Jelinek 2005-04-04 19:51:39 +00:00
parent a2deec0522
commit ced11a0e35
2 changed files with 133 additions and 82 deletions

View File

@ -3265,3 +3265,95 @@
- exp2l;
- }
-}
--- libc/fedora/glibc_post_upgrade.c 2004-12-20 08:56:38.000000000 +0100
+++ libc/fedora/glibc_post_upgrade.c 2005-04-04 21:47:19.000000000 +0200
@@ -30,10 +30,8 @@ __attribute__((noinline)) int check_elf
int
main (void)
{
- int rerun_ldconfig = 0, rerun_cnt = 0;
char initpath[256];
-#ifdef __i386__
char buffer[4096];
struct pref {
char *p;
@@ -44,10 +42,10 @@ main (void)
int i, j, fd;
off_t base;
ssize_t ret;
-#ifdef ARCH_386
- const char *remove_dirs[] = { "/lib/i686", "/lib/tls" };
+#ifdef __i386__
+ const char *remove_dirs[] = { "/lib/tls", "/lib/i686", "/lib/tls/i486", "/lib/tls/i586", "/lib/tls/i686" };
#else
- const char *remove_dirs[] = { "/lib/tls/i686" };
+ const char *remove_dirs[] = { "/lib/tls" };
#endif
for (j = 0; j < sizeof (remove_dirs) / sizeof (remove_dirs[0]); ++j)
{
@@ -83,7 +81,6 @@ main (void)
close (fd);
}
}
-#endif
int ldsocfd = open (LD_SO_CONF, O_RDONLY);
struct stat ldsocst;
@@ -111,51 +108,11 @@ main (void)
close (ldsocfd);
}
- do
- {
- char linkbuf[64], *linkp;
- int linklen;
-
- /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
- before running one of the lib's %post scriptlet. /sbin/ldconfig will
- then be run by the other arch's %post. */
- if (access ("/sbin/ldconfig", X_OK))
- break;
-
- verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig");
-
- rerun_ldconfig = 0;
-#ifdef LIBTLS
- linkp = linkbuf + strlen (LIBTLS);
- linklen = readlink (LIBTLS "librt.so.1", linkp,
- sizeof (linkbuf) - 1 - strlen (LIBTLS));
- if (linklen == strlen ("librtkaio-2.3.X.so")
- && memcmp (linkp, "librtkaio-2.3.", 14) == 0
- && strchr ("23", linkp[14])
- && memcmp (linkp + 15, ".so", 4) == 0)
- {
- memcpy (linkbuf, LIBTLS, strlen (LIBTLS));
- unlink (linkbuf);
- rerun_ldconfig = 1;
- }
-#endif
-
-#ifdef __i386__
- linkp = linkbuf + strlen ("/lib/i686/");
- linklen = readlink ("/lib/i686/librt.so.1", linkp,
- sizeof (linkbuf) - 1 - strlen ("/lib/i686/"));
- if (linklen == strlen ("librtkaio-2.3.X.so")
- && memcmp (linkp, "librtkaio-2.3.", 14) == 0
- && strchr ("23", linkp[14])
- && memcmp (linkp + 15, ".so", 4) == 0)
- {
- memcpy (linkbuf, "/lib/i686/", strlen ("/lib/i686/"));
- unlink (linkbuf);
- rerun_ldconfig = 1;
- }
-#endif
- }
- while (rerun_ldconfig && ++rerun_cnt < 2);
+ /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files
+ before running one of the lib's %post scriptlet. /sbin/ldconfig will
+ then be run by the other arch's %post. */
+ if (! access ("/sbin/ldconfig", X_OK))
+ verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig");
if (! utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL))
{

View File

@ -1,7 +1,7 @@
%define glibcdate 20050401T1444
%define glibcname glibc
%define glibcversion 2.3.4
%define glibcrelease 19
%define glibcrelease 20
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define prelinkarches noarch
%define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@ -68,10 +68,8 @@ Conflicts: kernel < 2.4.19
%define enablekernelnptl 2.4.20
%ifarch i386
%define nptl_target_cpu i486
%define tls_subdir tls/i486
%else
%define nptl_target_cpu %{_target_cpu}
%define tls_subdir tls
%endif
%endif
# Need AS_NEEDED directive
@ -157,7 +155,10 @@ Autoreq: true
%description -n linuxthreads-devel
The linuxthreads-devel package contains the header and object files necessary
for developing programs which can use the LinuxThreads library (normally
newly linked programs will work only with NPTL).
newly linked programs will work only with NPTL). To compile and link
a program against LinuxThreads libraries, use
-I/usr/include/linuxthreads -L/usr/%{_lib}/linuxthreads \\
-Wl,-rpath-link,/usr/%{_lib}/linuxthreads
%endif
%package profile
@ -614,7 +615,11 @@ SubDir=
%ifarch i686 athlon
cd build-%{_target_cpu}-linuxltfs
Pthreads=linuxthreads
%ifarch %{nptlarches}
SubDir=obsolete/linuxthreads/i686
%else
SubDir=i686
%endif
mkdir -p $RPM_BUILD_ROOT/lib/$SubDir/
cp -a libc.so $RPM_BUILD_ROOT/lib/$SubDir/`basename $RPM_BUILD_ROOT/lib/libc-*.so`
ln -sf `basename $RPM_BUILD_ROOT/lib/libc-*.so` $RPM_BUILD_ROOT/lib/$SubDir/`basename $RPM_BUILD_ROOT/lib/libc.so.*`
@ -637,54 +642,39 @@ cd ..
%ifarch %{nptlarches}
cd build-%{nptl_target_cpu}-linuxnptl
mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete/linuxthreads
mv -f $RPM_BUILD_ROOT/%{_lib}/lib{c,m,pthread,rt,thread_db}[.-]*so* $RPM_BUILD_ROOT/%{_lib}/obsolete/linuxthreads/
Pthreads=nptl
SubDir=%{tls_subdir}
SubDir=
ObsDir=obsolete/linuxthreads
mkdir -p $RPM_BUILD_ROOT/%{_lib}/$SubDir/
cp -a libc.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libc-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libc.so.*`
cp -a math/libm.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libm-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libm.so.*`
cp -a libc.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libc-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libc-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libc.so.*`
cp -a math/libm.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libm-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libm-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libm.so.*`
cp -a $Pthreads/libpthread.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/libpthread-%{version}.so
pushd $RPM_BUILD_ROOT/%{_lib}/$SubDir
ln -sf libpthread-*.so `basename $RPM_BUILD_ROOT/%{_lib}/libpthread.so.*`
ln -sf libpthread-*.so `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libpthread.so.*`
popd
%ifarch %{rtkaioarches}
cp -a rtkaio/librtkaio.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so | sed s/librt-/librtkaio-/`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so | sed s/librt-/librtkaio-/` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt.so.*`
cp -a rtkaio/librtkaio.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt-*.so | sed s/librt-/librtkaio-/`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt-*.so | sed s/librt-/librtkaio-/` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt.so.*`
%else
cp -a rt/librt.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt.so.*`
cp -a rt/librt.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/librt.so.*`
%endif
cp -a ${Pthreads}_db/libthread_db.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/libthread_db-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/libthread_db.so.*`
cp -a ${Pthreads}_db/libthread_db.so $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libthread_db-*.so`
ln -sf `basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libthread_db-*.so` $RPM_BUILD_ROOT/%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/$ObsDir/libthread_db.so.*`
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads
mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/{libc,libpthread,libpthread_nonshared,librt}.a \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/
cp -a libc.a nptl/libpthread.a nptl/libpthread_nonshared.a rt/librt.a \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/
mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libc.so \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/
sed "s|/libpthread_nonshared.a|/linuxthreads&|" $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libpthread.so \
sed "s| /%{_lib}/| /%{_lib}/$ObsDir/|" $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libc.so \
> $RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/libc.so
sed "s| /%{_lib}/| /%{_lib}/$ObsDir/|;s|/libpthread_nonshared|/linuxthreads&|" $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libpthread.so \
> $RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/libpthread.so
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libpthread.so
sed "s| /%{_lib}/| /%{_lib}/$SubDir/|" $RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/libc.so \
> $RPM_BUILD_ROOT/%{_lib}/tls/libc.so
ln -sf /%{_lib}/tls/libc.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libc.so
sed "s|^GROUP (.*)|GROUP ( /%{_lib}/$SubDir/"`basename $RPM_BUILD_ROOT/%{_lib}/libpthread.so.*`' %{_prefix}/%{_lib}/libpthread_nonshared.a )|' \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/libc.so \
> $RPM_BUILD_ROOT/%{_lib}/tls/libpthread.so
ln -sf /%{_lib}/tls/libpthread.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libpthread.so
%ifarch %{rtkaioarches}
ln -sf /%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so | sed 's/librt-/librtkaio-/'` \
$RPM_BUILD_ROOT/%{_lib}/tls/librt.so
%else
ln -sf /%{_lib}/$SubDir/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` \
$RPM_BUILD_ROOT/%{_lib}/tls/librt.so
%endif
ln -sf /%{_lib}/`basename $RPM_BUILD_ROOT/%{_lib}/librt-*.so` \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/librt.so
ln -sf /%{_lib}/tls/librt.so $RPM_BUILD_ROOT%{_prefix}/%{_lib}/librt.so
strip -g $RPM_BUILD_ROOT%{_prefix}/%{_lib}/linuxthreads/*.a
mkdir -p $RPM_BUILD_ROOT/nptl $RPM_BUILD_ROOT%{_prefix}/include/linuxthreads
make -j1 install_root=$RPM_BUILD_ROOT/nptl install-headers PARALLELMFLAGS=-s
@ -704,15 +694,6 @@ rm -rf $RPM_BUILD_ROOT/nptl
cd ..
%ifarch i386
for i in i586 i686; do
mkdir $RPM_BUILD_ROOT/%{_lib}/tls/$i
pushd $RPM_BUILD_ROOT/%{_lib}/tls/$i
ln -sf ../i486/*.so .
cp -a ../i486/*.so.* .
popd
done
%endif
%endif
# compatibility hack: this locale has vanished from glibc, but some other
@ -791,27 +772,6 @@ for i in *.a; do
done
popd
%ifarch %{prelinkarches}
%ifarch i686 athlon
# Prelink ld.so and libc.so
> prelink.conf
# For now disable prelinking of ld.so, as it breaks statically linked
# binaries built against non-NDEBUG old glibcs (assert unknown dynamic tag)
# /usr/sbin/prelink -c ./prelink.conf -C ./prelink.cache \
# --mmap-region-start=0x00101000 $RPM_BUILD_ROOT/%{_lib}/ld-*.so
/usr/sbin/prelink --reloc-only=0x00e80000 $RPM_BUILD_ROOT/%{_lib}/$SubDir/libc-*.so
%endif
%ifarch alpha alphaev6
# Prelink ld.so and libc.so
> prelink.conf
# For now disable prelinking of ld.so, as it breaks statically linked
# binaries built against non-NDEBUG old glibcs (assert unknown dynamic tag)
# /usr/sbin/prelink -c ./prelink.conf -C ./prelink.cache \
# --mmap-region-start=0x0000020000000000 $RPM_BUILD_ROOT/%{_lib}/ld-*.so
/usr/sbin/prelink --reloc-only=0x0000020010000000 $RPM_BUILD_ROOT/%{_lib}/$SubDir/libc-*.so
%endif
%endif
# rquota.x and rquota.h are now provided by quota
rm -f $RPM_BUILD_ROOT%{_prefix}/include/rpcsvc/rquota.[hx]
@ -943,7 +903,7 @@ cp -r linuxthreads/Examples documentation/examples.threads
cp crypt/README.ufc-crypt documentation/README.ufc-crypt
cp timezone/README documentation/README.timezone
cp ChangeLog{,.14,.15} documentation
gzip -9n documentation/ChangeLog*
bzip2 -9 documentation/ChangeLog*
%ifarch s390x
# Compatibility symlink
@ -1123,15 +1083,6 @@ cat $blf $cblf | LC_ALL=C sort -u > debuginfo.filelist
echo '/usr/src/debug/%{glibcsrcdir}' >> debuginfo.filelist
%endif
%ifarch i386
%ifarch %{nptlarches}
ln -sf i486 $RPM_BUILD_ROOT/usr/lib/debug/%{_lib}/tls/i586
ln -sf i486 $RPM_BUILD_ROOT/usr/lib/debug/%{_lib}/tls/i686
echo /usr/lib/debug/%{_lib}/tls/i586 >> debuginfo.filelist
echo /usr/lib/debug/%{_lib}/tls/i686 >> debuginfo.filelist
%endif
%endif
[ "x$save_trace" = xyes ] && set -x
%endif
@ -1208,15 +1159,16 @@ rm -f *.filelist*
%files -f rpm.filelist
%defattr(-,root,root)
%ifarch %{nptlarches}
%dir /%{_lib}/%{tls_subdir}
%ifarch i386
%dir /%{_lib}/tls/i586
%dir /%{_lib}/tls/i686
%endif
%dir /%{_lib}/obsolete
%dir /%{_lib}/obsolete/linuxthreads
%ifarch i686 athlon
%dir /%{_lib}/obsolete/linuxthreads/i686
%endif
%else
%ifarch i686 athlon
%dir /lib/i686
%endif
%endif
%ifarch s390x
%dir /lib
/lib/ld64.so.1
@ -1304,6 +1256,13 @@ rm -f *.filelist*
%endif
%changelog
* Mon Apr 4 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-20
- move LinuxThreads libraries to /%{_lib}/obsolete/linuxthreads/
and NPTL libraries to /%{_lib}. To run a program against LinuxThreads,
LD_ASSUME_KERNEL=2.4.xx LD_LIBRARY_PATH=/%{_lib}/obsolete/linuxthreads/
is now needed
- bzip2 ChangeLog* files instead of gzipping them
* Sat Apr 2 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-19
- update from CVS
- fix nextafterl and several other libm routines on ia64