Module Name:    src
Committed By:   joerg
Date:           Fri Nov 18 16:10:03 UTC 2011

Modified Files:
        src/lib/libc/arch/arm: Makefile.inc
        src/libexec/ld.elf_so/arch/arm: mdreloc.c
        src/sys/arch/arm/include: types.h
Added Files:
        src/lib/libc/arch/arm/sys: __aeabi_read_tp.S

Log Message:
Hook up TLS support on ARM. Tested by martin@, kernel support from matt@


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/lib/libc/arch/arm/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/lib/libc/arch/arm/sys/__aeabi_read_tp.S
cvs rdiff -u -r1.36 -r1.37 src/libexec/ld.elf_so/arch/arm/mdreloc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/include/types.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/arm/Makefile.inc
diff -u src/lib/libc/arch/arm/Makefile.inc:1.9 src/lib/libc/arch/arm/Makefile.inc:1.10
--- src/lib/libc/arch/arm/Makefile.inc:1.9	Tue Jul  6 05:59:52 2010
+++ src/lib/libc/arch/arm/Makefile.inc	Fri Nov 18 16:10:02 2011
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile.inc,v 1.9 2010/07/06 05:59:52 mrg Exp $
+# $NetBSD: Makefile.inc,v 1.10 2011/11/18 16:10:02 joerg Exp $
 
 .include <bsd.own.mk>
 
-SRCS+=	__sigaction14_sigtramp.c __sigtramp2.S
+SRCS+=	__aeabi_read_tp.S __sigaction14_sigtramp.c __sigtramp2.S
 
 CPPFLAGS += -DSOFTFLOAT
 

Index: src/libexec/ld.elf_so/arch/arm/mdreloc.c
diff -u src/libexec/ld.elf_so/arch/arm/mdreloc.c:1.36 src/libexec/ld.elf_so/arch/arm/mdreloc.c:1.37
--- src/libexec/ld.elf_so/arch/arm/mdreloc.c:1.36	Tue Apr 12 16:40:04 2011
+++ src/libexec/ld.elf_so/arch/arm/mdreloc.c	Fri Nov 18 16:10:03 2011
@@ -1,8 +1,8 @@
-/*	$NetBSD: mdreloc.c,v 1.36 2011/04/12 16:40:04 matt Exp $	*/
+/*	$NetBSD: mdreloc.c,v 1.37 2011/11/18 16:10:03 joerg Exp $	*/
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: mdreloc.c,v 1.36 2011/04/12 16:40:04 matt Exp $");
+__RCSID("$NetBSD: mdreloc.c,v 1.37 2011/11/18 16:10:03 joerg Exp $");
 #endif /* not lint */
 
 #include <sys/types.h>
@@ -179,7 +179,6 @@ _rtld_relocate_nonplt_objects(Obj_Entry 
 			rdbg(("COPY (avoid in main)"));
 			break;
 
-#ifdef __HAVE_TLS_VARIANT_I
 		case R_TYPE(TLS_DTPOFF32):
 			def = _rtld_find_symdef(symnum, obj, &defobj, false);
 			if (def == NULL)
@@ -232,7 +231,6 @@ _rtld_relocate_nonplt_objects(Obj_Entry 
 			    obj->strtab + obj->symtab[symnum].st_name,
 			    obj->path, (void *)tmp));
 			break;
-#endif /* __HAVE_TLS_VARIANT_I */
 
 		default:
 			rdbg(("sym = %lu, type = %lu, offset = %p, "

Index: src/sys/arch/arm/include/types.h
diff -u src/sys/arch/arm/include/types.h:1.20 src/sys/arch/arm/include/types.h:1.21
--- src/sys/arch/arm/include/types.h:1.20	Sun Jul 17 23:46:49 2011
+++ src/sys/arch/arm/include/types.h	Fri Nov 18 16:10:02 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: types.h,v 1.20 2011/07/17 23:46:49 dyoung Exp $	*/
+/*	$NetBSD: types.h,v 1.21 2011/11/18 16:10:02 joerg Exp $	*/
 
 /*
  * Copyright (c) 1990 The Regents of the University of California.
@@ -86,6 +86,8 @@ typedef	volatile int		__cpu_simple_lock_
 #define	__HAVE_MINIMAL_EMUL
 #define __HAVE_CPU_DATA_FIRST
 #define	__HAVE___LWP_GETPRIVATE_FAST
+#define	__HAVE_COMMON___TLS_GET_ADDR
+#define	__HAVE_TLS_VARIANT_I
 
 #if defined(_KERNEL)
 #define	__HAVE_RAS

Added files:

Index: src/lib/libc/arch/arm/sys/__aeabi_read_tp.S
diff -u /dev/null src/lib/libc/arch/arm/sys/__aeabi_read_tp.S:1.1
--- /dev/null	Fri Nov 18 16:10:03 2011
+++ src/lib/libc/arch/arm/sys/__aeabi_read_tp.S	Fri Nov 18 16:10:02 2011
@@ -0,0 +1,5 @@
+#include "SYS.h"
+
+ENTRY(__aeabi_read_tp)
+	mrc p15, 0, r0, c13, c0, 3
+	RET

Reply via email to