Merge sysdeps/arm/elf/ into sysdeps/arm/.

This commit is contained in:
Joseph Myers 2012-03-27 21:04:59 +00:00
parent 0be6f6f707
commit 9ec5b2613f
7 changed files with 169 additions and 249 deletions

View File

@ -1,3 +1,14 @@
2012-03-27 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/elf/start.S: Moved to ...
* sysdeps/arm/start.S: ...here.
* sysdeps/arm/elf/configure.in: Merge into ...
* sysdeps/arm/configure.in: ...here.
* sysdeps/arm/configure: Regenerated.
* sysdeps/arm/elf/configure.in: Remove file.
* sysdeps/arm/elf/configure: Likewise.
* sysdeps/unix/arm/start.c: Likewise.
2012-03-20 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/arm/register-dump.h: Include <_itoa.h>

136
sysdeps/arm/configure vendored
View File

@ -1,9 +1,129 @@
# 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/arm.
{ $as_echo "$as_me:$LINENO: checking whether the CFI directive .cfi_sections is supported" >&5
# Check for support of thread-local storage handling in assembler and
# linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM TLS support" >&5
$as_echo_n "checking for ARM TLS support... " >&6; }
if ${libc_cv_arm_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<\EOF
.section ".tdata", "awT", %progbits
.globl foo
foo: .long 1
.section ".tbss", "awT", %nobits
.globl bar
bar: .skip 4
.text
.word foo(tpoff)
.word foo(tlsgd)
EOF
if { ac_try='${CC-cc} -c $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_arm_tls=yes
else
libc_cv_arm_tls=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_tls" >&5
$as_echo "$libc_cv_arm_tls" >&6; }
if test $libc_cv_arm_tls = no; then
as_fn_error $? "the assembler must support TLS" "$LINENO" 5
fi
#AC_DEFINE(PI_STATIC_AND_HIDDEN)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the CFI directive .cfi_sections is supported" >&5
$as_echo_n "checking whether the CFI directive .cfi_sections is supported... " >&6; }
if test "${libc_cv_asm_cfi_directive_sections+set}" = set; then
if ${libc_cv_asm_cfi_directive_sections+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<EOF
@ -13,21 +133,19 @@ else
.cfi_endproc
EOF
if { ac_try='${CC-cc} $ASFLAGS -c conftest.s 1>&5'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
libc_cv_asm_cfi_directive_sections=yes
else
libc_cv_asm_cfi_directive_sections=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_cfi_directive_sections" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_cfi_directive_sections" >&5
$as_echo "$libc_cv_asm_cfi_directive_sections" >&6; }
if test $libc_cv_asm_cfi_directive_sections != yes; then
{ { $as_echo "$as_me:$LINENO: error: need .cfi_sections in this configuration" >&5
$as_echo "$as_me: error: need .cfi_sections in this configuration" >&2;}
{ (exit 1); exit 1; }; }
as_fn_error $? "need .cfi_sections in this configuration" "$LINENO" 5
fi

View File

@ -1,6 +1,37 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/arm.
# Check for support of thread-local storage handling in assembler and
# linker.
AC_CACHE_CHECK(for ARM TLS support, libc_cv_arm_tls, [dnl
cat > conftest.s <<\EOF
.section ".tdata", "awT", %progbits
.globl foo
foo: .long 1
.section ".tbss", "awT", %nobits
.globl bar
bar: .skip 4
.text
.word foo(tpoff)
.word foo(tlsgd)
EOF
dnl
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_arm_tls=yes
else
libc_cv_arm_tls=no
fi
rm -f conftest*])
if test $libc_cv_arm_tls = no; then
AC_MSG_ERROR([the assembler must support TLS])
fi
dnl It is always possible to access static and hidden symbols in an
dnl position independent way.
dnl NOTE: This feature was added by the GCC TLS patches. We should test for
dnl it. Until we do, don't define it.
#AC_DEFINE(PI_STATIC_AND_HIDDEN)
AC_CACHE_CHECK([whether the CFI directive .cfi_sections is supported],
[libc_cv_asm_cfi_directive_sections],
[cat > conftest.s <<EOF

View File

@ -1,122 +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/arm/elf.
# Check for support of thread-local storage handling in assembler and
# linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM TLS support" >&5
$as_echo_n "checking for ARM TLS support... " >&6; }
if ${libc_cv_arm_tls+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.s <<\EOF
.section ".tdata", "awT", %progbits
.globl foo
foo: .long 1
.section ".tbss", "awT", %nobits
.globl bar
bar: .skip 4
.text
.word foo(tpoff)
.word foo(tlsgd)
EOF
if { ac_try='${CC-cc} -c $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_arm_tls=yes
else
libc_cv_arm_tls=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_tls" >&5
$as_echo "$libc_cv_arm_tls" >&6; }
if test $libc_cv_arm_tls = no; then
as_fn_error $? "the assembler must support TLS" "$LINENO" 5
fi
#AC_DEFINE(PI_STATIC_AND_HIDDEN)

View File

@ -1,33 +0,0 @@
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/arm/elf.
# Check for support of thread-local storage handling in assembler and
# linker.
AC_CACHE_CHECK(for ARM TLS support, libc_cv_arm_tls, [dnl
cat > conftest.s <<\EOF
.section ".tdata", "awT", %progbits
.globl foo
foo: .long 1
.section ".tbss", "awT", %nobits
.globl bar
bar: .skip 4
.text
.word foo(tpoff)
.word foo(tlsgd)
EOF
dnl
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
libc_cv_arm_tls=yes
else
libc_cv_arm_tls=no
fi
rm -f conftest*])
if test $libc_cv_arm_tls = no; then
AC_MSG_ERROR([the assembler must support TLS])
fi
dnl It is always possible to access static and hidden symbols in an
dnl position independent way.
dnl NOTE: This feature was added by the GCC TLS patches. We should test for
dnl it. Until we do, don't define it.
#AC_DEFINE(PI_STATIC_AND_HIDDEN)

View File

@ -1,85 +0,0 @@
/* Special startup code for ARM a.out binaries.
Copyright (C) 1998, 2004, 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/>. */
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sysdep.h>
/* The first piece of initialized data. */
int __data_start = 0;
weak_alias (__data_start, data_start)
extern void __libc_init (int argc, char **argv, char **envp);
extern int main (int argc, char **argv, char **envp);
/* N.B.: It is important that this be the first function.
This file is the first thing in the text section. */
/* If this was in C it might create its own stack frame and
screw up the arguments. */
asm (".text; .globl _start; _start: B start1");
/* Fool gcc into thinking that more args are passed. This makes it look
on the stack (correctly) for the real arguments. It causes somewhat
strange register usage in start1(), but we aren't too bothered about
that at the moment. */
#define DUMMIES a1, a2, a3, a4
#ifdef DUMMIES
#define ARG_DUMMIES DUMMIES,
#define DECL_DUMMIES int DUMMIES;
#else
#define ARG_DUMMIES
#define DECL_DUMMIES
#endif
/* ARGSUSED */
static void
start1 (ARG_DUMMIES argc, argv, envp)
DECL_DUMMIES
int argc;
char **argv;
char **envp;
{
/* Store a pointer to the environment. */
__environ = envp;
/* Do C library initializations. */
__libc_init (argc, argv, __environ);
/* Call the user program. */
exit (main (argc, argv, __environ));
}