Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 20 Apr 2001 06:06:55 +0000 (06:06 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 20 Apr 2001 06:06:55 +0000 (06:06 +0000)
2001-04-19  Alan Modra  <amodra@one.net.au>

* Makerules (libc_pic.os): Add $(LDFLAGS-c_pic.os).
* sysdeps/hppa/Makefile (LDFLAGS-c_pic.os): Define.
(CFLAGS-.os): Remove.

* sysdeps/unix/sysv/linux/hppa/sysdep.h (CALL_MCOUNT): Update comment.

* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (NGREG, NFPREG,
gregset): Correct for new kernel definitions.

2001-04-19  Alan Modra  <alan@linuxcare.com.au>

* sysdeps/hppa/elf/initfini.c: Change dlt reg save to r3 and
generate unwind info by hand.

2001-04-19  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/powerpc/mmap64.c (__mmap64): Optimize a bit.

* configure.in: Correct regular expression for msgfmt.
Patch by Bruno Haible <haible@ilog.fr>.

ChangeLog
Makerules
sysdeps/hppa/Makefile
sysdeps/hppa/elf/initfini.c
sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
sysdeps/unix/sysv/linux/hppa/sysdep.h

index cfb3263..4331f8c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2001-04-19  Alan Modra  <amodra@one.net.au>
+
+       * Makerules (libc_pic.os): Add $(LDFLAGS-c_pic.os).
+       * sysdeps/hppa/Makefile (LDFLAGS-c_pic.os): Define.
+       (CFLAGS-.os): Remove.
+
+       * sysdeps/unix/sysv/linux/hppa/sysdep.h (CALL_MCOUNT): Update comment.
+
+       * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (NGREG, NFPREG,
+       gregset): Correct for new kernel definitions.
+
+2001-04-19  Alan Modra  <alan@linuxcare.com.au>
+
+       * sysdeps/hppa/elf/initfini.c: Change dlt reg save to r3 and
+       generate unwind info by hand.
+
+2001-04-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/powerpc/mmap64.c (__mmap64): Optimize a bit.
+
+       * configure.in: Correct regular expression for msgfmt.
+       Patch by Bruno Haible <haible@ilog.fr>.
+
 2001-04-19  Andreas Jaeger  <aj@suse.de>
 
        * po/el.po: Add comment explaining what's broken.
index 77951f3..485b5c0 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -500,7 +500,7 @@ LDFLAGS-c.so += -u __register_frame
 # between libc.so and ld.so, which can make it impossible to upgrade.
 $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
        $(LINK.o) -nostdlib -nostartfiles -r -o $@ \
-       -Wl,-d -Wl,--whole-archive $^
+       $(LDFLAGS-c_pic.os) -Wl,-d -Wl,--whole-archive $^
 # Use our own special initializer and finalizer files for libc.so.
 $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
                         $(common-objpfx)libc_pic.os \
index f6ad843..e6fb771 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2000 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 # Contributed by David Huggins-Daines (dhd@debian.org)
 
 # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-# We need this for all shared objects since the build process uses ld -r
-CFLAGS-.os += -ffunction-sections
+# We used to need this since the build process uses ld -r.  Now we use
+# ld -r --unique=.text* which does more or less the same thing, but better.
+# CFLAGS-.os += -ffunction-sections
+LDFLAGS-c_pic.os += -Wl,--unique=.text*
 
 ifeq ($(subdir),elf)
 dl-routines += dl-symaddr dl-fptr
index c058ed0..d2e07ea 100644 (file)
@@ -59,8 +59,6 @@ __asm__ ("
        .align 4
        .globl _init
        .type _init,@function
-       .proc
-       .callinfo
 _init:
        stw     %rp,-20(%sp)
        stwm    %r4,64(%sp)
@@ -68,25 +66,38 @@ _init:
        bl      __gmon_start__,%rp
        copy    %r19,%r4        /* delay slot */
        copy    %r4,%r19
-       .align 4
-       .procend
 /*@_init_PROLOG_ENDS*/
 
 /*@_init_EPILOG_BEGINS*/
-       .section .init
-       copy    %r4,%r19
-       ldw     -84(%sp),%rp
-       bv      %r0(%rp)
-       ldwm    -64(%sp),%r4
         .text
         .align 4
         .weak   __gmon_start__
         .type    __gmon_start__,@function
+__gmon_start__:
        .proc
        .callinfo
-__gmon_start__:
+       .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
+       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
+
 /*@_init_EPILOG_ENDS*/
 
 /*@_fini_PROLOG_BEGINS*/
@@ -94,23 +105,26 @@ __gmon_start__:
        .align 4
        .globl _fini
        .type _fini,@function
-       .proc
-       .callinfo
 _fini:
        stw     %rp,-20(%sp)
        stwm    %r4,64(%sp)
        stw     %r19,-32(%sp)
        copy    %r19,%r4
-       .align 4
-       .procend
 /*@_fini_PROLOG_ENDS*/
 
 /*@_fini_EPILOG_BEGINS*/
        .section .fini
-       copy    %r4,%r19
        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
+
 /*@_fini_EPILOG_ENDS*/
 
 /*@TRAILER_BEGINS*/
index c819ab1..44108f0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2001 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
 typedef unsigned long int greg_t;
 
 /* Number of general registers.  */
-#define NGREG  42
-#define NFPREG 33
+#define NGREG  80
+#define NFPREG 32
 
 /* Container for all general registers.  */
 typedef struct gregset
   {
     greg_t g_regs[32];
-    greg_t sr_regs[5];
-    greg_t g_pad[5];
+    greg_t sr_regs[8];
+    greg_t cr_regs[24];
+    greg_t g_pad[16];
   } gregset_t;
 
 /* Container for all FPU registers.  */
index 1430642..20ec736 100644 (file)
 1:     .size   C_SYMBOL_NAME(name),1b-C_SYMBOL_NAME(name)
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
-#ifdef PROF
-/* The mcount code relies on a normal frame pointer being on the stack
-   to locate our caller, so push one just for its benefit.  */
-#define CALL_MCOUNT            /* XXX */
-#else
+/* No, don't bother.  gcc will put the call in for us.  */
 #define CALL_MCOUNT            /* Do nothing.  */
-#endif
 
 /* syscall wrappers consist of
        #include <sysdep.h>
        register unsigned long __r21 __asm__("r21") = (unsigned long)r21;       \
        LOAD_ARGS_5(r26,r25,r24,r23,r22)
 
-#define ASM_ARGS_0 
+#define ASM_ARGS_0
 #define ASM_ARGS_1 , "r" (__r26)
 #define ASM_ARGS_2 , "r" (__r26), "r" (__r25)
 #define ASM_ARGS_3 , "r" (__r26), "r" (__r25), "r" (__r24)