Move sysdeps/s390/s390-32/elf files

* sysdeps/s390/s390-32/elf/bsd-_setjmp.S: Moved to ...
	* sysdeps/s390/s390-32/bsd-_setjmp.S: ... here.
	* sysdeps/s390/s390-32/elf/bsd-setjmp.S: Moved to ...
	* sysdeps/s390/s390-32/bsd-setjmp.S: ... here.
	* sysdeps/s390/s390-32/elf/setjmp.S: Moved to ...
	* sysdeps/s390/s390-32/setjmp.S: ... here.
	* sysdeps/s390/s390-32/elf/configure.in: Moved to ...
	* sysdeps/s390/s390-32/configure.in: ... here.
	* sysdeps/s390/s390-32/elf/configure: Delete file.
	* sysdeps/s390/s390-32/elf/start.S: Moved to ...
	* sysdeps/s390/s390-32/start.S: ... here.
This commit is contained in:
Andreas Jaeger 2012-03-23 17:37:31 +01:00 committed by Andreas Jaeger
parent 39197fb03f
commit bbaf00a652
9 changed files with 29 additions and 310 deletions

View File

@ -1,46 +1 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. s390 version.
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
in setjmp doesn't clobber the state restored by longjmp. */
#include <sysdep.h>
ENTRY(_setjmp)
#ifdef PIC
/* We cannot use the PLT, because it requires that %r12 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT. */
basr %r1,0
.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */
/* get address of __sigjmp_save from got */
l %r1,__sigjmp_save@GOT12(0,%r1)
lhi %r3,0 /* second argument of one */
br %r1
.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0
#else
basr %r1,0
.L0: l %r1,.L1 - .L0(0,%r1) /* load address of __sigsetjmp */
lhi %r3,0 /* second argument of zero */
br %r1 /* branch to __sigsetjmp */
.L1: .long __sigsetjmp
#endif
END (_setjmp)
libc_hidden_def (_setjmp)
/* We don't need any code here since the setjmp.S file contains it. */

View File

@ -1,45 +1 @@
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. s390 version.
Copyright (C) 2000, 2001 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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/>. */
/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
We cannot do it in C because it must be a tail-call, so frame-unwinding
in setjmp doesn't clobber the state restored by longjmp. */
#include <sysdep.h>
ENTRY(setjmp)
#ifdef PIC
/* We cannot use the PLT, because it requires that %r12 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT. */
basr %r1,0
.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */
/* get address of __sigjmp_save from got */
l %r1,__sigjmp_save@GOT12(0,%r1)
lhi %r3,1 /* second argument of one */
br %r1
.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0
#else
basr %r1,0
.L0: l %r1,.L1 - .L0(0,%r1) /* load address of __sigsetjmp */
lhi %r3,1 /* second argument of zero */
br %r1 /* branch to __sigsetjmp */
.L1: .long __sigsetjmp
#endif
END (setjmp)
/* We don't need any code here since the setjmp.S file contains it. */

View File

@ -1,5 +1,5 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/s390/elf.
# Local configure fragment for sysdeps/s390.
# Check for support of thread-local storage handling in assembler and
# linker.

View File

@ -1 +0,0 @@
/* We don't need any code here since the setjmp.S file contains it. */

View File

@ -1 +0,0 @@
/* We don't need any code here since the setjmp.S file contains it. */

View File

@ -1,127 +0,0 @@
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/s390/elf.
# Check for support of thread-local storage handling in assembler and
# linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for s390 TLS support" >&5
$as_echo_n "checking for s390 TLS support... " >&6; }
if ${libc_cv_390_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.S <<\EOF
.section ".tdata", "awT", @progbits
foo: .long 25
.text
.long foo@TLSGD
.long foo@TLSLDM
.long foo@DTPOFF
.long foo@NTPOFF
.long foo@GOTNTPOFF
.long foo@INDNTPOFF
l %r1,foo@GOTNTPOFF(%r12)
l %r1,0(%r1):tls_load:foo
bas %r14,0(%r1,%r13):tls_gdcall:foo
bas %r14,0(%r1,%r13):tls_ldcall:foo
EOF
if { ac_try='${CC-cc} -S $CFLAGS conftest.S 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_390_tls=yes
else
libc_cv_390_tls=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_390_tls" >&5
$as_echo "$libc_cv_390_tls" >&6; }
if test $libc_cv_390_tls = no; then
as_fn_error $? "the assembler must support TLS" "$LINENO" 5
fi
$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h

View File

@ -1,80 +0,0 @@
/* setjmp for s390, ELF version.
Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
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>
#define _ASM
#define _SETJMP_H
#include <bits/setjmp.h>
/* We include the BSD entry points here as well but we make
them weak. */
ENTRY (setjmp)
.weak C_SYMBOL_NAME (setjmp)
lhi %r3,1 /* second argument of one */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (setjmp)
/* Binary compatibility entry point. */
ENTRY(_setjmp)
.weak C_SYMBOL_NAME (_setjmp)
lhi %r3,0 /* second argument of zero */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (_setjmp)
libc_hidden_def (_setjmp)
ENTRY(__setjmp)
lhi %r3,0 /* second argument of zero */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (__setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
#ifdef PTR_MANGLE
stm %r6,%r13,0(%r2) /* store registers in jmp_buf */
lr %r4,%r14
lr %r5,%r15
PTR_MANGLE (%r4, %r1)
PTR_MANGLE2 (%r5, %r1)
stm %r4,%r5,32(%r2)
#else
stm %r6,%r15,0(%r2) /* store registers in jmp_buf */
#endif
std %f4,40(%r2)
std %f6,48(%r2)
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lhi %r2,0
br %r14
#elif defined PIC
/* We cannot use the PLT, because it requires that %r12 be set, but
we can't save and restore our caller's value. Instead, we do an
indirect jump through the GOT. */
basr %r1,0
.L0: al %r1,.L1 - .L0(0,%r1) /* get address of global offset table */
/* get address of __sigjmp_save from got */
l %r1,__sigjmp_save@GOT12(0,%r1)
br %r1
.L1: .long _GLOBAL_OFFSET_TABLE_ - .L0
#else
basr %r1,0
.L0: l %r1,.L1-.L0(0,%r1) /* load address of __sigjmp_save */
br %r1 /* tail-call __sigjmp_save */
.L1: .long __sigjmp_save
#endif
END (__sigsetjmp)

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
/* setjmp for s390, ELF version.
Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -17,17 +17,34 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _ASM
#define _ASM
#endif
#include <sysdep.h>
#define _ASM
#define _SETJMP_H
#include <bits/setjmp.h>
/* Save the current program position in ENV and return 0. */
/* R2 = pointer to jmp_buf, R3 = savemask */
/* We include the BSD entry points here as well but we make
them weak. */
ENTRY (setjmp)
.weak C_SYMBOL_NAME (setjmp)
lhi %r3,1 /* second argument of one */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (setjmp)
/* Binary compatibility entry point. */
ENTRY(_setjmp)
.weak C_SYMBOL_NAME (_setjmp)
lhi %r3,0 /* second argument of zero */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (_setjmp)
libc_hidden_def (_setjmp)
ENTRY(__setjmp)
lhi %r3,0 /* second argument of zero */
j .Linternal_sigsetjmp /* branch relativ to __sigsetjmp */
END (__setjmp)
ENTRY(__sigsetjmp)
.Linternal_sigsetjmp:
#ifdef PTR_MANGLE
stm %r6,%r13,0(%r2) /* store registers in jmp_buf */
lr %r4,%r14
@ -58,6 +75,6 @@ ENTRY(__sigsetjmp)
basr %r1,0
.L0: l %r1,.L1-.L0(0,%r1) /* load address of __sigjmp_save */
br %r1 /* tail-call __sigjmp_save */
.L1: .long __sigjmp_save
.L1: .long __sigjmp_save
#endif
END (__sigsetjmp)