Skip to content

Commit 8ce9225

Browse files
[FREELDR:APPLETV] more msvc testing
1 parent ea01202 commit 8ce9225

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

boot/freeldr/freeldr/appletv.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ else()
128128
COMMAND ${CMAKE_STRIP} --strip-all $<TARGET_FILE:freeldr_pe>)
129129
endif()
130130

131-
set_image_base(freeldr_pe 0x112000)
131+
set_image_base(freeldr_pe 0x110000)
132132
set_subsystem(freeldr_pe native)
133133
set_entrypoint(freeldr_pe AppleTVEntry)
134134

boot/freeldr/freeldr/include/arch/pc/x86common.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
#define STACKADDR HEX(F000) /* The 32/64-bit stack top will be at 0000:F000, or 0xF000 */
1717

1818
#ifdef SARCH_APPLETV
19-
#define FREELDR_BASE HEX(111000)
20-
#define FREELDR_PE_BASE HEX(112000)
19+
#define FREELDR_BASE HEX(10F000)
20+
#define FREELDR_PE_BASE HEX(110000)
2121
#else
2222
#define FREELDR_BASE HEX(F800)
2323
#define FREELDR_PE_BASE HEX(10000)

sdk/tools/pe2macho/pe2macho.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
6262
UINT32 MachoInfoSize;
6363
PMACHO_HEADER MachoHeader;
6464
PMACHO_SEGMENT_COMMAND MachoSegmentCommand;
65-
PMACHO_SECTION MachoSection;
65+
//PMACHO_SECTION MachoSection;
6666
PMACHO_THREAD_COMMAND_X86 MachoUnixThread;
6767
UINT32 SizeOfExecData;
6868

@@ -71,7 +71,7 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
7171

7272
MachoInfoSize = sizeof(MACHO_HEADER)
7373
+ sizeof(MACHO_SEGMENT_COMMAND)
74-
+ sizeof(MACHO_SECTION)
74+
//+ sizeof(MACHO_SECTION)
7575
+ sizeof(MACHO_THREAD_COMMAND_X86);
7676

7777
MachoHeader = malloc(MachoInfoSize);
@@ -83,7 +83,7 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
8383

8484
memset(MachoHeader, 0, MachoInfoSize);
8585

86-
SizeOfExecData = PeSize - 0x1000 - 1;
86+
SizeOfExecData = PeSize - 0x1000;
8787

8888
// Fill out Mach-O header.
8989
MachoHeader->MagicNumber = MACHO_MAGIC;
@@ -102,7 +102,7 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
102102
MachoSegmentCommand = (PMACHO_SEGMENT_COMMAND) (((PUCHAR) MachoHeader) + sizeof(MACHO_HEADER));
103103

104104
MachoSegmentCommand->Command = MACHO_LC_SEGMENT;
105-
MachoSegmentCommand->CommandSize = sizeof(MACHO_SEGMENT_COMMAND) + sizeof(MACHO_SECTION);
105+
MachoSegmentCommand->CommandSize = sizeof(MACHO_SEGMENT_COMMAND);
106106

107107
strcpy(MachoSegmentCommand->SegmentName, "__TEXT");
108108

@@ -115,9 +115,10 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
115115
MachoSegmentCommand->MaximumProtection = 7; // ???
116116
MachoSegmentCommand->InitialProtection = 5; // ???
117117

118-
MachoSegmentCommand->NumberOfSections = 1;
118+
MachoSegmentCommand->NumberOfSections = 0;
119119
MachoSegmentCommand->Flags = 0;
120120

121+
/*
121122
// Fill out first and only section.
122123
MachoSection = (PMACHO_SECTION) (((PUCHAR) MachoSegmentCommand) + sizeof(MACHO_SEGMENT_COMMAND));
123124
@@ -140,6 +141,8 @@ CreateMachOHeaderFromPeHeader(PIMAGE_OPTIONAL_HEADER32 OptionalHeader, UINT32 Pe
140141
141142
// Fill out second load command.
142143
MachoUnixThread = (PMACHO_THREAD_COMMAND_X86) (((PUCHAR) MachoSection) + sizeof(MACHO_SECTION));
144+
*/
145+
MachoUnixThread = (PMACHO_THREAD_COMMAND_X86) (((PUCHAR) MachoSegmentCommand) + sizeof(MACHO_SEGMENT_COMMAND));
143146

144147
MachoUnixThread->Command = MACHO_LC_UNIXTHREAD;
145148
MachoUnixThread->CommandSize = sizeof(MACHO_THREAD_COMMAND_X86);

0 commit comments

Comments
 (0)