Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 13:39:56 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r237395 - stable/9/lib/libc/gen
Message-ID:  <201206211339.q5LDdumX015841@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Thu Jun 21 13:39:56 2012
New Revision: 237395
URL: http://svn.freebsd.org/changeset/base/237395

Log:
  MFC: r232582 (partial)
  
  - Switch ARM to TLS Variant I.
  - Fix TLS allocation  for Variant I: both rtld and libc allocators
    assume that tls_static_space includes space for TLS structure.
    So increment calculated static size by the size of it.

Modified:
  stable/9/lib/libc/gen/tls.c
Directory Properties:
  stable/9/lib/libc/   (props changed)
  stable/9/lib/libc/stdtime/   (props changed)
  stable/9/lib/libc/sys/   (props changed)
  stable/9/lib/libc/uuid/   (props changed)

Modified: stable/9/lib/libc/gen/tls.c
==============================================================================
--- stable/9/lib/libc/gen/tls.c	Thu Jun 21 13:01:00 2012	(r237394)
+++ stable/9/lib/libc/gen/tls.c	Thu Jun 21 13:39:56 2012	(r237395)
@@ -66,11 +66,12 @@ void __libc_free_tls(void *tls, size_t t
 #error TLS_TCB_ALIGN undefined for target architecture
 #endif
 
-#if defined(__ia64__) || defined(__powerpc__)
+#if defined(__arm__) || defined(__ia64__) || \
+    defined(__powerpc__)
 #define TLS_VARIANT_I
 #endif
 #if defined(__i386__) || defined(__amd64__) || defined(__sparc64__) || \
-    defined(__arm__) || defined(__mips__)
+    defined(__mips__)
 #define TLS_VARIANT_II
 #endif
 
@@ -308,6 +309,13 @@ _init_tls()
 		}
 	}
 
+#ifdef TLS_VARIANT_I
+	/*
+	 * tls_static_space should include space for TLS structure
+	 */
+	tls_static_space += TLS_TCB_SIZE;
+#endif
+
 	tls = _rtld_allocate_tls(NULL, TLS_TCB_SIZE, TLS_TCB_ALIGN);
 
 	_set_tp(tls);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206211339.q5LDdumX015841>