This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Community source repository for glibc add-on ports branch, master, updated. glibc-2.15-35-g06285c8


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  06285c87857a33930a8e3c4b1ca5226b28130864 (commit)
       via  74b24e3d462c96e632c4bbfaa01d36a6c332572c (commit)
       via  662d5c4052225ca8248ef55deb992310a5a2e5b2 (commit)
      from  b3c737fd390dc11c8613e725ef2db377ea7641bf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=06285c87857a33930a8e3c4b1ca5226b28130864

commit 06285c87857a33930a8e3c4b1ca5226b28130864
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Wed Feb 8 13:35:50 2012 +0100

    m68k: add crt files

diff --git a/ChangeLog.m68k b/ChangeLog.m68k
index 78f718f..7eace92 100644
--- a/ChangeLog.m68k
+++ b/ChangeLog.m68k
@@ -1,5 +1,8 @@
 2012-02-08  Andreas Schwab  <schwab@linux-m68k.org>
 
+	* sysdeps/m68k/crti.S: New file.
+	* sysdeps/m68k/crtn.S: New file.
+
 	* sysdeps/m68k/m680x0/sysdep.h (LOAD_GOT): Define.
 	* sysdeps/m68k/coldfire/sysdep.h (LOAD_GOT): Define.
 	* sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helper.S: Remove.
diff --git a/sysdeps/m68k/crti.S b/sysdeps/m68k/crti.S
new file mode 100644
index 0000000..138bb02
--- /dev/null
+++ b/sysdeps/m68k/crti.S
@@ -0,0 +1,83 @@
+/* Special .init and .fini section support for m68k.
+   Copyright (C) 2012 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   In addition to the permissions in the GNU Lesser General Public
+   License, the Free Software Foundation gives you unlimited
+   permission to link the compiled version of this file with other
+   programs, and to distribute those programs without any restriction
+   coming from the use of this file. (The GNU Lesser General Public
+   License restrictions do apply in other respects; for example, they
+   cover modification of the file, and distribution when not linked
+   into another program.)
+
+   Note that people who make modified versions of this file are not
+   obligated to grant this special exception for their modified
+   versions; it is their choice whether to do so. The GNU Lesser
+   General Public License gives permission to release a modified
+   version without this exception; this exception also makes it
+   possible to release a modified version which carries forward this
+   exception.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* crti.S puts a function prologue at the beginning of the .init and
+   .fini sections and defines global symbols for those addresses, so
+   they can be called as functions.  The symbols _init and _fini are
+   magic and cause the linker to emit DT_INIT and DT_FINI.  */
+
+#include <libc-symbols.h>
+#include <sysdep.h>
+
+#ifndef PREINIT_FUNCTION
+# define PREINIT_FUNCTION __gmon_start__
+#endif
+
+#ifndef PREINIT_FUNCTION_WEAK
+# define PREINIT_FUNCTION_WEAK 1
+#endif
+
+#if PREINIT_FUNCTION_WEAK
+	weak_extern (PREINIT_FUNCTION)
+#else
+	.hidden PREINIT_FUNCTION
+#endif
+
+	.section .init,"ax",@progbits
+	.align	2
+	.globl	_init
+	.type	_init, @function
+_init:
+	link.w %fp, #0
+	move.l	%a5, -(%sp)
+	LOAD_GOT (%a5)
+#if PREINIT_FUNCTION_WEAK
+	tst.l	PREINIT_FUNCTION@GOT(%a5)
+	jeq	1f
+	jbsr 	PREINIT_FUNCTION@PLTPC
+1:
+#else
+	jbsr 	PREINIT_FUNCTION
+#endif
+
+	.section .fini,"ax",@progbits
+	.align	2
+	.globl	_fini
+	.type	_fini, @function
+_fini:
+	link.w %fp, #0
+	move.l	%a5, -(%sp)
+	LOAD_GOT (%a5)
diff --git a/sysdeps/m68k/crtn.S b/sysdeps/m68k/crtn.S
new file mode 100644
index 0000000..7e76d77
--- /dev/null
+++ b/sysdeps/m68k/crtn.S
@@ -0,0 +1,48 @@
+/* Special .init and .fini section support for m68k.
+   Copyright (C) 2012 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   In addition to the permissions in the GNU Lesser General Public
+   License, the Free Software Foundation gives you unlimited
+   permission to link the compiled version of this file with other
+   programs, and to distribute those programs without any restriction
+   coming from the use of this file. (The GNU Lesser General Public
+   License restrictions do apply in other respects; for example, they
+   cover modification of the file, and distribution when not linked
+   into another program.)
+
+   Note that people who make modified versions of this file are not
+   obligated to grant this special exception for their modified
+   versions; it is their choice whether to do so. The GNU Lesser
+   General Public License gives permission to release a modified
+   version without this exception; this exception also makes it
+   possible to release a modified version which carries forward this
+   exception.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* crtn.S puts function epilogues in the .init and .fini sections
+   corresponding to the prologues in crti.S. */
+
+	.section .init,"ax",@progbits
+	move.l	-4(%fp), %a5
+	unlk	%fp
+	rts
+
+	.section .fini,"ax",@progbits
+	move.l	-4(%fp), %a5
+	unlk	%fp
+	rts

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=74b24e3d462c96e632c4bbfaa01d36a6c332572c

commit 74b24e3d462c96e632c4bbfaa01d36a6c332572c
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Wed Feb 8 13:35:36 2012 +0100

    m68k: unify m68k-helpers.S

diff --git a/ChangeLog.m68k b/ChangeLog.m68k
index 54baf63..78f718f 100644
--- a/ChangeLog.m68k
+++ b/ChangeLog.m68k
@@ -1,5 +1,11 @@
 2012-02-08  Andreas Schwab  <schwab@linux-m68k.org>
 
+	* sysdeps/m68k/m680x0/sysdep.h (LOAD_GOT): Define.
+	* sysdeps/m68k/coldfire/sysdep.h (LOAD_GOT): Define.
+	* sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helper.S: Remove.
+	* sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helper.S: Remove.
+	* sysdeps/unix/sysv/linux/m68k/m68k-helper.S: New file.
+
 	* sysdeps/unix/sysv/linux/m68k/configure.in
 	(libc_cv_gcc_unwind_find_fde): Don't set on coldfire.
 
diff --git a/sysdeps/m68k/coldfire/sysdep.h b/sysdeps/m68k/coldfire/sysdep.h
index 37f66d1..25feee9 100644
--- a/sysdeps/m68k/coldfire/sysdep.h
+++ b/sysdeps/m68k/coldfire/sysdep.h
@@ -1,5 +1,5 @@
 /* Assembler macros for Coldfire.
-   Copyright (C) 1998, 2003, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2003, 2010, 2012 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
@@ -26,6 +26,11 @@
 # define PCREL_OP(OP, SRC, DST, TMP) \
   move.l &SRC - ., TMP; OP (-8, %pc, TMP), DST
 
+/* Load the address of the GOT into register R.  */
+# define LOAD_GOT(R) \
+  move.l &_GLOBAL_OFFSET_TABLE_@GOTPC, R; \
+  lea (-6, %pc, R), R
+
 #else
 
 /* As above, but PC is the spelling of the PC register.  We need this
diff --git a/sysdeps/m68k/m680x0/sysdep.h b/sysdeps/m68k/m680x0/sysdep.h
index 013bc5e..ca90e8c 100644
--- a/sysdeps/m68k/m680x0/sysdep.h
+++ b/sysdeps/m68k/m680x0/sysdep.h
@@ -1,5 +1,5 @@
 /* Assembler macros for m680x0.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010, 2012 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
@@ -23,9 +23,13 @@
 
 /* Perform operation OP with PC-relative SRC as the first operand and
    DST as the second.  TMP is available as a temporary if needed.  */
-#define PCREL_OP(OP, SRC, DST, TMP) \
+# define PCREL_OP(OP, SRC, DST, TMP) \
   OP SRC(%pc), DST
 
+/* Load the address of the GOT into register R.  */
+# define LOAD_GOT(R) \
+  lea _GLOBAL_OFFSET_TABLE_@GOTPC (%pc), R
+
 #else
 
 /* As above, but PC is the spelling of the PC register.  We need this
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helpers.S b/sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helpers.S
deleted file mode 100644
index 91f697b..0000000
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helpers.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2010, 2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-#include <bits/m68k-vdso.h>
-
-	.text
-
-	.hidden __vdso_read_tp_stub
-ENTRY (__vdso_read_tp_stub)
-	move.l	#__NR_get_thread_area, %d0
-	trap	#0
-	move.l	%d0, %a0
-	rts
-END (__vdso_read_tp_stub)
-
-# ifdef SHARED
-/* GCC will emit calls to this routine.  Linux has an
-   equivalent helper function (which clobbers fewer registers than
-   a normal function call) in a vdso; tail call to the
-   helper.  */
-# ifdef IS_IN_rtld
-/* rtld gets a hidden copy of __m68k_read_tp.  */
-	.hidden __m68k_read_tp
-# endif
-ENTRY (__m68k_read_tp)
-	move.l	#_GLOBAL_OFFSET_TABLE_@GOTPC, %a0
-	lea	(-6, %pc, %a0), %a0
-	move.l	M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
-	move.l	(%a0), %a0
-	jmp	(%a0)
-END (__m68k_read_tp)
-
-/* The following two stubs are for macros in atomic.h, they can't
-   clobber anything.  */
-
-	.hidden __vdso_atomic_cmpxchg_32_stub
-ENTRY (__vdso_atomic_cmpxchg_32_stub)
-	move.l	%d2, -(%sp)
-	cfi_adjust_cfa_offset (4)
-	cfi_rel_offset (%d2, 0)
-	move.l	%d0, %d2
-	move.l	#SYS_ify (atomic_cmpxchg_32), %d0
-	trap	#0
-	move.l	(%sp)+, %d2
-	cfi_adjust_cfa_offset (-4)
-	cfi_restore (%d2)
-	rts
-END (__vdso_atomic_cmpxchg_32_stub)
-
-	.hidden __vdso_atomic_barrier_stub
-ENTRY (__vdso_atomic_barrier_stub)
-	move.l	%d0, -(%sp)
-	cfi_adjust_cfa_offset (4)
-	move.l	#SYS_ify (atomic_barrier), %d0
-	trap	#0
-	move.l	(%sp)+, %d0
-	cfi_adjust_cfa_offset (-4)
-	rts
-END (__vdso_atomic_barrier_stub)
-# else /* !SHARED */
-/* If the vDSO is not available, use a syscall to get TP.  */
-	strong_alias (__vdso_read_tp_stub, __m68k_read_tp)
-# endif /* SHARED */
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helpers.S b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
similarity index 98%
rename from sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helpers.S
rename to sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
index 46e1176..4a475b1 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/m68k-helpers.S
+++ b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
@@ -57,9 +57,10 @@ END (__vdso_read_tp_stub)
 	.hidden __m68k_read_tp
 # endif
 ENTRY (__m68k_read_tp)
-	lea	_GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a0
+	LOAD_GOT (%a0)
 	move.l	M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
-	jmp	([%a0])
+	move.l	(%a0), %a0
+	jmp	(%a0)
 END (__m68k_read_tp)
 
 /* The following two stubs are for macros in atomic.h, they can't

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=662d5c4052225ca8248ef55deb992310a5a2e5b2

commit 662d5c4052225ca8248ef55deb992310a5a2e5b2
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Wed Feb 8 13:34:32 2012 +0100

    m68k: don't set libc_cv_gcc_unwind_find_fde on coldfire

diff --git a/ChangeLog.m68k b/ChangeLog.m68k
index 4b0e7ba..54baf63 100644
--- a/ChangeLog.m68k
+++ b/ChangeLog.m68k
@@ -1,3 +1,8 @@
+2012-02-08  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* sysdeps/unix/sysv/linux/m68k/configure.in
+	(libc_cv_gcc_unwind_find_fde): Don't set on coldfire.
+
 2012-01-29  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* sysdeps/m68k/asm-syntax.h: Remove __STDC__ conditionals.
diff --git a/sysdeps/unix/sysv/linux/m68k/configure b/sysdeps/unix/sysv/linux/m68k/configure
index 80ba901..708b7a1 100644
--- a/sysdeps/unix/sysv/linux/m68k/configure
+++ b/sysdeps/unix/sysv/linux/m68k/configure
@@ -5,7 +5,7 @@ m68k/coldfire)
   ;;
 *)
   arch_minimum_kernel=2.0.10
+  libc_cv_gcc_unwind_find_fde=yes
   ;;
 esac
-libc_cv_gcc_unwind_find_fde=yes
 ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/sysdeps/unix/sysv/linux/m68k/configure.in b/sysdeps/unix/sysv/linux/m68k/configure.in
index e5a94ab..b25f4db 100644
--- a/sysdeps/unix/sysv/linux/m68k/configure.in
+++ b/sysdeps/unix/sysv/linux/m68k/configure.in
@@ -6,7 +6,7 @@ m68k/coldfire)
   ;;
 *)
   arch_minimum_kernel=2.0.10
+  libc_cv_gcc_unwind_find_fde=yes
   ;;
 esac
-libc_cv_gcc_unwind_find_fde=yes
 ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.m68k                                     |   14 +++
 sysdeps/m68k/coldfire/sysdep.h                     |    7 +-
 .../{arm/eabi/aeabi_sighandlers.S => m68k/crti.S}  |   59 +++++++++---
 sysdeps/{arm/initfini.c => m68k/crtn.S}            |   18 +++-
 sysdeps/m68k/m680x0/sysdep.h                       |    8 +-
 .../unix/sysv/linux/m68k/coldfire/m68k-helpers.S   |   97 --------------------
 sysdeps/unix/sysv/linux/m68k/configure             |    2 +-
 sysdeps/unix/sysv/linux/m68k/configure.in          |    2 +-
 .../sysv/linux/m68k/{m680x0 => }/m68k-helpers.S    |    5 +-
 9 files changed, 87 insertions(+), 125 deletions(-)
 copy sysdeps/{arm/eabi/aeabi_sighandlers.S => m68k/crti.S} (62%)
 copy sysdeps/{arm/initfini.c => m68k/crtn.S} (82%)
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/coldfire/m68k-helpers.S
 rename sysdeps/unix/sysv/linux/m68k/{m680x0 => }/m68k-helpers.S (98%)


hooks/post-receive
-- 
Community source repository for glibc add-on ports


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]