This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.15-171-gaf1dd5d
- From: kkojima at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 Feb 2012 23:08:38 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-171-gaf1dd5d
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 "GNU C Library master sources".
The branch, master has been updated
via af1dd5d680f6c454382771334de2c05456418f49 (commit)
via df83af673b1597bb6b96c855658931b989ec1551 (commit)
from d2c736f809690dd69f1cade53a61b99e401bb0e3 (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.git;a=commitdiff;h=af1dd5d680f6c454382771334de2c05456418f49
commit af1dd5d680f6c454382771334de2c05456418f49
Merge: df83af6 d2c736f
Author: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Date: Thu Feb 16 07:21:37 2012 +0900
Merge branch 'master' of git://sources.redhat.com/git/glibc
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=df83af673b1597bb6b96c855658931b989ec1551
commit df83af673b1597bb6b96c855658931b989ec1551
Author: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Date: Thu Feb 16 07:17:24 2012 +0900
Add SH target specific crti.S and crtn.S and remove initfini files.
Add sysdeps/sh/crti.S, sysdeps/sh/crtn.S and remove sysdeps/sh/elf/initfini.c
and nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c.
diff --git a/ChangeLog b/ChangeLog
index 131caa6..e153fa5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-15 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/sh/crti.S, sysdeps/sh/crtn.S: New files, based on
+ compiler output for sysdeps/generic/initfini.c.
+ * sysdeps/sh/elf/initfini.c: Remove file.
+
2012-02-16 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/Makefile: Add -fPIC when building crt{i,n}.S
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index bda2334..7dee1ad 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,7 @@
+2012-02-15 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Remove file.
+
2012-02-16 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c b/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
deleted file mode 100644
index 5e9e707..0000000
--- a/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Special .init and .fini section support for SH. NPTL version.
- Copyright (C) 2003, 2009 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 Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Library 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 Library 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.)
-
- 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 Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-/* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-
- * 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.
-
- * crtn.s puts the corresponding function epilogues
- in the .init and .fini sections. */
-
-__asm__ ("\n\
-\n\
-#include \"defs.h\"\n\
-\n\
-/*@HEADER_ENDS*/\n\
-\n\
-/*@TESTS_BEGIN*/\n\
-\n\
-/*@TESTS_END*/\n\
-\n\
-/*@_init_PROLOG_BEGINS*/\n\
- .section .init\n\
- .align 5\n\
- .global _init\n\
- .type _init,@function\n\
-_init:\n\
- mov.l r12,@-r15\n\
- mov.l r14,@-r15\n\
- sts.l pr,@-r15\n\
- mova .L22,r0\n\
- mov.l .L22,r12\n\
- add r0,r12\n\
- mova .L24,r0\n\
- mov.l .L24,r1\n\
- add r0,r1\n\
- jsr @r1\n\
- mov r15,r14\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L22:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-.L24:\n\
- .long __pthread_initialize_minimal_internal@PLT\n\
-1:\n\
- ALIGN\n\
- END_INIT\n\
-\n\
-/*@_init_PROLOG_ENDS*/\n\
-\n\
-/*@_init_EPILOG_BEGINS*/\n\
- .section .init\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- rts \n\
- mov.l @r15+,r12\n\
- END_INIT\n\
- \n\
-/*@_init_EPILOG_ENDS*/\n\
-\n\
-/*@_fini_PROLOG_BEGINS*/\n\
- .section .fini\n\
- .align 5\n\
- .global _fini\n\
- .type _fini,@function\n\
-_fini:\n\
- mov.l r12,@-r15\n\
- mov.l r14,@-r15\n\
- sts.l pr,@-r15\n\
- mova .L27,r0\n\
- mov.l .L27,r12\n\
- add r0,r12\n\
- mov r15,r14\n\
- ALIGN\n\
- END_FINI\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L27:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-1:\n\
-/*@_fini_PROLOG_ENDS*/\n\
-\n\
-/*@_fini_EPILOG_BEGINS*/\n\
- .section .fini\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- rts \n\
- mov.l @r15+,r12\n\
-\n\
- END_FINI\n\
- \n\
-/*@_fini_EPILOG_ENDS*/\n\
-\n\
-/*@TRAILER_BEGINS*/\n\
-");
diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S
new file mode 100644
index 0000000..62b6c1c
--- /dev/null
+++ b/sysdeps/sh/crti.S
@@ -0,0 +1,121 @@
+/* Special .init and .fini section support for SH.
+ Copyright (C) 2000-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 5
+ .global _init
+ .type _init, @function
+_init:
+ mov.l r12,@-r15
+ mova .L12,r0
+ mov.l .L12,r12
+ mov.l r14,@-r15
+ add r0,r12
+ sts.l pr,@-r15
+#if PREINIT_FUNCTION_WEAK
+ mov.l .L13,r0
+ mov.l @(r0,r12),r1
+ tst r1,r1
+ bt/s .L8
+ mov r15,r14
+ mov.l .L14,r1
+ bsrf r1
+.LPCS0:
+ nop
+.L8:
+#else
+ mova .L13,r0
+ mov.l .L13,r1
+ add r0,r1
+ jsr @r1
+ mov r15,r14
+#endif
+ bra 1f
+ nop
+ .align 2
+.L12:
+ .long _GLOBAL_OFFSET_TABLE_
+#if PREINIT_FUNCTION_WEAK
+.L13:
+ .long PREINIT_FUNCTION@GOT
+.L14:
+ .long PREINIT_FUNCTION@PLT-(.LPCS0+2-(.))
+#else
+.L13:
+ .long PREINIT_FUNCTION@PLT
+#endif
+1:
+
+ .section .fini,"ax",@progbits
+ .align 5
+ .global _fini
+ .type _fini, @function
+_fini:
+ mov.l r12,@-r15
+ mova .L19,r0
+ mov.l r14,@-r15
+ sts.l pr,@-r15
+ mov.l .L19,r12
+ mov r15,r14
+ add r0,r12
+ bra 0f
+ nop
+ .align 2
+.L19:
+ .long _GLOBAL_OFFSET_TABLE_
+0:
diff --git a/sysdeps/sh/crtn.S b/sysdeps/sh/crtn.S
new file mode 100644
index 0000000..1b52770
--- /dev/null
+++ b/sysdeps/sh/crtn.S
@@ -0,0 +1,54 @@
+/* Special .init and .fini section support for SH.
+ Copyright (C) 2000-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
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r12
+ rts
+ nop
+
+ .section .fini,"ax",@progbits
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r12
+ rts
+ nop
diff --git a/sysdeps/sh/elf/initfini.c b/sysdeps/sh/elf/initfini.c
deleted file mode 100644
index 442ebcb..0000000
--- a/sysdeps/sh/elf/initfini.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Special .init and .fini section support for SH.
- Copyright (C) 2000, 2002, 2009 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, see
- <http://www.gnu.org/licenses/>. */
-
-/* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-
- * 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.
-
- * crtn.s puts the corresponding function epilogues
- in the .init and .fini sections. */
-
-__asm__ ("\
-\n\
-#include \"defs.h\"\n\
-\n\
-/*@HEADER_ENDS*/\n\
-\n\
-/*@TESTS_BEGIN*/\n\
- .align 5\n\
-/*@TESTS_END*/\n\
-\n\
-/*@_init_PROLOG_BEGINS*/\n\
- .section .init,\"ax\",@progbits\n\
- .align 5\n\
- .global _init\n\
- .type _init, @function\n\
-_init:\n\
- mov.l r12,@-r15\n\
- mova .L12,r0\n\
- mov.l .L12,r12\n\
- mov.l r14,@-r15\n\
- add r0,r12\n\
- mov.l .L13,r0\n\
- sts.l pr,@-r15\n\
- mov.l @(r0,r12),r1\n\
- tst r1,r1\n\
- bt/s .L8\n\
- mov r15,r14\n\
- mov.l .L14,r1\n\
- bsrf r1\n\
-.LPCS0:\n\
- nop\n\
-.L8:\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L12:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-.L13:\n\
- .long __gmon_start__@GOT\n\
-.L14:\n\
- .long __gmon_start__@PLT-(.LPCS0+2-(.))\n\
-1:\n\
- ALIGN\n\
- END_INIT\n\
-\n\
-/*@_init_PROLOG_ENDS*/\n\
-\n\
-/*@_init_EPILOG_BEGINS*/\n\
- .section .init\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- mov.l @r15+,r12\n\
- rts \n\
- nop\n\
- END_INIT\n\
-\n\
-/*@_init_EPILOG_ENDS*/\n\
-\n\
-/*@_fini_PROLOG_BEGINS*/\n\
- .section .fini,\"ax\",@progbits\n\
- .align 5\n\
- .global _fini\n\
- .type _fini, @function\n\
-_fini:\n\
- mov.l r12,@-r15\n\
- mova .L19,r0\n\
- mov.l r14,@-r15\n\
- sts.l pr,@-r15\n\
- mov.l .L19,r12\n\
- mov r15,r14\n\
- add r0,r12\n\
- bra 0f\n\
- nop\n\
- .align 2\n\
-.L19:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-0:\n\
- ALIGN\n\
- END_FINI\n\
-\n\
-/*@_fini_PROLOG_ENDS*/\n\
- mov.l .L20,r1\n\
- bsrf r1\n\
-.LPCS1:\n\
- nop\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L20:\n\
- .long i_am_not_a_leaf@PLT-(.LPCS1+2-(.))\n\
-1:\n\
-/*@_fini_EPILOG_BEGINS*/\n\
- .section .fini\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- mov.l @r15+,r12\n\
- rts \n\
- nop\n\
- END_FINI\n\
-\n\
-/*@_fini_EPILOG_ENDS*/\n\
-\n\
-/*@TRAILER_BEGINS*/\n\
- .weak __gmon_start__\n\
-");
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 +
nptl/ChangeLog | 4 +
nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c | 125 --------------------
sysdeps/{powerpc/powerpc32 => sh}/crti.S | 83 +++++++++----
sysdeps/{i386 => sh}/crtn.S | 22 +++--
sysdeps/sh/elf/initfini.c | 152 -------------------------
6 files changed, 81 insertions(+), 311 deletions(-)
delete mode 100644 nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
copy sysdeps/{powerpc/powerpc32 => sh}/crti.S (73%)
copy sysdeps/{i386 => sh}/crtn.S (88%)
delete mode 100644 sysdeps/sh/elf/initfini.c
hooks/post-receive
--
GNU C Library master sources