mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 21:10:07 +00:00
S/390: Fix highgprs check in startup code
This commit is contained in:
parent
724da3d7f4
commit
87a97932bd
@ -1,3 +1,9 @@
|
|||||||
|
2010-09-29 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||||
|
|
||||||
|
[BZ #12067]
|
||||||
|
* sysdeps/s390/s390-32/elf/start.S: Fix address calculation when
|
||||||
|
trying to locate the ELF header.
|
||||||
|
|
||||||
2010-09-27 Andreas Schwab <schwab@redhat.com>
|
2010-09-27 Andreas Schwab <schwab@redhat.com>
|
||||||
|
|
||||||
[BZ #11611]
|
[BZ #11611]
|
||||||
|
@ -108,7 +108,7 @@ _start:
|
|||||||
jne .L20
|
jne .L20
|
||||||
cl %r8,4(%r4) /* p_offset == 0? */
|
cl %r8,4(%r4) /* p_offset == 0? */
|
||||||
jne .L20
|
jne .L20
|
||||||
l %r9,8(%r4) /* r9 = p_vaddr <- ELF header address */
|
l %r9,8(%r4) /* r9 = PT_LOAD.p_vaddr <- ELF header address */
|
||||||
j .L24
|
j .L24
|
||||||
.L20: alr %r4,%r0 /* r4 += AT_PHENT value */
|
.L20: alr %r4,%r0 /* r4 += AT_PHENT value */
|
||||||
brct %r12,.L19
|
brct %r12,.L19
|
||||||
@ -124,16 +124,12 @@ _start:
|
|||||||
.L22: alr %r4,%r0 /* r4 += AT_PHENT value */
|
.L22: alr %r4,%r0 /* r4 += AT_PHENT value */
|
||||||
brct %r12,.L23
|
brct %r12,.L23
|
||||||
|
|
||||||
ltr %r9,%r9 /* Load address == 0? */
|
j .L14 /* No PT_PHDR found - skip checking. */
|
||||||
jz .L14 /* No checking for PIE without PT_PHDR. */
|
|
||||||
j .L21
|
|
||||||
|
|
||||||
.L25: clr %r3,%r11 /* PT_PHDR p_vaddr == AT_PHDR? */
|
.L25: slr %r11,%r3 /* AT_PHDR - PT_PHDR.p_vaddr (relocation offset)*/
|
||||||
je .L21
|
alr %r9,%r11 /* PT_LOAD.p_vaddr += relocation offset */
|
||||||
lr %r9,%r11
|
|
||||||
slr %r9,%r3 /* elf_header_addr = AT_PHDR - PT_PHDR.p_vaddr */
|
|
||||||
|
|
||||||
.L21: l %r5,36(%r9) /* Load the e_flags field. */
|
l %r5,36(%r9) /* Load the e_flags field. */
|
||||||
tml %r5,1
|
tml %r5,1
|
||||||
jz .L14 /* Binary does not require highgprs facility. */
|
jz .L14 /* Binary does not require highgprs facility. */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user