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]

GNU C Library master sources branch, master, updated. glibc-2.15-168-gf63f338


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  f63f338062e1d390330484412840467b0ec659b0 (commit)
      from  df6a4a4aec992a20cdea2ad4cfc1341b3e96978b (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=f63f338062e1d390330484412840467b0ec659b0

commit f63f338062e1d390330484412840467b0ec659b0
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Feb 16 12:54:05 2012 -0800

    Move sparc away from the deprecated inifini.c scheme.
    
    /
    
    	* sysdeps/sparc/Makefile: Add -fPIC when building crt{i,n}.S
    	* sysdeps/sparc/crti.S: New file.
    	* sysdeps/sparc/crtn.S: New file.
    	* sysdeps/sparc/sparc32/Makefile: Remove initfini handling.
    	* sysdeps/sparc/sparc64/Makefile: Likewise.
    
    nptl/
    
    	* sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S

diff --git a/ChangeLog b/ChangeLog
index cb00422..131caa6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-02-16  David S. Miller  <davem@davemloft.net>
+
+	* sysdeps/sparc/Makefile: Add -fPIC when building crt{i,n}.S
+	* sysdeps/sparc/crti.S: New file.
+	* sysdeps/sparc/crtn.S: New file.
+	* sysdeps/sparc/sparc32/Makefile: Remove initfini handling.
+	* sysdeps/sparc/sparc64/Makefile: Likewise.
+
 2012-02-15  Mike Frysinger  <vapier@gentoo.org>
 
 	* sysdeps/unix/sysv/linux/getcwd.c: Include sys/param.h.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 657c2b0..bda2334 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,7 @@
+2012-02-16  David S. Miller  <davem@davemloft.net>
+
+	* sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
+
 2012-02-15  Marek Polacek  <polacek@redhat.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/Makefile: Remove file.
diff --git a/nptl/sysdeps/sparc/Makefile b/nptl/sysdeps/sparc/Makefile
index 81bddf6..5372867 100644
--- a/nptl/sysdeps/sparc/Makefile
+++ b/nptl/sysdeps/sparc/Makefile
@@ -1,3 +1,8 @@
 ifeq ($(subdir),csu)
 gen-as-const-headers += tcb-offsets.sym
 endif
+
+ifeq ($(subdir),nptl)
+CPPFLAGS-pt-crti.S += -fPIC
+CPPFLAGS-crtn.S += -fPIC
+endif
diff --git a/sysdeps/sparc/Makefile b/sysdeps/sparc/Makefile
index 735e4a4..45609d5 100644
--- a/sysdeps/sparc/Makefile
+++ b/sysdeps/sparc/Makefile
@@ -14,4 +14,6 @@ endif
 ifeq ($(subdir),csu)
 # get offset to rtld_global._dl_hwcap
 gen-as-const-headers += rtld-global-offsets.sym
+CPPFLAGS-crti.S += -fPIC
+CPPFLAGS-crtn.S += -fPIC
 endif
diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S
new file mode 100644
index 0000000..adb1b29
--- /dev/null
+++ b/sysdeps/sparc/crti.S
@@ -0,0 +1,104 @@
+/* Special .init and .fini section support for sparc.
+   Copyright (C) 1995-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, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* 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
+
+#ifdef __arch64__
+#define	STACKFRAME_SIZE	176
+#define GOT_LOAD	ldx
+#else
+#define	STACKFRAME_SIZE	96
+#define GOT_LOAD	ld
+#endif
+
+	.section	.init,"ax",@progbits
+	.p2align	2
+	.globl		_init
+	.type		_init, @function
+_init:
+	save		%sp, -STACKFRAME_SIZE, %sp
+#if PREINIT_FUNCTION_WEAK
+	sethi		%hi(_GLOBAL_OFFSET_TABLE_-4), %l7
+	call		__sparc_get_pc_thunk.l7
+	 add		%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+	sethi		%hi(PREINIT_FUNCTION), %g1
+	or		%g1, %lo(PREINIT_FUNCTION), %g1
+	GOT_LOAD	[%l7 + %g1], %g1
+	cmp		%g1, 0
+	be		1f
+	 nop
+	call		PREINIT_FUNCTION
+	 nop
+1:
+#else
+	call		PREINIT_FUNCTION
+	 nop
+#endif
+
+	.section	.fini,"ax",@progbits
+	.p2align	2
+	.globl		_fini
+	.type		_fini, @function
+_fini:
+	save		%sp, -STACKFRAME_SIZE, %sp
+
+	.section	.text.__sparc_get_pc_thunk.l7,"axG",@progbits,__sparc_get_pc_thunk.l7,comdat
+	.p2align	2
+	.weak		__sparc_get_pc_thunk.l7
+	.hidden		__sparc_get_pc_thunk.l7
+	.type		__sparc_get_pc_thunk.l7, #function
+__sparc_get_pc_thunk.l7:
+	jmp		%o7 + 8
+	 add		%o7, %l7, %l7
diff --git a/sysdeps/sparc/crtn.S b/sysdeps/sparc/crtn.S
new file mode 100644
index 0000000..8f3e89a
--- /dev/null
+++ b/sysdeps/sparc/crtn.S
@@ -0,0 +1,45 @@
+/* Special .init and .fini section support for sparc.
+   Copyright (C) 1995-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, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* crtn.S puts function epilogues in the .init and .fini sections
+   corresponding to the prologues in crti.S. */
+
+	.section	.init,"ax",@progbits
+	jmp		%i7 + 8
+	restore
+
+	.section	.fini,"ax",@progbits
+	jmp		%i7 + 8
+	restore
diff --git a/sysdeps/sparc/sparc32/Makefile b/sysdeps/sparc/sparc32/Makefile
index cc2bb08..fb1adaf 100644
--- a/sysdeps/sparc/sparc32/Makefile
+++ b/sysdeps/sparc/sparc32/Makefile
@@ -19,10 +19,6 @@ ifeq ($(subdir),gnulib)
 sysdep_routines = dotmul umul $(divrem) alloca
 endif	# gnulib
 
-ifeq ($(subdir),csu)
-CFLAGS-initfini.s += -mcpu=v7
-endif
-
 # We distribute these files, even though they are generated,
 # so as to avoid the need for a functioning m4 to build the library.
 divrem := sdiv udiv rem urem
diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile
index 1a859df..fb8b011 100644
--- a/sysdeps/sparc/sparc64/Makefile
+++ b/sysdeps/sparc/sparc64/Makefile
@@ -3,10 +3,6 @@ sysdep_routines += hp-timing
 elide-routines.os += hp-timing
 endif
 
-ifeq ($(subdir),csu)
-CFLAGS-initfini.s += -mcpu=v9
-endif
-
 ifeq ($(subdir),string)
 sysdep_routines += align-cpy
 endif

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

Summary of changes:
 ChangeLog                        |    8 +++++
 nptl/ChangeLog                   |    4 ++
 nptl/sysdeps/sparc/Makefile      |    5 +++
 sysdeps/sparc/Makefile           |    2 +
 sysdeps/{x86_64 => sparc}/crti.S |   62 ++++++++++++++++++++++++++-----------
 sysdeps/{x86_64 => sparc}/crtn.S |   16 +++++-----
 sysdeps/sparc/sparc32/Makefile   |    4 --
 sysdeps/sparc/sparc64/Makefile   |    4 --
 8 files changed, 70 insertions(+), 35 deletions(-)
 copy sysdeps/{x86_64 => sparc}/crti.S (68%)
 copy sysdeps/{x86_64 => sparc}/crtn.S (88%)


hooks/post-receive
-- 
GNU C Library master sources


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