Preserve Mach_segment_header.flags; fix non-PIE main programs on MacOS.

https://github.com/upx/upx/issues/222
	modified:   p_mach.cpp
	modified:   p_mach.h
	modified:   stub/src/amd64-darwin.macho-entry.S
	also *.macho-*.h, *.macho-fold.map, amd64-darwin.macho-entry.bin.dump
This commit is contained in:
John Reiser
2018-09-22 18:45:44 -07:00
parent c1cfde21d7
commit 4d1c754af9
11 changed files with 737 additions and 700 deletions
@@ -15,7 +15,7 @@ Idx Name Size VMA LMA File off Algn
10 LZMA_DEC30 00000014 0000000000000000 0000000000000000 00001737 2**0 CONTENTS, READONLY
11 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000174b 2**0 CONTENTS, READONLY
12 MACHMAINY 00000011 0000000000000000 0000000000000000 0000174b 2**0 CONTENTS, READONLY
13 MACHMAINZ 00000107 0000000000000000 0000000000000000 0000175c 2**0 CONTENTS, RELOC, READONLY
13 MACHMAINZ 00000135 0000000000000000 0000000000000000 0000175c 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
@@ -36,7 +36,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [MACHMAINX]:
OFFSET TYPE VALUE
0000000000000001 R_X86_64_PC32 MACHMAINZ+0x000000000000009a
0000000000000001 R_X86_64_PC32 MACHMAINZ+0x00000000000000c8
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@@ -59,4 +59,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [MACHMAINZ]:
OFFSET TYPE VALUE
00000000000000e7 R_X86_64_PC32 _start+0xfffffffffffffff4
0000000000000115 R_X86_64_PC32 _start+0xfffffffffffffff4