public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Nuke another 21 .plt slots
@ 2002-08-05 14:54 Jakub Jelinek
  2002-08-05 15:11 ` Roland McGrath
  0 siblings, 1 reply; 10+ messages in thread
From: Jakub Jelinek @ 2002-08-05 14:54 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Glibc hackers

Hi!

With this I'm at 141 .plt slots on IA-32.

2002-08-05  Jakub Jelinek  <jakub@redhat.com>

	* include/wchar.h (wcrtomb, wcscmp, wcsftime, wcsspn, wcschr, wcscoll,
	wcspbrk): Add libc_hidden_proto.
	* time/strftime.c (my_strftime): Add libc_hidden_def.
	(strftime): Remove libc_hidden_def.
	* wcsmbs/wcschr.c (wcschr): Add libc_hidden_def.
	* wcsmbs/wcspbrk.c (wcspbrk): Likewise.
	* wcsmbs/wcsspn.c (wcsspn): Likewise.
	* wcsmbs/wcscmp.c (wcscmp): Likewise.
	* wcsmbs/wcrtomb.c (wcrtomb): Add libc_hidden_weak.
	* wcsmbs/wcscoll.c (wcscoll): Likewise.

	* include/rpc/rpc.h (__rpc_thread_svc_max_pollfd,
	__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
	__rpc_thread_createerr): Add libc_hidden_proto.
	* sunrpc/rpc_thread.c (__rpc_thread_svc_max_pollfd,
	__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
	__rpc_thread_createerr): Add libc_hidden_def.

	* include/rpc/clnt.h (clnt_sperrno, clnt_spcreateerror,
	clnt_perror, clnt_sperror, _rpc_dtablesize): Add libc_hidden_proto.
	* sunrpc/clnt_perr.c (clnt_sperrno, clnt_spcreateerror,
	clnt_perror, clnt_sperror): Add libc_hidden_def.
	* sunrpc/rpc_dtable.c (_rpc_dtablesize): Likewise.

	* include/rpc/des_crypt.h (des_setparity, ecb_crypt, cbc_crypt): Add
	libc_hidden_proto.
	* sunrpc/des_crypt.c (ecb_crypt, cbc_crypt): Add libc_hidden_proto.
	* sunrpc/des_soft.c (des_setparity): Likewise.

	* include/rpc/auth.h (key_encryptsession_pk, key_decryptsession_pk):
	Add libc_hidden_proto.
	* sunrpc/key_call.c (key_encryptsession_pk, key_decryptsession_pk):
	Add libc_hidden_def.

--- libc/include/wchar.h.jj	2002-08-05 08:44:15.000000000 +0200
+++ libc/include/wchar.h	2002-08-05 23:10:38.000000000 +0200
@@ -19,6 +19,13 @@ libc_hidden_proto (putwc_unlocked)
 
 libc_hidden_proto (vswscanf)
 
+libc_hidden_proto (wcrtomb)
+libc_hidden_proto (wcscmp)
+libc_hidden_proto (wcsftime)
+libc_hidden_proto (wcsspn)
+libc_hidden_proto (wcschr)
+libc_hidden_proto (wcscoll)
+libc_hidden_proto (wcspbrk)
 
 /* Now define the internal interfaces.  */
 extern int __wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2)
--- libc/include/rpc/rpc.h.jj	2002-08-03 11:09:26.000000000 +0200
+++ libc/include/rpc/rpc.h	2002-08-05 22:12:52.000000000 +0200
@@ -49,6 +49,11 @@ __libc_tsd_define (extern, RPC_VARS)
 
 #define RPC_THREAD_VARIABLE(x) (__rpc_thread_variables()->x)
 
+libc_hidden_proto (__rpc_thread_svc_max_pollfd)
+libc_hidden_proto (__rpc_thread_svc_pollfd)
+libc_hidden_proto (__rpc_thread_svc_fdset)
+libc_hidden_proto (__rpc_thread_createerr)
+
 #endif /* _RPC_THREAD_SAFE_ */
 
 #endif
--- libc/include/rpc/clnt.h.jj	2002-06-05 10:27:28.000000000 +0200
+++ libc/include/rpc/clnt.h	2002-08-05 22:15:34.000000000 +0200
@@ -26,4 +26,10 @@ extern CLIENT *clntunix_create_internal 
 					 int *__sockp, u_int __sendsz,
 					 u_int __recvsz) attribute_hidden;
 
+libc_hidden_proto (clnt_sperrno)
+libc_hidden_proto (clnt_spcreateerror)
+libc_hidden_proto (clnt_perror)
+libc_hidden_proto (clnt_sperror)
+libc_hidden_proto (_rpc_dtablesize)
+
 #endif
--- libc/include/rpc/des_crypt.h.jj	2000-12-31 16:34:36.000000000 +0100
+++ libc/include/rpc/des_crypt.h	2002-08-05 23:17:20.000000000 +0200
@@ -6,4 +6,8 @@
 extern int xencrypt (char *secret, char *passwd);
 extern int xdecrypt (char *secret, char *passwd);
 
+libc_hidden_proto (des_setparity)
+libc_hidden_proto (ecb_crypt)
+libc_hidden_proto (cbc_crypt)
+
 #endif
--- libc/include/rpc/auth.h.jj	2002-06-05 10:27:27.000000000 +0200
+++ libc/include/rpc/auth.h	2002-08-05 23:17:58.000000000 +0200
@@ -28,4 +28,7 @@ extern AUTH *authdes_pk_create_internal 
 					 struct sockaddr *,
 					 des_block *) attribute_hidden;
 
+libc_hidden_proto (key_encryptsession_pk)
+libc_hidden_proto (key_decryptsession_pk)
+
 #endif
--- libc/sunrpc/clnt_perr.c.jj	2002-08-05 08:44:19.000000000 +0200
+++ libc/sunrpc/clnt_perr.c	2002-08-05 22:18:16.000000000 +0200
@@ -150,6 +150,7 @@ clnt_sperror (CLIENT * rpch, const char 
   *++str = '\0';
   return (strstart);
 }
+libc_hidden_def (clnt_sperror)
 
 void
 clnt_perror (CLIENT * rpch, const char *msg)
@@ -161,6 +162,7 @@ clnt_perror (CLIENT * rpch, const char *
 #endif
     (void) fputs (clnt_sperror (rpch, msg), stderr);
 }
+libc_hidden_def (clnt_perror)
 
 
 struct rpc_errtab
@@ -282,6 +284,7 @@ clnt_sperrno (enum clnt_stat stat)
     }
   return _("RPC: (unknown error code)");
 }
+libc_hidden_def (clnt_sperrno)
 
 void
 clnt_perrno (enum clnt_stat num)
@@ -329,6 +332,7 @@ clnt_spcreateerror (const char *msg)
   *++cp = '\0';
   return str;
 }
+libc_hidden_def (clnt_spcreateerror)
 
 void
 clnt_pcreateerror (const char *msg)
--- libc/sunrpc/rpc_dtable.c.jj	2001-03-26 10:02:29.000000000 +0200
+++ libc/sunrpc/rpc_dtable.c	2002-08-05 22:24:14.000000000 +0200
@@ -48,3 +48,4 @@ _rpc_dtablesize (void)
 
   return size;
 }
+libc_hidden_def (_rpc_dtablesize)
--- libc/sunrpc/rpc_thread.c.jj	2002-08-03 11:09:35.000000000 +0200
+++ libc/sunrpc/rpc_thread.c	2002-08-05 22:26:36.000000000 +0200
@@ -85,6 +85,7 @@ __rpc_thread_svc_fdset (void)
 		return &svc_fdset;
 	return &tvp->svc_fdset_s;
 }
+libc_hidden_def (__rpc_thread_svc_fdset)
 
 struct rpc_createerr *
 __rpc_thread_createerr (void)
@@ -96,6 +97,7 @@ __rpc_thread_createerr (void)
 		return &rpc_createerr;
 	return &tvp->rpc_createerr_s;
 }
+libc_hidden_def (__rpc_thread_createerr)
 
 struct pollfd **
 __rpc_thread_svc_pollfd (void)
@@ -107,6 +109,7 @@ __rpc_thread_svc_pollfd (void)
 		return &svc_pollfd;
 	return &tvp->svc_pollfd_s;
 }
+libc_hidden_def (__rpc_thread_svc_pollfd)
 
 int *
 __rpc_thread_svc_max_pollfd (void)
@@ -118,4 +121,6 @@ __rpc_thread_svc_max_pollfd (void)
 		return &svc_max_pollfd;
 	return &tvp->svc_max_pollfd_s;
 }
+libc_hidden_def (__rpc_thread_svc_max_pollfd)
+
 #endif /* _RPC_THREAD_SAFE_ */
--- libc/sunrpc/des_crypt.c.jj	2001-03-26 10:02:27.000000000 +0200
+++ libc/sunrpc/des_crypt.c	2002-08-05 23:18:49.000000000 +0200
@@ -105,7 +105,7 @@ cbc_crypt (char *key, char *buf, unsigne
   COPY8 (dp.des_ivec, ivec);
   return err;
 }
-
+libc_hidden_def (cbc_crypt)
 
 /*
  * ECB mode encryption
@@ -118,3 +118,4 @@ ecb_crypt (char *key, char *buf, unsigne
   dp.des_mode = ECB;
   return common_crypt (key, buf, len, mode, &dp);
 }
+libc_hidden_def (ecb_crypt)
--- libc/sunrpc/des_soft.c.jj	2001-03-26 10:02:28.000000000 +0200
+++ libc/sunrpc/des_soft.c	2002-08-05 23:19:19.000000000 +0200
@@ -68,3 +68,4 @@ des_setparity (char *p)
       p++;
     }
 }
+libc_hidden_def (des_setparity)
--- libc/sunrpc/key_call.c.jj	2002-06-05 10:27:41.000000000 +0200
+++ libc/sunrpc/key_call.c	2002-08-05 23:20:07.000000000 +0200
@@ -177,6 +177,7 @@ key_encryptsession_pk (char *remotename,
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
+libc_hidden_def (key_encryptsession_pk)
 
 int
 key_decryptsession_pk (char *remotename, netobj *remotekey,
@@ -201,6 +202,7 @@ key_decryptsession_pk (char *remotename,
   *deskey = res.cryptkeyres_u.deskey;
   return 0;
 }
+libc_hidden_def (key_decryptsession_pk)
 
 int
 key_gendes (des_block *key)
--- libc/time/strftime.c.jj	2002-08-03 19:20:54.000000000 +0200
+++ libc/time/strftime.c	2002-08-05 22:57:12.000000000 +0200
@@ -1362,7 +1362,7 @@ my_strftime (s, maxsize, format, tp ut_a
   return i;
 }
 #ifdef _LIBC
-libc_hidden_def (strftime)
+libc_hidden_def (my_strftime)
 #endif
 
 
--- libc/wcsmbs/wcschr.c.jj	2001-08-07 14:14:05.000000000 +0200
+++ libc/wcsmbs/wcschr.c	2002-08-05 22:41:56.000000000 +0200
@@ -32,3 +32,4 @@ wcschr (wcs, wc)
 
   return NULL;
 }
+libc_hidden_def (wcschr)
--- libc/wcsmbs/wcspbrk.c.jj	2001-08-07 14:14:06.000000000 +0200
+++ libc/wcsmbs/wcspbrk.c	2002-08-05 22:42:26.000000000 +0200
@@ -34,3 +34,4 @@ wcspbrk (wcs, accept)
 
   return NULL;
 }
+libc_hidden_def (wcspbrk)
--- libc/wcsmbs/wcsspn.c.jj	2001-08-07 14:14:06.000000000 +0200
+++ libc/wcsmbs/wcsspn.c	2002-08-05 22:47:18.000000000 +0200
@@ -44,3 +44,4 @@ wcsspn (wcs, accept)
 
   return count;
 }
+libc_hidden_def (wcsspn)
--- libc/wcsmbs/wcscoll.c.jj	2002-08-05 22:46:41.000000000 +0200
+++ libc/wcsmbs/wcscoll.c	2002-08-05 22:46:41.000000000 +0200
@@ -38,4 +38,5 @@
 
 #ifndef USE_IN_EXTENDED_LOCALE_MODEL
 weak_alias (__wcscoll, wcscoll)
+libc_hidden_weak (wcscoll)
 #endif
--- libc/wcsmbs/wcscmp.c.jj	2001-08-07 14:14:05.000000000 +0200
+++ libc/wcsmbs/wcscmp.c	2002-08-05 22:47:50.000000000 +0200
@@ -41,3 +41,4 @@ wcscmp (s1, s2)
 
   return c1 - c2;
 }
+libc_hidden_def (wcscmp)
--- libc/wcsmbs/wcrtomb.c.jj	2001-08-07 14:14:05.000000000 +0200
+++ libc/wcsmbs/wcrtomb.c	2002-08-05 22:53:25.000000000 +0200
@@ -108,3 +108,4 @@ __wcrtomb (char *s, wchar_t wc, mbstate_
   return result;
 }
 weak_alias (__wcrtomb, wcrtomb)
+libc_hidden_weak (wcrtomb)

	Jakub

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 14:54 [PATCH] Nuke another 21 .plt slots Jakub Jelinek
@ 2002-08-05 15:11 ` Roland McGrath
  2002-08-05 15:18   ` Jakub Jelinek
  0 siblings, 1 reply; 10+ messages in thread
From: Roland McGrath @ 2002-08-05 15:11 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Ulrich Drepper, Glibc hackers

Thanks!  I put those in.  However, my PLT count does not match yours.  I
get 169 in a build with TLS support, and I think that is only one more than
without TLS.

I have been counting using this script (it gives a list of symbols; pipe it
to wc -l), which counts only PLT slots for symbols defined in libc itself,
and omits the malloc functions that are explicit exceptions.  That count is
now 121.

#!/bin/sh

goodones='__libc_free
__libc_malloc
__libc_memalign
__libc_realloc
free
calloc
malloc
realloc'

readelf -rW libc.so | awk '/JUMP_SLOT/ && $4 != "00000000" { print $5 }' |
fgrep -vx "$goodones" | sort

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 15:11 ` Roland McGrath
@ 2002-08-05 15:18   ` Jakub Jelinek
  2002-08-05 15:21     ` Roland McGrath
  0 siblings, 1 reply; 10+ messages in thread
From: Jakub Jelinek @ 2002-08-05 15:18 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Ulrich Drepper, Glibc hackers

On Mon, Aug 05, 2002 at 06:11:55PM -0400, Roland McGrath wrote:
> Thanks!  I put those in.  However, my PLT count does not match yours.  I
> get 169 in a build with TLS support, and I think that is only one more than
> without TLS.
> 
> I have been counting using this script (it gives a list of symbols; pipe it
> to wc -l), which counts only PLT slots for symbols defined in libc itself,
> and omits the malloc functions that are explicit exceptions.  That count is
> now 121.
> 
> #!/bin/sh
> 
> goodones='__libc_free
> __libc_malloc
> __libc_memalign
> __libc_realloc
> free
> calloc
> malloc
> realloc'

This list is too short, e.g. __fork and some others which are to
be overridden by libpthread.so should be in the list too.

> readelf -rW libc.so | awk '/JUMP_SLOT/ && $4 != "00000000" { print $5 }' |
> fgrep -vx "$goodones" | sort

I believe the difference can be that my build was with -O3, so a bunch
of calls were inlined and thus not going externally.
I'll try an -O2 build tomorrow.

	Jakub

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 15:18   ` Jakub Jelinek
@ 2002-08-05 15:21     ` Roland McGrath
  2002-08-05 15:42       ` Ulrich Drepper
  0 siblings, 1 reply; 10+ messages in thread
From: Roland McGrath @ 2002-08-05 15:21 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Ulrich Drepper, Glibc hackers

> This list is too short, e.g. __fork and some others which are to
> be overridden by libpthread.so should be in the list too.

Righto.  I will amend my list from libpthread.

> I believe the difference can be that my build was with -O3, so a bunch
> of calls were inlined and thus not going externally.
> I'll try an -O2 build tomorrow.

Then we should make -O3 the default, should we not?

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 15:21     ` Roland McGrath
@ 2002-08-05 15:42       ` Ulrich Drepper
  2002-08-05 23:20         ` Jakub Jelinek
  0 siblings, 1 reply; 10+ messages in thread
From: Ulrich Drepper @ 2002-08-05 15:42 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Jakub Jelinek, Glibc hackers

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roland McGrath wrote:

> Then we should make -O3 the default, should we not?

No.  See my mail to rth from Sunday or Saturday.

(There is a bug in gcc where it inlines far too much when -O3 is used.)

- -- 
- ---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE9Tv8B2ijCOnn/RHQRAiAQAJ9gCjzRxv7bN/XqjDMaB576jNO7fgCeKiC4
qwQlzUVj/htNc78zH5vkxXE=
=0+9h
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 15:42       ` Ulrich Drepper
@ 2002-08-05 23:20         ` Jakub Jelinek
  2002-08-05 23:43           ` Ulrich Drepper
  0 siblings, 1 reply; 10+ messages in thread
From: Jakub Jelinek @ 2002-08-05 23:20 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Roland McGrath, Glibc hackers

On Mon, Aug 05, 2002 at 03:41:05PM -0700, Ulrich Drepper wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Roland McGrath wrote:
> 
> > Then we should make -O3 the default, should we not?
> 
> No.  See my mail to rth from Sunday or Saturday.
> 
> (There is a bug in gcc where it inlines far too much when -O3 is used.)

If -O3 could inline only static or explicit inline routines, it would
be far less useful than it currently is (for the applications which benefit
from automatic inlining, of course, the majority does not).

Aren't we going to have a list of 10 or how many functions which need to
go through .plt and the rest does not? If yes,
then __attribute__ ((noinline)) for those 10 would suffice.

	Jakub

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 23:20         ` Jakub Jelinek
@ 2002-08-05 23:43           ` Ulrich Drepper
  2002-08-06  0:08             ` Roland McGrath
  0 siblings, 1 reply; 10+ messages in thread
From: Ulrich Drepper @ 2002-08-05 23:43 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Roland McGrath, Glibc hackers

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jakub Jelinek wrote:

> If -O3 could inline only static or explicit inline routines, it would
> be far less useful than it currently is (for the applications which benefit
> from automatic inlining, of course, the majority does not).

The problem is not loss of optimization.  The semantics f code gets 
changed.  And incorrectly so.  gcc cannot inline a non-static function 
unless its visibility != default.  It might be possible to add a gcc 
option to signal that all functions can be assumed to be non-preemptible.

- -- 
- ---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE9T28s2ijCOnn/RHQRAvVsAJ0T3Y7mxqpqNxVndZWjPCZ+hkrSXQCeP9AK
18XrDpDvZ8qqVTAew4Y1cSs=
=7nCZ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-05 23:43           ` Ulrich Drepper
@ 2002-08-06  0:08             ` Roland McGrath
  2002-08-06  0:10               ` Roland McGrath
  2002-08-06  0:19               ` Ulrich Drepper
  0 siblings, 2 replies; 10+ messages in thread
From: Roland McGrath @ 2002-08-06  0:08 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: Jakub Jelinek, Glibc hackers

> The problem is not loss of optimization.  The semantics f code gets 
> changed.  And incorrectly so.  gcc cannot inline a non-static function 
> unless its visibility != default.  It might be possible to add a gcc 
> option to signal that all functions can be assumed to be non-preemptible.

I don't think it is so unreasonable.  Anything that is written so that it
would work with static linking would work will come out right (i.e. you can
only inline in the same module and it would be a multiple definition if
there were a competing definition elsewhere), except for special cases
defining weak functions.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-06  0:08             ` Roland McGrath
@ 2002-08-06  0:10               ` Roland McGrath
  2002-08-06  0:19               ` Ulrich Drepper
  1 sibling, 0 replies; 10+ messages in thread
From: Roland McGrath @ 2002-08-06  0:10 UTC (permalink / raw)
  To: Ulrich Drepper, Jakub Jelinek, Glibc hackers

However, -O3 also produces plain old bad code in rtld.c when TLS is enabled.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Nuke another 21 .plt slots
  2002-08-06  0:08             ` Roland McGrath
  2002-08-06  0:10               ` Roland McGrath
@ 2002-08-06  0:19               ` Ulrich Drepper
  1 sibling, 0 replies; 10+ messages in thread
From: Ulrich Drepper @ 2002-08-06  0:19 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Jakub Jelinek, Glibc hackers

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Roland McGrath wrote:

> I don't think it is so unreasonable.

What exactly?  That gcc by default is generating code with different 
semantics based on the optimization level?

 > Anything that is written so that it
> would work with static linking would work will come out right (i.e. you can
> only inline in the same module and it would be a multiple definition if
> there were a competing definition elsewhere), except for special cases
> defining weak functions.

I have no problem with this being possible.  But the user must tell the 
compiler to do so.  There is a lot of code out there which depends on 
interposition being possible.  All optimizations default on the safe 
side, why not this one as well?

- -- 
- ---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE9T3d62ijCOnn/RHQRAsxlAKChbETqVF7MiHubYxzSugqU8nJ8RACeIunj
3no+m3gkdxDOKdinWmUQYks=
=xmoz
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2002-08-06  7:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-05 14:54 [PATCH] Nuke another 21 .plt slots Jakub Jelinek
2002-08-05 15:11 ` Roland McGrath
2002-08-05 15:18   ` Jakub Jelinek
2002-08-05 15:21     ` Roland McGrath
2002-08-05 15:42       ` Ulrich Drepper
2002-08-05 23:20         ` Jakub Jelinek
2002-08-05 23:43           ` Ulrich Drepper
2002-08-06  0:08             ` Roland McGrath
2002-08-06  0:10               ` Roland McGrath
2002-08-06  0:19               ` Ulrich Drepper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).