[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r17037 - in /fsf/trunk/libc: ./ csu/ nptl/ nptl/sysdeps/unix/sysv/linux/i386/ sysdeps/i386/ sysdeps/i386/elf/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r17037 - in /fsf/trunk/libc: ./ csu/ nptl/ nptl/sysdeps/unix/sysv/linux/i386/ sysdeps/i386/ sysdeps/i386/elf/
- From: eglibc@xxxxxxxxxx
- Date: Wed, 08 Feb 2012 15:19:08 -0000
Author: eglibc
Date: Wed Feb 8 15:19:05 2012
New Revision: 17037
Log:
Import glibc-mainline for 2012-02-08
Added:
fsf/trunk/libc/nptl/pt-crti.S
fsf/trunk/libc/sysdeps/i386/crti.S
fsf/trunk/libc/sysdeps/i386/crtn.S
Removed:
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/Makefile
fsf/trunk/libc/sysdeps/i386/elf/Makefile
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/csu/Makefile
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/Makefile
fsf/trunk/libc/sysdeps/i386/Makefile
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed Feb 8 15:19:05 2012
@@ -1,3 +1,21 @@
+2012-02-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ Support crti.S and crtn.S provided directly by architectures.
+ * csu/Makefile [crti.S in sysdirs] (generated): Do not append.
+ [crti.S in sysdirs] (omit-deps): Likewise.
+ [crti.S in sysdirs] (CFLAGS-initfini.s): Do not define variable.
+ [crti.S in sysdirs] ($(crtstuff:%=$(objpfx)%.o)): Disable rule.
+ [crti.S in sysdirs] ($(objpfx)initfini.s): Likewise.
+ [crti.S in sysdirs] ($(objpfx)crti.S): Likewise.
+ [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise.
+ [crti.S in sysdirs] ($(patsubst %,$(objpfx)crt%.o,i n)): Likewise.
+ [crti.S in sysdirs] ($(objpfx)defs.h): Likewise.
+ [crti.S in sysdirs] (initfini.c): Remove vpath directive.
+ * sysdeps/i386/crti.S, sysdeps/i386/crtn.S: New files, based on
+ compiler output for sysdeps/generic/initfini.c.
+ * sysdeps/i386/elf/Makefile: Remove file.
+ * sysdeps/i386/Makefile (CFLAGS-initfini.s): Remove variable.
+
2012-02-07 Marek Polacek <polacek@xxxxxxxxxx>
* sysdeps/generic/_G_config.h: Remove _G_ARGS macro.
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Wed Feb 8 15:19:05 2012
@@ -9,7 +9,7 @@
* The following bugs are resolved with this release:
- 13525, 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13530,
+ 411, 13525, 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13530,
13551, 13552, 13553, 13555, 13559, 13583, 13618
* ISO C11 support:
Modified: fsf/trunk/libc/csu/Makefile
==============================================================================
--- fsf/trunk/libc/csu/Makefile (original)
+++ fsf/trunk/libc/csu/Makefile Wed Feb 8 15:19:05 2012
@@ -84,6 +84,13 @@
install-lib += $(crtstuff:=.o)
extra-objs += $(crtstuff:=.o)
+
+# Conditionals on the existence of a sysdeps version of crti.S are
+# temporary until all targets either have such a file or have been
+# removed, after which the old approach of postprocessing compiler
+# output will be removed.
+ifeq (,$(wildcard $(sysdirs:%=%/crti.S)))
+
generated += $(crtstuff:=.S) initfini.s defs.h
omit-deps += $(crtstuff)
@@ -119,6 +126,8 @@
$(objpfx)defs.h: $(objpfx)initfini.s
sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
$(AWK) -f defs.awk > $@
+
+endif
endif
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Wed Feb 8 15:19:05 2012
@@ -1,3 +1,19 @@
+2012-02-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ Support crti.S and crtn.S provided directly by architectures.
+ * Makefile [crti.S in sysdirs] (omit-deps): Do not append.
+ [crti.S in sysdirs] (CFLAGS-pt-initfini.s): Do not define variable.
+ [crti.S in sysdirs] ($(objpfx)pt-initfini.s): Disable rule.
+ [crti.S in sysdirs] ($(objpfx)crti.S): Likewise.
+ [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise.
+ [crti.S in sysdirs] ($(objpfx)defs.h): Likewise.
+ [crti.S in sysdirs] ($(objpfx)crti.o): Likewise.
+ [crti.S in sysdirs] ($(objpfx)crtn.o): Likewise.
+ [crti.S in sysdirs] (pt-initfini.c): Remove vpath directive.
+ [crti.S in sysdirs] ($(objpfx)crti.o): New rule.
+ * pt-crti.S: New file.
+ * sysdeps/unix/sysv/linux/i386/Makefile: Remove file.
+
2012-02-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
Modified: fsf/trunk/libc/nptl/Makefile
==============================================================================
--- fsf/trunk/libc/nptl/Makefile (original)
+++ fsf/trunk/libc/nptl/Makefile Wed Feb 8 15:19:05 2012
@@ -335,14 +335,22 @@
generated-dirs := $(firstword $(subst /, , $(multidir)))
crti-objs += $(multidir)/crti.o
crtn-objs += $(multidir)/crtn.o
+# Conditionals on the existence of a sysdeps version of crti.S are
+# temporary until all targets either have such a file or have been
+# removed, after which the old approach of postprocessing compiler
+# output will be removed.
+ifeq (,$(wildcard $(sysdirs:%=%/crti.S)))
omit-deps += $(multidir)/crti $(multidir)/crtn
+endif
$(objpfx)$(multidir):
mkdir -p $@
endif
extra-objs += $(crti-objs) $(crtn-objs)
+ifeq (,$(wildcard $(sysdirs:%=%/crti.S)))
omit-deps += crti crtn
CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
+endif
endif
CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
@@ -542,14 +550,23 @@
endif
ifeq ($(build-shared),yes)
+ifeq (,$(wildcard $(sysdirs:%=%/crti.S)))
vpath pt-initfini.c $(sysdirs)
$(objpfx)pt-initfini.s: pt-initfini.c
$(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \
$(patsubst -f%,-fno-%,$(exceptions)) -o $@
+endif
$(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0
$(make-test-out) 2>&1 | cmp - tst-cleanup0.expect > $@
+
+ifneq (,$(wildcard $(sysdirs:%=%/crti.S)))
+
+$(objpfx)crti.o: $(objpfx)pt-crti.o
+ ln -f $< $@
+
+else
# We only have one kind of startup code files. Static binaries and
# shared libraries are build using the PIC version.
@@ -572,6 +589,8 @@
$(objpfx)crtn.o: $(objpfx)crtn.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
+endif
+
ifneq ($(multidir),.)
$(objpfx)$(multidir)/crti.o: $(objpfx)crti.o $(objpfx)$(multidir)/
ln -f $< $@
Added: fsf/trunk/libc/nptl/pt-crti.S
==============================================================================
--- fsf/trunk/libc/nptl/pt-crti.S (added)
+++ fsf/trunk/libc/nptl/pt-crti.S Wed Feb 8 15:19:05 2012
@@ -1,0 +1,44 @@
+/* Special .init and .fini section support for libpthread.
+ 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. */
+
+/* Arrange for __pthread_initialize_minimal_internal to be called at
+ libpthread startup, instead of conditionally calling
+ __gmon_start__. */
+
+#define PREINIT_FUNCTION __pthread_initialize_minimal_internal
+#define PREINIT_FUNCTION_WEAK 0
+
+#include <crti.S>
Removed: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/Makefile
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/Makefile (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/Makefile (removed)
@@ -1,3 +1,0 @@
-ifeq ($(subdir),nptl)
-CFLAGS-pt-initfini.s += -fno-asynchronous-unwind-tables
-endif
Modified: fsf/trunk/libc/sysdeps/i386/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/Makefile (original)
+++ fsf/trunk/libc/sysdeps/i386/Makefile Wed Feb 8 15:19:05 2012
@@ -4,12 +4,6 @@
# The i386 `long double' is a distinct type we support.
long-double-fcts = yes
-
-ifeq ($(subdir),csu)
-# On i686 we must avoid generating the trampoline functions generated
-# to get the GOT pointer.
-CFLAGS-initfini.s += -march=i386 -mtune=i386
-endif
ifeq ($(subdir),gmon)
sysdep_routines += i386-mcount
Added: fsf/trunk/libc/sysdeps/i386/crti.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/crti.S (added)
+++ fsf/trunk/libc/sysdeps/i386/crti.S Wed Feb 8 15:19:05 2012
@@ -1,0 +1,85 @@
+/* Special .init and .fini section support for x86.
+ 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, 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
+ .p2align 2
+ .globl _init
+ .type _init, @function
+_init:
+ pushl %ebx
+ /* Maintain 16-byte stack alignment for called functions. */
+ subl $8, %esp
+ LOAD_PIC_REG (bx)
+#if PREINIT_FUNCTION_WEAK
+ movl PREINIT_FUNCTION@GOT(%ebx), %eax
+ testl %eax, %eax
+ je .Lno_weak_fn
+ call PREINIT_FUNCTION@PLT
+.Lno_weak_fn:
+#else
+ call PREINIT_FUNCTION
+#endif
+
+ .section .fini,"ax",@progbits
+ .p2align 2
+ .globl _fini
+ .type _fini, @function
+_fini:
+ pushl %ebx
+ subl $8, %esp
+ LOAD_PIC_REG (bx)
Added: fsf/trunk/libc/sysdeps/i386/crtn.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/crtn.S (added)
+++ fsf/trunk/libc/sysdeps/i386/crtn.S Wed Feb 8 15:19:05 2012
@@ -1,0 +1,48 @@
+/* Special .init and .fini section support for x86.
+ 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, 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
+ addl $8, %esp
+ popl %ebx
+ ret
+
+ .section .fini,"ax",@progbits
+ addl $8, %esp
+ popl %ebx
+ ret
Removed: fsf/trunk/libc/sysdeps/i386/elf/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/elf/Makefile (original)
+++ fsf/trunk/libc/sysdeps/i386/elf/Makefile (removed)
@@ -1,4 +1,0 @@
-ifeq ($(subdir),csu)
-# Turn off -fasynchronous-unwind-tables
-CFLAGS-initfini.s += -fno-asynchronous-unwind-tables
-endif
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits