mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Update.
* po/el.po: New file. 1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * elf/dl-load.c (_dl_map_object_from_fd): Replace magic constant when processing DT_SYMBOLIC objects. 1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * elf/dl-load.c (_dl_map_object_from_fd): When looking for the program headers without PT_PHDR only require that they are contained within one of the loaded segments. Don't use assert, since that would be a bug in the object, not the dynamic linker. 1999-02-08 Richard Henderson <rth@cygnus.com> * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and restore all call-clobbered fp regs. 1999-02-08 Ulrich Drepper <drepper@cygnus.com>
This commit is contained in:
parent
c18cec57b9
commit
82d0c09944
21
ChangeLog
21
ChangeLog
@ -1,3 +1,24 @@
|
||||
1999-02-08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* po/el.po: New file.
|
||||
|
||||
1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||
|
||||
* elf/dl-load.c (_dl_map_object_from_fd): Replace magic constant
|
||||
when processing DT_SYMBOLIC objects.
|
||||
|
||||
1999-02-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||
|
||||
* elf/dl-load.c (_dl_map_object_from_fd): When looking for the
|
||||
program headers without PT_PHDR only require that they are
|
||||
contained within one of the loaded segments. Don't use assert,
|
||||
since that would be a bug in the object, not the dynamic linker.
|
||||
|
||||
1999-02-08 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and
|
||||
restore all call-clobbered fp regs.
|
||||
|
||||
1999-02-08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* po/cs.po: New file.
|
||||
|
@ -864,11 +864,18 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
||||
{
|
||||
/* There was no PT_PHDR specified. We need to find the phdr in the
|
||||
load image ourselves. We assume it is in fact in the load image
|
||||
somewhere, and that the first load command starts at the
|
||||
beginning of the file and thus contains the ELF file header. */
|
||||
ElfW(Addr) bof = l->l_addr + loadcmds[0].mapstart;
|
||||
assert (loadcmds[0].mapoff == 0);
|
||||
l->l_phdr = (void *) (bof + ((const ElfW(Ehdr) *) bof)->e_phoff);
|
||||
somewhere. */
|
||||
for (c = loadcmds; c < &loadcmds[nloadcmds]; c++)
|
||||
if (c->mapoff <= header->e_phoff
|
||||
&& (c->mapend - c->mapstart + c->mapoff
|
||||
>= header->e_phoff + header->e_phnum * sizeof (ElfW(Phdr))))
|
||||
{
|
||||
ElfW(Addr) bof = l->l_addr + c->mapstart;
|
||||
l->l_phdr = (void *) (bof + header->e_phoff - c->mapoff);
|
||||
break;
|
||||
}
|
||||
if (l->l_phdr == 0)
|
||||
LOSE ("program headers not contained in any loaded segment");
|
||||
}
|
||||
else
|
||||
/* Adjust the PT_PHDR value by the runtime load address. */
|
||||
@ -948,7 +955,7 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
||||
|
||||
/* Now move the existing entries one back. */
|
||||
memmove (&l->l_scope[1], &l->l_scope[0],
|
||||
3 * sizeof (struct r_scope_elem *));
|
||||
sizeof (l->l_scope) - sizeof (l->l_scope[0]));
|
||||
|
||||
/* Now add the new entry. */
|
||||
l->l_scope[0] = &l->l_symbolic_searchlist;
|
||||
|
@ -134,31 +134,55 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
.globl " #tramp_name "
|
||||
.ent " #tramp_name "
|
||||
" #tramp_name ":
|
||||
lda $sp, -168($sp)
|
||||
.frame $sp, 168, $26
|
||||
lda $sp, -44*8($sp)
|
||||
.frame $sp, 44*8, $26
|
||||
/* Preserve all integer registers that C normally doesn't. */
|
||||
stq $26, 0($sp)
|
||||
stq $0, 8($sp)
|
||||
stq $1, 16($sp)
|
||||
stq $2, 24($sp)
|
||||
stq $3, 32($sp)
|
||||
stq $4, 40($sp)
|
||||
stq $5, 48($sp)
|
||||
stq $6, 56($sp)
|
||||
stq $7, 64($sp)
|
||||
stq $8, 72($sp)
|
||||
stq $16, 80($sp)
|
||||
stq $17, 88($sp)
|
||||
stq $18, 96($sp)
|
||||
stq $19, 104($sp)
|
||||
stq $20, 112($sp)
|
||||
stq $21, 120($sp)
|
||||
stq $22, 128($sp)
|
||||
stq $23, 136($sp)
|
||||
stq $24, 144($sp)
|
||||
stq $25, 152($sp)
|
||||
stq $29, 160($sp)
|
||||
.mask 0x27ff01ff, -168
|
||||
stq $26, 0*8($sp)
|
||||
stq $0, 1*8($sp)
|
||||
stq $1, 2*8($sp)
|
||||
stq $2, 3*8($sp)
|
||||
stq $3, 4*8($sp)
|
||||
stq $4, 5*8($sp)
|
||||
stq $5, 6*8($sp)
|
||||
stq $6, 7*8($sp)
|
||||
stq $7, 8*8($sp)
|
||||
stq $8, 9*8($sp)
|
||||
stq $16, 10*8($sp)
|
||||
stq $17, 11*8($sp)
|
||||
stq $18, 12*8($sp)
|
||||
stq $19, 13*8($sp)
|
||||
stq $20, 14*8($sp)
|
||||
stq $21, 15*8($sp)
|
||||
stq $22, 16*8($sp)
|
||||
stq $23, 17*8($sp)
|
||||
stq $24, 18*8($sp)
|
||||
stq $25, 19*8($sp)
|
||||
stq $29, 20*8($sp)
|
||||
stt $f0, 21*8($sp)
|
||||
stt $f1, 22*8($sp)
|
||||
stt $f10, 23*8($sp)
|
||||
stt $f11, 24*8($sp)
|
||||
stt $f12, 25*8($sp)
|
||||
stt $f13, 26*8($sp)
|
||||
stt $f14, 27*8($sp)
|
||||
stt $f15, 28*8($sp)
|
||||
stt $f16, 29*8($sp)
|
||||
stt $f17, 30*8($sp)
|
||||
stt $f18, 31*8($sp)
|
||||
stt $f19, 32*8($sp)
|
||||
stt $f20, 33*8($sp)
|
||||
stt $f21, 34*8($sp)
|
||||
stt $f22, 35*8($sp)
|
||||
stt $f23, 36*8($sp)
|
||||
stt $f24, 37*8($sp)
|
||||
stt $f25, 38*8($sp)
|
||||
stt $f26, 39*8($sp)
|
||||
stt $f27, 40*8($sp)
|
||||
stt $f28, 41*8($sp)
|
||||
stt $f29, 42*8($sp)
|
||||
stt $f30, 43*8($sp)
|
||||
.mask 0x27ff01ff, -44*8
|
||||
.fmask 0xfffffc03, -(44-21)*8
|
||||
/* Set up our $gp */
|
||||
br $gp, .+4
|
||||
ldgp $gp, 0($gp)
|
||||
@ -177,31 +201,54 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
|
||||
/* Move the destination address into position. */
|
||||
mov $0, $27
|
||||
/* Restore program registers. */
|
||||
ldq $26, 0($sp)
|
||||
ldq $0, 8($sp)
|
||||
ldq $1, 16($sp)
|
||||
ldq $2, 24($sp)
|
||||
ldq $3, 32($sp)
|
||||
ldq $4, 40($sp)
|
||||
ldq $5, 48($sp)
|
||||
ldq $6, 56($sp)
|
||||
ldq $7, 64($sp)
|
||||
ldq $8, 72($sp)
|
||||
ldq $16, 80($sp)
|
||||
ldq $17, 88($sp)
|
||||
ldq $18, 96($sp)
|
||||
ldq $19, 104($sp)
|
||||
ldq $20, 112($sp)
|
||||
ldq $21, 120($sp)
|
||||
ldq $22, 128($sp)
|
||||
ldq $23, 136($sp)
|
||||
ldq $24, 144($sp)
|
||||
ldq $25, 152($sp)
|
||||
ldq $29, 160($sp)
|
||||
ldq $26, 0*8($sp)
|
||||
ldq $0, 1*8($sp)
|
||||
ldq $1, 2*8($sp)
|
||||
ldq $2, 3*8($sp)
|
||||
ldq $3, 4*8($sp)
|
||||
ldq $4, 5*8($sp)
|
||||
ldq $5, 6*8($sp)
|
||||
ldq $6, 7*8($sp)
|
||||
ldq $7, 8*8($sp)
|
||||
ldq $8, 9*8($sp)
|
||||
ldq $16, 10*8($sp)
|
||||
ldq $17, 11*8($sp)
|
||||
ldq $18, 12*8($sp)
|
||||
ldq $19, 13*8($sp)
|
||||
ldq $20, 14*8($sp)
|
||||
ldq $21, 15*8($sp)
|
||||
ldq $22, 16*8($sp)
|
||||
ldq $23, 17*8($sp)
|
||||
ldq $24, 18*8($sp)
|
||||
ldq $25, 19*8($sp)
|
||||
ldq $29, 20*8($sp)
|
||||
ldt $f0, 21*8($sp)
|
||||
ldt $f1, 22*8($sp)
|
||||
ldt $f10, 23*8($sp)
|
||||
ldt $f11, 24*8($sp)
|
||||
ldt $f12, 25*8($sp)
|
||||
ldt $f13, 26*8($sp)
|
||||
ldt $f14, 27*8($sp)
|
||||
ldt $f15, 28*8($sp)
|
||||
ldt $f16, 29*8($sp)
|
||||
ldt $f17, 30*8($sp)
|
||||
ldt $f18, 31*8($sp)
|
||||
ldt $f19, 32*8($sp)
|
||||
ldt $f20, 33*8($sp)
|
||||
ldt $f21, 34*8($sp)
|
||||
ldt $f22, 35*8($sp)
|
||||
ldt $f23, 36*8($sp)
|
||||
ldt $f24, 37*8($sp)
|
||||
ldt $f25, 38*8($sp)
|
||||
ldt $f26, 39*8($sp)
|
||||
ldt $f27, 40*8($sp)
|
||||
ldt $f28, 41*8($sp)
|
||||
ldt $f29, 42*8($sp)
|
||||
ldt $f30, 43*8($sp)
|
||||
/* Flush the Icache after having modified the .plt code. */
|
||||
" #IMB "
|
||||
/* Clean up and turn control to the destination */
|
||||
lda $sp, 168($sp)
|
||||
lda $sp, 44*8($sp)
|
||||
jmp $31, ($27)
|
||||
.end " #tramp_name)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user