1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-05 19:35:52 +03:00
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>.
This commit is contained in:
Ulrich Drepper
2001-04-20 06:06:55 +00:00
parent 821fcfd5c3
commit 49547c68f9
6 changed files with 66 additions and 31 deletions

View File

@@ -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> 2001-04-19 Andreas Jaeger <aj@suse.de>
* po/el.po: Add comment explaining what's broken. * po/el.po: Add comment explaining what's broken.

View File

@@ -500,7 +500,7 @@ LDFLAGS-c.so += -u __register_frame
# between libc.so and ld.so, which can make it impossible to upgrade. # between libc.so and ld.so, which can make it impossible to upgrade.
$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
$(LINK.o) -nostdlib -nostartfiles -r -o $@ \ $(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. # Use our own special initializer and finalizer files for libc.so.
$(common-objpfx)libc.so: $(elfobjdir)/soinit.os \ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
$(common-objpfx)libc_pic.os \ $(common-objpfx)libc_pic.os \

View 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. # This file is part of the GNU C Library.
# Contributed by David Huggins-Daines (dhd@debian.org) # Contributed by David Huggins-Daines (dhd@debian.org)
@@ -17,8 +17,10 @@
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA. # Boston, MA 02111-1307, USA.
# We need this for all shared objects since the build process uses ld -r # We used to need this since the build process uses ld -r. Now we use
CFLAGS-.os += -ffunction-sections # 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) ifeq ($(subdir),elf)
dl-routines += dl-symaddr dl-fptr dl-routines += dl-symaddr dl-fptr

View File

@@ -59,8 +59,6 @@ __asm__ ("
.align 4 .align 4
.globl _init .globl _init
.type _init,@function .type _init,@function
.proc
.callinfo
_init: _init:
stw %rp,-20(%sp) stw %rp,-20(%sp)
stwm %r4,64(%sp) stwm %r4,64(%sp)
@@ -68,25 +66,38 @@ _init:
bl __gmon_start__,%rp bl __gmon_start__,%rp
copy %r19,%r4 /* delay slot */ copy %r19,%r4 /* delay slot */
copy %r4,%r19 copy %r4,%r19
.align 4
.procend
/*@_init_PROLOG_ENDS*/ /*@_init_PROLOG_ENDS*/
/*@_init_EPILOG_BEGINS*/ /*@_init_EPILOG_BEGINS*/
.section .init
copy %r4,%r19
ldw -84(%sp),%rp
bv %r0(%rp)
ldwm -64(%sp),%r4
.text .text
.align 4 .align 4
.weak __gmon_start__ .weak __gmon_start__
.type __gmon_start__,@function .type __gmon_start__,@function
__gmon_start__:
.proc .proc
.callinfo .callinfo
__gmon_start__: .entry
bv,n %r0(%r2) bv,n %r0(%r2)
.exit
.procend .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*/ /*@_init_EPILOG_ENDS*/
/*@_fini_PROLOG_BEGINS*/ /*@_fini_PROLOG_BEGINS*/
@@ -94,23 +105,26 @@ __gmon_start__:
.align 4 .align 4
.globl _fini .globl _fini
.type _fini,@function .type _fini,@function
.proc
.callinfo
_fini: _fini:
stw %rp,-20(%sp) stw %rp,-20(%sp)
stwm %r4,64(%sp) stwm %r4,64(%sp)
stw %r19,-32(%sp) stw %r19,-32(%sp)
copy %r19,%r4 copy %r19,%r4
.align 4
.procend
/*@_fini_PROLOG_ENDS*/ /*@_fini_PROLOG_ENDS*/
/*@_fini_EPILOG_BEGINS*/ /*@_fini_EPILOG_BEGINS*/
.section .fini .section .fini
copy %r4,%r19
ldw -84(%sp),%rp ldw -84(%sp),%rp
copy %r4,%r19
bv %r0(%rp) bv %r0(%rp)
_end_fini:
ldwm -64(%sp),%r4 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*/ /*@_fini_EPILOG_ENDS*/
/*@TRAILER_BEGINS*/ /*@TRAILER_BEGINS*/

View 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@@ -33,15 +33,16 @@
typedef unsigned long int greg_t; typedef unsigned long int greg_t;
/* Number of general registers. */ /* Number of general registers. */
#define NGREG 42 #define NGREG 80
#define NFPREG 33 #define NFPREG 32
/* Container for all general registers. */ /* Container for all general registers. */
typedef struct gregset typedef struct gregset
{ {
greg_t g_regs[32]; greg_t g_regs[32];
greg_t sr_regs[5]; greg_t sr_regs[8];
greg_t g_pad[5]; greg_t cr_regs[24];
greg_t g_pad[16];
} gregset_t; } gregset_t;
/* Container for all FPU registers. */ /* Container for all FPU registers. */

View File

@@ -89,13 +89,8 @@
1: .size C_SYMBOL_NAME(name),1b-C_SYMBOL_NAME(name) 1: .size C_SYMBOL_NAME(name),1b-C_SYMBOL_NAME(name)
/* If compiled for profiling, call `mcount' at the start of each function. */ /* If compiled for profiling, call `mcount' at the start of each function. */
#ifdef PROF /* No, don't bother. gcc will put the call in for us. */
/* 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
#define CALL_MCOUNT /* Do nothing. */ #define CALL_MCOUNT /* Do nothing. */
#endif
/* syscall wrappers consist of /* syscall wrappers consist of
#include <sysdep.h> #include <sysdep.h>
@@ -231,7 +226,7 @@
register unsigned long __r21 __asm__("r21") = (unsigned long)r21; \ register unsigned long __r21 __asm__("r21") = (unsigned long)r21; \
LOAD_ARGS_5(r26,r25,r24,r23,r22) 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_1 , "r" (__r26)
#define ASM_ARGS_2 , "r" (__r26), "r" (__r25) #define ASM_ARGS_2 , "r" (__r26), "r" (__r25)
#define ASM_ARGS_3 , "r" (__r26), "r" (__r25), "r" (__r24) #define ASM_ARGS_3 , "r" (__r26), "r" (__r25), "r" (__r24)