Aliases ...

Roland McGrath roland@redhat.com
Fri Jan 14 16:41:00 GMT 2005


> Here's a patch to initialize it - it removes the warning.

This really happens with __thread?  The right thing when this issue comes
up is to use __attribute__((nocommon)).

> Ok to commit?
> 
> Andreas
> 
> 2005-01-14  Andreas Jaeger  <aj@suse.de>
> 
> 	* sysdeps/generic/errno.c: Initialize errno.
> 
> ============================================================
> Index: sysdeps/generic/errno.c
> --- sysdeps/generic/errno.c	4 Oct 2004 20:59:41 -0000	1.7
> +++ sysdeps/generic/errno.c	14 Jan 2005 08:52:47 -0000
> @@ -1,5 +1,5 @@
>  /* Definition of `errno' variable.  Canonical version.
> -   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
> +   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>  
>     The GNU C Library is free software; you can redistribute it and/or
> @@ -29,7 +29,9 @@ int rtld_errno attribute_hidden;
>  
>  #elif USE___THREAD
>  
> -__thread int errno;
> +/* We have to initialize errno, since aliasing of a common symbol does
> +   not work.  */
> +__thread int errno = 0;
>  extern __thread int __libc_errno __attribute__ ((alias ("errno")))
>    attribute_hidden;
>  
> 
> -- 
>  Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
>   SUSE Linux Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
>    GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126



More information about the Libc-hacker mailing list