diff options
author | Carlos O'Donell <carlos_odonell@mentor.com> | 2012-04-17 05:29:00 +0200 |
---|---|---|
committer | Carlos O'Donell <carlos_odonell@mentor.com> | 2012-04-17 05:33:26 +0200 |
commit | c053fa34cdde3ca0faa026a31a586f16d3257a8f (patch) | |
tree | a3c08f8b3b6db1abd78076c6fc900de3a000972b /sysdeps/hppa | |
parent | cde9262435dfba6140c6e90ba9ee412044f5dbf6 (diff) | |
download | glibc-c053fa34cdde3ca0faa026a31a586f16d3257a8f.tar glibc-c053fa34cdde3ca0faa026a31a586f16d3257a8f.tar.gz glibc-c053fa34cdde3ca0faa026a31a586f16d3257a8f.tar.bz2 glibc-c053fa34cdde3ca0faa026a31a586f16d3257a8f.zip |
hppa: Remove elf/ and create crti.S/crtn.S
This patch removes the elf/ directory, moving any
special configury down a directory e.g. TLS checks.
This patch also implements the required crti.S
and crtn.S files, verifying that they match the
current implementation.
Diffstat (limited to 'sysdeps/hppa')
-rw-r--r-- | sysdeps/hppa/configure | 58 | ||||
-rw-r--r-- | sysdeps/hppa/configure.in | 45 | ||||
-rw-r--r-- | sysdeps/hppa/crti.S | 80 | ||||
-rw-r--r-- | sysdeps/hppa/crtn.S | 88 | ||||
-rwxr-xr-x | sysdeps/hppa/elf/configure | 140 | ||||
-rw-r--r-- | sysdeps/hppa/elf/configure.in | 47 | ||||
-rw-r--r-- | sysdeps/hppa/elf/initfini.c | 138 | ||||
-rw-r--r-- | sysdeps/hppa/entry.h (renamed from sysdeps/hppa/elf/entry.h) | 0 | ||||
-rw-r--r-- | sysdeps/hppa/start.S (renamed from sysdeps/hppa/elf/start.S) | 0 |
9 files changed, 270 insertions, 326 deletions
diff --git a/sysdeps/hppa/configure b/sysdeps/hppa/configure index aafc420097..c47fb6d0a3 100644 --- a/sysdeps/hppa/configure +++ b/sysdeps/hppa/configure @@ -84,7 +84,7 @@ $as_echo X/"$0" | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler line separator" >&5 $as_echo_n "checking for assembler line separator... " >&6; } -if test "${libc_cv_asm_line_sep+set}" = set; then : +if ${libc_cv_asm_line_sep+:} false; then : $as_echo_n "(cached) " >&6 else cat > conftest.s <<EOF @@ -113,3 +113,59 @@ cat >>confdefs.h <<_ACEOF #define ASM_LINE_SEP $libc_cv_asm_line_sep _ACEOF + +# Check for support of thread-local storage handling in assembler and +# linker. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hppa TLS support" >&5 +$as_echo_n "checking for hppa TLS support... " >&6; } +if ${libc_cv_hppa_tls+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.s <<\EOF +; Setup tls data +.section ".tdata","awT",@progbits +foo: .data 32 + .text +; Test general dyanmic relocations +test0: + addil LT'foo-$tls_gdidx$, %r19 + ldo RT'foo-$tls_gdidx$(%r1), %r26 + b __tls_get_addr + nop +; Test local dynamic relocations +test1: + addil LT'foo-$tls_ldidx$, %r19 + b __tls_get_addr + ldo RT'foo-$tls_ldidx$(%r1), %r26 + ldo RR'foo-$tls_dtpoff$(%r1), %r25 + ; More variables can be loaded... +; Test initial exec reloctiosn +test2: + mfctl %cr27, %r26 + addil LT'foo-$tls_ieoff$, %r19 + ldw RT'foo-$tls_ieoff$(%r1), %r25 + add %r26, %r25, %r24 +; Test local exec relocations +test3: + mfctl %cr27, %r26 + addil LR'foo-$tls_leoff$, %r26 + ldo RR'foo-$tls_leoff$(%r1), %r25 +; Done all the TLS tests. +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_hppa_tls=yes +else + libc_cv_hppa_tls=no +fi +rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hppa_tls" >&5 +$as_echo "$libc_cv_hppa_tls" >&6; } +if test $libc_cv_hppa_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 +fi diff --git a/sysdeps/hppa/configure.in b/sysdeps/hppa/configure.in index 1ec417b947..57cb941bef 100644 --- a/sysdeps/hppa/configure.in +++ b/sysdeps/hppa/configure.in @@ -19,3 +19,48 @@ else fi rm -f conftest*]) AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep) + +# Check for support of thread-local storage handling in assembler and +# linker. +AC_CACHE_CHECK(for hppa TLS support, libc_cv_hppa_tls, [dnl +cat > conftest.s <<\EOF +; Setup tls data +.section ".tdata","awT",@progbits +foo: .data 32 + .text +; Test general dyanmic relocations +test0: + addil LT'foo-$tls_gdidx$, %r19 + ldo RT'foo-$tls_gdidx$(%r1), %r26 + b __tls_get_addr + nop +; Test local dynamic relocations +test1: + addil LT'foo-$tls_ldidx$, %r19 + b __tls_get_addr + ldo RT'foo-$tls_ldidx$(%r1), %r26 + ldo RR'foo-$tls_dtpoff$(%r1), %r25 + ; More variables can be loaded... +; Test initial exec reloctiosn +test2: + mfctl %cr27, %r26 + addil LT'foo-$tls_ieoff$, %r19 + ldw RT'foo-$tls_ieoff$(%r1), %r25 + add %r26, %r25, %r24 +; Test local exec relocations +test3: + mfctl %cr27, %r26 + addil LR'foo-$tls_leoff$, %r26 + ldo RR'foo-$tls_leoff$(%r1), %r25 +; Done all the TLS tests. +EOF +dnl +if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then + libc_cv_hppa_tls=yes +else + libc_cv_hppa_tls=no +fi +rm -f conftest*]) +if test $libc_cv_hppa_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) +fi diff --git a/sysdeps/hppa/crti.S b/sysdeps/hppa/crti.S new file mode 100644 index 0000000000..4bb81bcacd --- /dev/null +++ b/sysdeps/hppa/crti.S @@ -0,0 +1,80 @@ +/* Special .init and .fini section support for HPPA + Copyright (C) 2000-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/>. */ + +/* 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 + +/* _init prologue. */ + .section .init, "ax", %progbits + .align 4 + .globl _init + .type _init,@function +_init: + stw %rp,-20(%sp) + stwm %r4,64(%sp) + stw %r19,-32(%sp) +#if PREINIT_FUNCTION_WEAK + bl PREINIT_FUNCTION,%rp + copy %r19,%r4 /* delay slot */ +#else + bl PREINIT_FUNCTION,%rp + copy %r19,%r4 /* delay slot */ +#endif + copy %r4,%r19 + +/* _fini prologue. */ + .section .fini,"ax",%progbits + .align 4 + .globl _fini + .type _fini,@function +_fini: + stw %rp,-20(%sp) + stwm %r4,64(%sp) + stw %r19,-32(%sp) + copy %r19,%r4 + diff --git a/sysdeps/hppa/crtn.S b/sysdeps/hppa/crtn.S new file mode 100644 index 0000000000..679d739aa7 --- /dev/null +++ b/sysdeps/hppa/crtn.S @@ -0,0 +1,88 @@ +/* Special .init and .fini section support for HPPA + Copyright (C) 2000-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 <sysdep.h> + +/* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + +/* Note that we cannot have a weak undefined __gmon_start__, because + that would require this to be PIC, and the linker is currently not + able to generate a proper procedure descriptor for _init. Sad but + true. Anyway, HPPA is one of those horrible architectures where + making the comparison and indirect call is quite expensive (see the + comment in sysdeps/generic/initfini.c). */ + .text + .align 4 + .weak __gmon_start__ + .type __gmon_start__,@function +__gmon_start__: + .proc + .callinfo + .entry + bv,n %r0(%r2) + .exit + .procend + +/* Here is the tail end of _init. We put __gmon_start before this so + that the assembler creates the .PARISC.unwind section for us, ie. + with the right attributes. */ + .section .init, "ax", @progbits + ldw -84(%sp),%rp + copy %r4,%r19 + bv %r0(%rp) +_end_init: + ldwm -64(%sp),%r4 + +/* Our very own unwind info, because the assembler can't handle + functions split into two or more pieces. */ + .section .PARISC.unwind + .extern _init + .word _init, _end_init + .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 + +/* Here is the tail end of _fini. */ + .section .fini, "ax", @progbits + ldw -84(%sp),%rp + copy %r4,%r19 + bv %r0(%rp) +_end_fini: + ldwm -64(%sp),%r4 + + .section .PARISC.unwind + .extern _fini + .word _fini, _end_fini + .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 + diff --git a/sysdeps/hppa/elf/configure b/sysdeps/hppa/elf/configure deleted file mode 100755 index 4df64a852b..0000000000 --- a/sysdeps/hppa/elf/configure +++ /dev/null @@ -1,140 +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/hppa/elf. - -# Check for support of thread-local storage handling in assembler and -# linker. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hppa TLS support" >&5 -$as_echo_n "checking for hppa TLS support... " >&6; } -if test "${libc_cv_hppa_tls+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.s <<\EOF -; Setup tls data -.section ".tdata","awT",@progbits -foo: .data 32 - .text -; Test general dyanmic relocations -test0: - addil LT'foo-$tls_gdidx$, %r19 - ldo RT'foo-$tls_gdidx$(%r1), %r26 - b __tls_get_addr - nop -; Test local dynamic relocations -test1: - addil LT'foo-$tls_ldidx$, %r19 - b __tls_get_addr - ldo RT'foo-$tls_ldidx$(%r1), %r26 - ldo RR'foo-$tls_dtpoff$(%r1), %r25 - ; More variables can be loaded... -; Test initial exec reloctiosn -test2: - mfctl %cr27, %r26 - addil LT'foo-$tls_ieoff$, %r19 - ldw RT'foo-$tls_ieoff$(%r1), %r25 - add %r26, %r25, %r24 -; Test local exec relocations -test3: - mfctl %cr27, %r26 - addil LR'foo-$tls_leoff$, %r26 - ldo RR'foo-$tls_leoff$(%r1), %r25 -; Done all the TLS tests. -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_hppa_tls=yes -else - libc_cv_hppa_tls=no -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hppa_tls" >&5 -$as_echo "$libc_cv_hppa_tls" >&6; } -if test $libc_cv_hppa_tls = no; then - as_fn_error $? "the assembler must support TLS" "$LINENO" 5 -fi diff --git a/sysdeps/hppa/elf/configure.in b/sysdeps/hppa/elf/configure.in deleted file mode 100644 index e31c880c1e..0000000000 --- a/sysdeps/hppa/elf/configure.in +++ /dev/null @@ -1,47 +0,0 @@ -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/hppa/elf. - -# Check for support of thread-local storage handling in assembler and -# linker. -AC_CACHE_CHECK(for hppa TLS support, libc_cv_hppa_tls, [dnl -cat > conftest.s <<\EOF -; Setup tls data -.section ".tdata","awT",@progbits -foo: .data 32 - .text -; Test general dyanmic relocations -test0: - addil LT'foo-$tls_gdidx$, %r19 - ldo RT'foo-$tls_gdidx$(%r1), %r26 - b __tls_get_addr - nop -; Test local dynamic relocations -test1: - addil LT'foo-$tls_ldidx$, %r19 - b __tls_get_addr - ldo RT'foo-$tls_ldidx$(%r1), %r26 - ldo RR'foo-$tls_dtpoff$(%r1), %r25 - ; More variables can be loaded... -; Test initial exec reloctiosn -test2: - mfctl %cr27, %r26 - addil LT'foo-$tls_ieoff$, %r19 - ldw RT'foo-$tls_ieoff$(%r1), %r25 - add %r26, %r25, %r24 -; Test local exec relocations -test3: - mfctl %cr27, %r26 - addil LR'foo-$tls_leoff$, %r26 - ldo RR'foo-$tls_leoff$(%r1), %r25 -; Done all the TLS tests. -EOF -dnl -if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then - libc_cv_hppa_tls=yes -else - libc_cv_hppa_tls=no -fi -rm -f conftest*]) -if test $libc_cv_hppa_tls = no; then - AC_MSG_ERROR([the assembler must support TLS]) -fi diff --git a/sysdeps/hppa/elf/initfini.c b/sysdeps/hppa/elf/initfini.c deleted file mode 100644 index 90964f5041..0000000000 --- a/sysdeps/hppa/elf/initfini.c +++ /dev/null @@ -1,138 +0,0 @@ -/* Special .init and .fini section support for HPPA - Copyright (C) 2000, 2002 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/>. */ - -/* This file is compiled into assembly code which is then munged by a sed - script into two files: crti.s and crtn.s. - - * 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. - - * crtn.s puts the corresponding function epilogues - in the .init and .fini sections. */ - -/* If we use the standard C version, the linkage table pointer won't - be properly preserved due to the splitting up of function prologues - and epilogues. Therefore we write these in assembly to make sure - they do the right thing. - - Note that we cannot have a weak undefined __gmon_start__, because - that would require this to be PIC, and the linker is currently not - able to generate a proper procedure descriptor for _init. Sad but - true. Anyway, HPPA is one of those horrible architectures where - making the comparison and indirect call is quite expensive (see the - comment in sysdeps/generic/initfini.c). */ - -__asm__ ("\ -\n\ -#include \"defs.h\"\n\ -\n\ -/*@HEADER_ENDS*/\n\ -\n\ -/*@_init_PROLOG_BEGINS*/\n\ - .section .init\n\ - .align 4\n\ - .globl _init\n\ - .type _init,@function\n\ -_init:\n\ - stw %rp,-20(%sp)\n\ - stwm %r4,64(%sp)\n\ - stw %r19,-32(%sp)\n\ - bl __gmon_start__,%rp\n\ - copy %r19,%r4 /* delay slot */\n\ - copy %r4,%r19\n\ -/*@_init_PROLOG_ENDS*/\n\ -\n\ -/*@_init_EPILOG_BEGINS*/\n\ - .text\n\ - .align 4\n\ - .weak __gmon_start__\n\ - .type __gmon_start__,@function\n\ -__gmon_start__:\n\ - .proc\n\ - .callinfo\n\ - .entry\n\ - bv,n %r0(%r2)\n\ - .exit\n\ - .procend\n\ -\n\ -/* Here is the tail end of _init. We put __gmon_start before this so\n\ - that the assembler creates the .PARISC.unwind section for us, ie.\n\ - with the right attributes. */\n\ - .section .init\n\ - ldw -84(%sp),%rp\n\ - copy %r4,%r19\n\ - bv %r0(%rp)\n\ -_end_init:\n\ - ldwm -64(%sp),%r4\n\ -\n\ -/* Our very own unwind info, because the assembler can't handle\n\ - functions split into two or more pieces. */\n\ - .section .PARISC.unwind\n\ - .extern _init\n\ - .word _init, _end_init\n\ - .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08\n\ -\n\ -/*@_init_EPILOG_ENDS*/\n\ -\n\ -/*@_fini_PROLOG_BEGINS*/\n\ - .section .fini\n\ - .align 4\n\ - .globl _fini\n\ - .type _fini,@function\n\ -_fini:\n\ - stw %rp,-20(%sp)\n\ - stwm %r4,64(%sp)\n\ - stw %r19,-32(%sp)\n\ - copy %r19,%r4\n\ -/*@_fini_PROLOG_ENDS*/\n\ -\n\ -/*@_fini_EPILOG_BEGINS*/\n\ - .section .fini\n\ - ldw -84(%sp),%rp\n\ - copy %r4,%r19\n\ - bv %r0(%rp)\n\ -_end_fini:\n\ - ldwm -64(%sp),%r4\n\ -\n\ - .section .PARISC.unwind\n\ - .extern _fini\n\ - .word _fini, _end_fini\n\ - .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08\n\ -\n\ -/*@_fini_EPILOG_ENDS*/\n\ -\n\ -/*@TRAILER_BEGINS*/\ -"); diff --git a/sysdeps/hppa/elf/entry.h b/sysdeps/hppa/entry.h index b024db2be7..b024db2be7 100644 --- a/sysdeps/hppa/elf/entry.h +++ b/sysdeps/hppa/entry.h diff --git a/sysdeps/hppa/elf/start.S b/sysdeps/hppa/start.S index 97196bd52d..97196bd52d 100644 --- a/sysdeps/hppa/elf/start.S +++ b/sysdeps/hppa/start.S |