[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r21597 - in /fsf/trunk/libc: ./ elf/ sysdeps/s390/ sysdeps/unix/sysv/linux/s390/bits/ sysdeps/unix/sysv/linux/sparc/sparc64/...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r21597 - in /fsf/trunk/libc: ./ elf/ sysdeps/s390/ sysdeps/unix/sysv/linux/s390/bits/ sysdeps/unix/sysv/linux/sparc/sparc64/...
- From: eglibc@xxxxxxxxxx
- Date: Fri, 09 Nov 2012 00:01:57 -0000
Author: eglibc
Date: Fri Nov 9 00:01:55 2012
New Revision: 21597
Log:
Import glibc-mainline for 2012-11-09
Added:
fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/elf/elf.h
fsf/trunk/libc/sysdeps/s390/dl-procinfo.c
fsf/trunk/libc/sysdeps/s390/dl-procinfo.h
fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
fsf/trunk/libc/sysdeps/x86/Makefile
fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Nov 9 00:01:55 2012
@@ -1,3 +1,34 @@
+2012-11-08 Andreas Krebbel <Andreas.Krebbel@xxxxxxxxxx>
+
+ * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add "te".
+ * sysdeps/s390/dl-procinfo.h (HWCAP_S390_TE): Add enum value.
+ * sysdeps/unix/sysv/linux/s390/hwcap.h (HWCAP_S390_TE): Add macro
+ definition.
+
+2012-11-08 Marcus Shawcroft <marcus.shawcroft@xxxxxxxxxx>
+
+ * elf/elf.h: Update comment before AArch64 relocations.
+
+2012-11-07 David S. Miller <davem@xxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S: New file.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
+ (__start_context): Declare.
+ (__makecontext_ret): Delete.
+ (__makecontext): Hook up __start_context instead of
+ __makecontext_ret.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+ (sysdep_routines): Add __start_context when in stdlib.
+
+2012-11-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/x86/Makefile ($(objpfx)tst-xmmymm.out): Pass $(NM),
+ $(OBJDUMP) and $(READELF) to tst-xmmymm.sh.
+ * sysdeps/x86/tst-xmmymm.sh (NM): New variable. Use it instead of
+ hardcoded "nm".
+ (OBJDUMP): New variable. Use it instead of hardcoded "objdump".
+ (READELF): New variable. Use it instead of hardcoded "readelf".
+
2012-11-07 H.J. Lu <hongjiu.lu@xxxxxxxxx>
* sysdeps/x86_64/Makefile ($(objpfx)tst-xmmymm.out): Moved to ...
Modified: fsf/trunk/libc/elf/elf.h
==============================================================================
--- fsf/trunk/libc/elf/elf.h (original)
+++ fsf/trunk/libc/elf/elf.h Fri Nov 9 00:01:55 2012
@@ -2310,7 +2310,7 @@
#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
-/* AArch64 specific declarations. */
+/* AArch64 relocs. */
#define R_AARCH64_NONE 0 /* No relocation. */
#define R_AARCH64_ABS64 257 /* Direct 64 bit. */
Modified: fsf/trunk/libc/sysdeps/s390/dl-procinfo.c
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/dl-procinfo.c (original)
+++ fsf/trunk/libc/sysdeps/s390/dl-procinfo.c Fri Nov 9 00:01:55 2012
@@ -46,11 +46,11 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_s390_cap_flags
#else
-PROCINFO_CLASS const char _dl_s390_cap_flags[10][9]
+PROCINFO_CLASS const char _dl_s390_cap_flags[11][9]
#endif
#ifndef PROCINFO_DECL
= {
- "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh", "highgprs"
+ "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh", "highgprs", "te"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
Modified: fsf/trunk/libc/sysdeps/s390/dl-procinfo.h
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/dl-procinfo.h (original)
+++ fsf/trunk/libc/sysdeps/s390/dl-procinfo.h Fri Nov 9 00:01:55 2012
@@ -33,7 +33,9 @@
/* Hardware capablity bit numbers are derived directly from the
facility indications as stored by the "store facility list" (STFL)
- instruction. */
+ instruction.
+ highgprs is an alien in that list. It describes a *kernel*
+ capability. */
enum
{
@@ -47,6 +49,7 @@
HWCAP_S390_HPAGE = 1 << 7,
HWCAP_S390_ETF3EH = 1 << 8,
HWCAP_S390_HIGH_GPRS = 1 << 9,
+ HWCAP_S390_TE = 1 << 10,
};
#define HWCAP_IMPORTANT (HWCAP_S390_ZARCH | HWCAP_S390_LDISP \
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/hwcap.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/hwcap.h Fri Nov 9 00:01:55 2012
@@ -34,3 +34,4 @@
#define HWCAP_S390_HPAGE 128
#define HWCAP_S390_ETF3EH 256
#define HWCAP_S390_HIGH_GPRS 512
+#define HWCAP_S390_TE 1024
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile Fri Nov 9 00:01:55 2012
@@ -3,3 +3,7 @@
sysdep-CFLAGS += -fcall-used-g6
LD += -melf64_sparc
+
+ifeq ($(subdir),stdlib)
+sysdep_routines += __start_context
+endif
Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S Fri Nov 9 00:01:55 2012
@@ -1,0 +1,36 @@
+/* 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.
+
+ 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/>. */
+
+#include <sysdep.h>
+
+ .text
+
+/* This is the helper code which gets called if a function which is
+ registered with 'makecontext' returns. In this case we have to
+ install the context listed in the uc_link element of the context
+ 'makecontext' manipulated at the time of the 'makecontext' call.
+ If the pointer is NULL the process must terminate. */
+
+ENTRY(__start_context)
+ brz,pn %i0, 1f
+ mov 1, %o1
+ call __setcontext
+ mov %i0, %o0
+1: call HIDDEN_JUMPTARGET(exit)
+ mov 0, %o0
+ unimp 0
+END(__start_context)
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c Fri Nov 9 00:01:55 2012
@@ -21,6 +21,8 @@
#include <stdlib.h>
#include <ucontext.h>
+extern void __start_context (struct ucontext *ucp);
+
void
__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
{
@@ -37,7 +39,7 @@
ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func;
ucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) func) + 4;
ucp->uc_mcontext.mc_gregs[MC_O6] = ((long) sp) - 0x7ff;
- ucp->uc_mcontext.mc_gregs[MC_O7] = ((long) __makecontext_ret) - 8;
+ ucp->uc_mcontext.mc_gregs[MC_O7] = ((long) __start_context) - 8;
ucp->uc_mcontext.mc_fp = ((long) topsp) - 0x7ff;
ucp->uc_mcontext.mc_i7 = 0;
topsp[14] = 0;
@@ -52,15 +54,4 @@
va_end (ap);
}
-asm (" \n\
- .text \n\
- .type __makecontext_ret, #function \n\
-__makecontext_ret: \n\
- mov 1, %o1 \n\
- call __setcontext \n\
- mov %i0, %o0 \n\
- unimp 0 \n\
- .size __makecontext_ret, .-__makecontext_ret \n\
- ");
-
weak_alias (__makecontext, makecontext)
Modified: fsf/trunk/libc/sysdeps/x86/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/Makefile (original)
+++ fsf/trunk/libc/sysdeps/x86/Makefile Fri Nov 9 00:01:55 2012
@@ -5,5 +5,5 @@
tests: $(objpfx)tst-xmmymm.out
$(objpfx)tst-xmmymm.out: ../sysdeps/x86/tst-xmmymm.sh $(objpfx)ld.so
@echo "Checking ld.so for SSE register use. This will take a few seconds..."
- $(SHELL) $< $(objpfx) > $@
+ $(SHELL) $< $(objpfx) '$(NM)' '$(OBJDUMP)' '$(READELF)' > $@
endif
Modified: fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh (original)
+++ fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh Fri Nov 9 00:01:55 2012
@@ -20,18 +20,21 @@
set -e
objpfx="$1"
+NM="$2"
+OBJDUMP="$3"
+READELF="$4"
tmp=$(mktemp ${objpfx}tst-xmmymm.XXXXXX)
trap 'rm -f "$tmp"' 1 2 3 15
# List of object files we have to test
-rtldobjs=$(readelf -W -wi ${objpfx}dl-allobjs.os |
+rtldobjs=$($READELF -W -wi ${objpfx}dl-allobjs.os |
awk '/^ </ { if ($5 == "(DW_TAG_compile_unit)") c=1; else c=0 } $2 == "DW_AT_name" { if (c == 1) print $NF }' |
sed 's,\(.*/\|\)\([_[:alnum:]-]*[.]\).$,\2os,')
rtldobjs="$rtldobjs $(ar t ${objpfx}rtld-libc.a)"
# OBJECT symbols can be ignored.
-readelf -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
+$READELF -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
egrep " OBJECT *GLOBAL " |
awk '{if ($7 != "ABS") print $8 }' |
sort -u > "$tmp"
@@ -46,7 +49,7 @@
objs=""
for f in $this; do
- undef=$(nm -u "$objpfx"../*/"$f" | awk '{print $2}')
+ undef=$($NM -u "$objpfx"../*/"$f" | awk '{print $2}')
if test -n "$undef"; then
for s in $undef; do
for obj in ${objects[*]} "_GLOBAL_OFFSET_TABLE_"; do
@@ -56,7 +59,7 @@
done
for o in $rtldobjs; do
ro=$(echo "$objpfx"../*/"$o")
- if nm -g --defined-only "$ro" | egrep -qs " $s\$"; then
+ if $NM -g --defined-only "$ro" | egrep -qs " $s\$"; then
if ! (echo "$tocheck $objs" | fgrep -qs "$o"); then
echo "$o needed for $s"
objs="$objs $o"
@@ -76,7 +79,7 @@
cp /dev/null "$tmp"
for f in $tocheck; do
- objdump -d "$objpfx"../*/"$f" |
+ $OBJDUMP -d "$objpfx"../*/"$f" |
awk 'BEGIN { last="" } /^[[:xdigit:]]* <[_[:alnum:]]*>:$/ { fct=substr($2, 2, length($2)-3) } /,%[xy]mm[[:digit:]]*$/ { if (last != fct) { print fct; last=fct} }' |
while read fct; do
if test "$fct" = "_dl_runtime_profile" -o "$fct" = "_dl_x86_64_restore_sse"; then
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits