mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Merge sysdeps/arm/elf/ into sysdeps/arm/.
This commit is contained in:
parent
0be6f6f707
commit
9ec5b2613f
@ -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
136
sysdeps/arm/configure
vendored
@ -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
|
||||
|
@ -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
|
||||
|
122
sysdeps/arm/elf/configure
vendored
122
sysdeps/arm/elf/configure
vendored
@ -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)
|
@ -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)
|
@ -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));
|
||||
}
|
Loading…
Reference in New Issue
Block a user