mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +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>
|
||||
|
||||
[BZ #11611]
|
||||
|
@ -108,7 +108,7 @@ _start:
|
||||
jne .L20
|
||||
cl %r8,4(%r4) /* p_offset == 0? */
|
||||
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
|
||||
.L20: alr %r4,%r0 /* r4 += AT_PHENT value */
|
||||
brct %r12,.L19
|
||||
@ -124,16 +124,12 @@ _start:
|
||||
.L22: alr %r4,%r0 /* r4 += AT_PHENT value */
|
||||
brct %r12,.L23
|
||||
|
||||
ltr %r9,%r9 /* Load address == 0? */
|
||||
jz .L14 /* No checking for PIE without PT_PHDR. */
|
||||
j .L21
|
||||
j .L14 /* No PT_PHDR found - skip checking. */
|
||||
|
||||
.L25: clr %r3,%r11 /* PT_PHDR p_vaddr == AT_PHDR? */
|
||||
je .L21
|
||||
lr %r9,%r11
|
||||
slr %r9,%r3 /* elf_header_addr = AT_PHDR - PT_PHDR.p_vaddr */
|
||||
.L25: slr %r11,%r3 /* AT_PHDR - PT_PHDR.p_vaddr (relocation offset)*/
|
||||
alr %r9,%r11 /* PT_LOAD.p_vaddr += relocation offset */
|
||||
|
||||
.L21: l %r5,36(%r9) /* Load the e_flags field. */
|
||||
l %r5,36(%r9) /* Load the e_flags field. */
|
||||
tml %r5,1
|
||||
jz .L14 /* Binary does not require highgprs facility. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user