spell check typos
modified: p_lx_exc.cpp modified: p_mach.cpp modified: stub/src/amd64-linux.elf-so_main.c modified: stub/src/i386-linux.elf-so_main.c modified: stub/src/arch/mips/r3000/bits.ash modified: stub/src/arm.v4a-linux.elf-fold.S modified: stub/src/arm.v4a-linux.shlib-init.S modified: stub/src/arm64-linux.shlib-init.S modified: stub/src/i386-linux.elf-main.c modified: stub/src/mipsel.r3000-linux.elf-entry.S
This commit is contained in:
committed by
Markus F.X.J. Oberhumer
parent
3a16d4a12e
commit
43b3b54197
+1
-1
@@ -446,7 +446,7 @@ int PackLinuxI386::getLoaderPrefixSize() const
|
|||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// some ELF utitlity functions
|
// some ELF utility functions
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
// basic check of a Linux ELF Ehdr
|
// basic check of a Linux ELF Ehdr
|
||||||
|
|||||||
+2
-2
@@ -94,7 +94,7 @@ static const
|
|||||||
// end of processing by dyld. Relocation, loading of dependent libraries,
|
// end of processing by dyld. Relocation, loading of dependent libraries,
|
||||||
// etc., already have taken place before decompression. So the Mach-o
|
// etc., already have taken place before decompression. So the Mach-o
|
||||||
// headers, the __IMPORT segment, the __LINKEDIT segment, anything
|
// headers, the __IMPORT segment, the __LINKEDIT segment, anything
|
||||||
// that is modifed by relocation, etc., cannot be compressed.
|
// that is modified by relocation, etc., cannot be compressed.
|
||||||
// We simplify arbitrarily by compressing only the __TEXT segment,
|
// We simplify arbitrarily by compressing only the __TEXT segment,
|
||||||
// which must be the first segment.
|
// which must be the first segment.
|
||||||
|
|
||||||
@@ -2034,7 +2034,7 @@ bool PackMachBase<T>::canPack()
|
|||||||
if (vma_max < t) {
|
if (vma_max < t) {
|
||||||
vma_max = t;
|
vma_max = t;
|
||||||
}
|
}
|
||||||
// Segments need not be contigous (esp. "rust"/"go")
|
// Segments need not be contiguous (esp. "rust"/"go")
|
||||||
sz_segment = msegcmd[j].filesize + msegcmd[j].fileoff - msegcmd[0].fileoff;
|
sz_segment = msegcmd[j].filesize + msegcmd[j].fileoff - msegcmd[0].fileoff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -561,9 +561,9 @@ upx_so_main( // returns &escape_hatch
|
|||||||
x1.buf += frag;
|
x1.buf += frag;
|
||||||
x1.size = al_bi.sz_unc;
|
x1.size = al_bi.sz_unc;
|
||||||
x0.size = al_bi.sz_cpr + sizeof(struct b_info);
|
x0.size = al_bi.sz_cpr + sizeof(struct b_info);
|
||||||
DPRINTF("befor unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
DPRINTF("before unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
||||||
unpackExtent(&x0, &x1); // updates x0 and x1
|
unpackExtent(&x0, &x1); // updates x0 and x1
|
||||||
DPRINTF("after unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
DPRINTF(" after unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
||||||
|
|
||||||
if (!hatch && phdr->p_flags & PF_X) {
|
if (!hatch && phdr->p_flags & PF_X) {
|
||||||
#if defined(__x86_64) //{
|
#if defined(__x86_64) //{
|
||||||
|
|||||||
@@ -458,7 +458,7 @@ init_sz = . - init_sz
|
|||||||
.if (1 == 1)
|
.if (1 == 1)
|
||||||
b \ret
|
b \ret
|
||||||
nop
|
nop
|
||||||
.else // works on real hdw, allmost fail on sim
|
.else // works on real hdw, almost fail on sim
|
||||||
bal t
|
bal t
|
||||||
addiu ra, (\ret + 4) - (. + 4)
|
addiu ra, (\ret + 4) - (. + 4)
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ F_delta= 3*4
|
|||||||
sweep:
|
sweep:
|
||||||
ldr r7,[sp],#-(1<<5) @ extend stack; read allocate 32 bytes
|
ldr r7,[sp],#-(1<<5) @ extend stack; read allocate 32 bytes
|
||||||
str r7,[sp] @ make it dirty
|
str r7,[sp] @ make it dirty
|
||||||
ldr r7,[sp] @ read alocate again in case dirtying caused COW split
|
ldr r7,[sp] @ read allocate again in case dirtying caused COW split
|
||||||
cmp r12,sp; blo sweep
|
cmp r12,sp; blo sweep
|
||||||
|
|
||||||
add sp,sp,#(1<<18) @ pop stack
|
add sp,sp,#(1<<18) @ pop stack
|
||||||
|
|||||||
@@ -355,7 +355,7 @@ L620: // Implant escape hatch at end of .text
|
|||||||
|
|
||||||
movsl_subr:
|
movsl_subr:
|
||||||
ldr ecx,[esi,#-4] // 'bl <over>' instruction word
|
ldr ecx,[esi,#-4] // 'bl <over>' instruction word
|
||||||
bic ecx,ecx,#0xff<<24 // displacment field
|
bic ecx,ecx,#0xff<<24 // displacement field
|
||||||
add ecx,ecx,#1 // displ omits one word
|
add ecx,ecx,#1 // displ omits one word
|
||||||
// FALL THROUGH to the part of 'movsl' that trims to a multiple of 8 words.
|
// FALL THROUGH to the part of 'movsl' that trims to a multiple of 8 words.
|
||||||
// 7/8 of the time this is faster; 1/8 of the time it's slower.
|
// 7/8 of the time this is faster; 1/8 of the time it's slower.
|
||||||
@@ -434,7 +434,7 @@ get4u:
|
|||||||
|
|
||||||
wlen_subr: // edx+= nwords of inline subr at *tmp
|
wlen_subr: // edx+= nwords of inline subr at *tmp
|
||||||
ldr tmp,[tmp,#-4] // 'bl <over>' instruction word
|
ldr tmp,[tmp,#-4] // 'bl <over>' instruction word
|
||||||
bic tmp,tmp,#0xff<<24 // displacment field
|
bic tmp,tmp,#0xff<<24 // displacement field
|
||||||
add tmp,tmp,#1 // displ omits one word
|
add tmp,tmp,#1 // displ omits one word
|
||||||
add edx,edx,tmp
|
add edx,edx,tmp
|
||||||
ret
|
ret
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ L620: // Implant escape hatch at end of .text
|
|||||||
|
|
||||||
movsl_subr:
|
movsl_subr:
|
||||||
ldr ecx,[rsi,#-4] // 'bl <over>' instruction word
|
ldr ecx,[rsi,#-4] // 'bl <over>' instruction word
|
||||||
bic ecx,ecx,#0xff<<24 // displacment field
|
bic ecx,ecx,#0xff<<24 // displacement field
|
||||||
movsl: // rdi= 4-byte aligned dst; rsi= 4-byte aligned src; ecx= word count
|
movsl: // rdi= 4-byte aligned dst; rsi= 4-byte aligned src; ecx= word count
|
||||||
tbz ecx,#0,5f // goto 5f if ecx is even
|
tbz ecx,#0,5f // goto 5f if ecx is even
|
||||||
ldr w3,[rsi],#4
|
ldr w3,[rsi],#4
|
||||||
@@ -416,7 +416,7 @@ L220:
|
|||||||
|
|
||||||
wlen_subr: // rdx+= nwords of inline subr at *tmp
|
wlen_subr: // rdx+= nwords of inline subr at *tmp
|
||||||
ldr w3,[x3,#-4] // 'bl <over>' instruction word
|
ldr w3,[x3,#-4] // 'bl <over>' instruction word
|
||||||
bic w3,w3,#0xff<<24 // displacment field
|
bic w3,w3,#0xff<<24 // displacement field
|
||||||
add rdx,rdx,x3
|
add rdx,rdx,x3
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|||||||
@@ -744,7 +744,7 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, Extent *const xi,
|
|||||||
#endif //}
|
#endif //}
|
||||||
PROT_WRITE | PROT_READ);
|
PROT_WRITE | PROT_READ);
|
||||||
|
|
||||||
if (xi) { // compresed source: Pprotect(,,prot) later
|
if (xi) { // compressed source: Pprotect(,,prot) later
|
||||||
if (addr != mmap_privanon(addr, LEN_OVER + mlen,
|
if (addr != mmap_privanon(addr, LEN_OVER + mlen,
|
||||||
#if defined(__arm__) //{
|
#if defined(__arm__) //{
|
||||||
((PF_X & phdr->p_flags) ? PROT_EXEC : 0) |
|
((PF_X & phdr->p_flags) ? PROT_EXEC : 0) |
|
||||||
|
|||||||
@@ -620,9 +620,9 @@ upx_so_main( // returns &escape_hatch
|
|||||||
x1.buf += frag;
|
x1.buf += frag;
|
||||||
x1.size = al_bi.sz_unc;
|
x1.size = al_bi.sz_unc;
|
||||||
x0.size = al_bi.sz_cpr + sizeof(struct b_info);
|
x0.size = al_bi.sz_cpr + sizeof(struct b_info);
|
||||||
DPRINTF("befor unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
DPRINTF("before unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
||||||
unpackExtent(&x0, &x1); // updates x0 and x1
|
unpackExtent(&x0, &x1); // updates x0 and x1
|
||||||
DPRINTF("after unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
DPRINTF(" after unpack x0=(%%p %%p x1=(%%p %%p)\\n", x0.size, x0.buf, x1.size, x1.buf);
|
||||||
|
|
||||||
if (!hatch && phdr->p_flags & PF_X) {
|
if (!hatch && phdr->p_flags & PF_X) {
|
||||||
#if defined(__i386__) //{
|
#if defined(__i386__) //{
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ unfold: // IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD
|
|||||||
lw $r_szuf,sz_unc($r_FOLD) // sz_unc of fold
|
lw $r_szuf,sz_unc($r_FOLD) // sz_unc of fold
|
||||||
li a3,MAP_PRIVATE|MAP_ANONYMOUS
|
li a3,MAP_PRIVATE|MAP_ANONYMOUS
|
||||||
sub $r_elfa,$r_elfa,$r_LENX // $r_elfa= &Elf32_Ehdr of this stub
|
sub $r_elfa,$r_elfa,$r_LENX // $r_elfa= &Elf32_Ehdr of this stub
|
||||||
li a0,0 // kenrel chooses addr
|
li a0,0 // kernel chooses addr
|
||||||
move a1,$r_szuf
|
move a1,$r_szuf
|
||||||
bal mmapRW0
|
bal mmapRW0
|
||||||
sw a1,F_LENU(sp)
|
sw a1,F_LENU(sp)
|
||||||
|
|||||||
Reference in New Issue
Block a user