mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-11 21:49:12 +00:00
Tune the page sizes
This commit is contained in:
parent
ff198e7577
commit
94ea34367a
12 changed files with 56 additions and 178 deletions
|
@ -72,7 +72,7 @@ SECTIONS {
|
|||
KEEP(*(SORT_NONE(.fini)))
|
||||
} =0x1f2003d5
|
||||
|
||||
.privileged ALIGN(CONSTANT(MAXPAGESIZE)) : {
|
||||
.privileged ALIGN(CONSTANT(COMMONPAGESIZE)) : {
|
||||
__privileged_start = .;
|
||||
*(.privileged*)
|
||||
} =0x1f2003d6
|
||||
|
@ -119,8 +119,8 @@ SECTIONS {
|
|||
_etext = .;
|
||||
PROVIDE(etext = .);
|
||||
|
||||
. = ALIGN(CONSTANT(MAXPAGESIZE));
|
||||
. = DATA_SEGMENT_ALIGN(CONSTANT(MAXPAGESIZE), CONSTANT(COMMONPAGESIZE));
|
||||
. = ALIGN(CONSTANT(COMMONPAGESIZE));
|
||||
. = DATA_SEGMENT_ALIGN(CONSTANT(COMMONPAGESIZE), CONSTANT(COMMONPAGESIZE));
|
||||
|
||||
.eh_frame : ONLY_IF_RW {
|
||||
KEEP(*(.eh_frame))
|
||||
|
@ -209,6 +209,7 @@ SECTIONS {
|
|||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
KEEP(*(SORT_BY_NAME(.piro.bss.sort.*)))
|
||||
*(COMMON)
|
||||
. = ALIGN(CONSTANT(COMMONPAGESIZE));
|
||||
}
|
||||
|
||||
_bss_end__ = .;
|
||||
|
|
19
ape/ape.S
19
ape/ape.S
|
@ -224,7 +224,7 @@ stub: mov $0x40,%dl // *literally* dos
|
|||
3: .byte 0xbd,0,0 // a.k.a. mov imm,%bp
|
||||
jmp pc // real mode, is real
|
||||
jmp _start // surprise it's unix
|
||||
.endfn stub
|
||||
.endfn stub,globl
|
||||
|
||||
/*─────────────────────────────────────────────────────────────────────────────╗
|
||||
│ αcτµαlly pδrταblε εxεcµταblε § ibm personal computer │
|
||||
|
@ -1073,25 +1073,10 @@ ape_pe: .ascin "PE",4
|
|||
.quad 0 // HeapReserve
|
||||
.quad 0 // HeapCommit
|
||||
.long 0 // LoaderFlags
|
||||
.long 16 // NumberOfDirectoryEntries
|
||||
.long 2 // NumberOfDirectoryEntries
|
||||
.long 0,0 // ExportsDirectory
|
||||
.stub ape_idata,long // ImportsDirectory
|
||||
.stub ape_idata_idtsize,long // ImportsDirectorySize
|
||||
.long 0,0 // ResourcesDirectory
|
||||
.long 0,0 // ExceptionsDirectory
|
||||
.long 0,0 // SecurityDirectory
|
||||
.long 0,0 // BaseRelocationTable
|
||||
.long 0,0 // DebugDirectory
|
||||
.long 0,0 // DescriptionString
|
||||
.long 0,0 // MachineSpecific
|
||||
.long 0,0 // ThreadLocalStorage
|
||||
.long 0,0 // LoadConfigurationDirectory
|
||||
.long 0,0 // BoundImportDirectory
|
||||
.stub ape_idata,long // ImportAddressDirectory
|
||||
.stub ape_idata_iatsize,long // ImportAddressDirectorySize
|
||||
.long 0,0 // DelayImportDescriptor
|
||||
.long 0,0 // ComPlusRuntimeHeader
|
||||
.long 0,0 // Reserved
|
||||
.endobj ape_pe,globl
|
||||
.previous
|
||||
|
||||
|
|
|
@ -390,7 +390,7 @@ SECTIONS {
|
|||
} :Tls :Rom
|
||||
/*END: Read Only Data */
|
||||
|
||||
. = DATA_SEGMENT_ALIGN(CONSTANT(MAXPAGESIZE), CONSTANT(COMMONPAGESIZE));
|
||||
. = DATA_SEGMENT_ALIGN(CONSTANT(COMMONPAGESIZE), CONSTANT(COMMONPAGESIZE));
|
||||
. = DATA_SEGMENT_RELRO_END(0, .);
|
||||
|
||||
/* this only tells the linker about the layout of uninitialized */
|
||||
|
@ -461,7 +461,7 @@ SECTIONS {
|
|||
|
||||
KEEP(*(.bssepilogue))
|
||||
|
||||
. = ALIGN(64);
|
||||
. = ALIGN(CONSTANT(COMMONPAGESIZE));
|
||||
|
||||
/*END: NT FORK COPYING */
|
||||
_end = .;
|
||||
|
@ -722,7 +722,7 @@ PFSTUB4(ape_pe_offset, ape_pe - ape_mz);
|
|||
ape_pe_optsz = ape_pe_sections - (ape_pe + 24);
|
||||
ape_pe_shnum = (ape_pe_sections_end - ape_pe_sections) / 40;
|
||||
ape_pe_base = IMAGE_BASE_VIRTUAL;
|
||||
ape_idata = LINK_WINDOWS ? RVA(ape_idata_iat) : 0;
|
||||
ape_idataz = LINK_WINDOWS ? RVA(ape_idata_iat) : 0;
|
||||
ape_idata_iatsize = LINK_WINDOWS ? ape_idata_iatend - ape_idata_iat : 0;
|
||||
ape_idata = LINK_WINDOWS ? RVA(ape_idata_idt) : 0;
|
||||
ape_idata_idtsize = LINK_WINDOWS ? ape_idata_idtend - ape_idata_idt : 0;
|
||||
|
|
|
@ -215,7 +215,7 @@ o/$(MODE)/ape/ape.elf.dbg: \
|
|||
o/$(MODE)/ape/launch.o \
|
||||
o/$(MODE)/ape/systemcall.o \
|
||||
ape/loader.lds
|
||||
@$(COMPILE) -ALINK.elf $(LINK) $(APE_LOADER_LDFLAGS) -o $@ $(patsubst %.lds,-T %.lds,$^)
|
||||
@$(COMPILE) -ALINK.elf $(LD) $(APE_LOADER_LDFLAGS) -o $@ $(patsubst %.lds,-T %.lds,$^)
|
||||
|
||||
.PHONY: o/$(MODE)/ape
|
||||
o/$(MODE)/ape: $(APE_CHECKS) \
|
||||
|
|
|
@ -888,7 +888,8 @@ __attribute__((__noreturn__)) void ApeLoader(long di, long *sp, char dl) {
|
|||
}
|
||||
}
|
||||
if (READ64(M->ehdr.buf) == READ64("MZqFpD='") ||
|
||||
READ64(M->ehdr.buf) == READ64("jartsr='")) {
|
||||
READ64(M->ehdr.buf) == READ64("jartsr='") ||
|
||||
READ64(M->ehdr.buf) == READ64("APEDBG='")) {
|
||||
for (p = M->ehdr.buf; p < pe; ++p) {
|
||||
if (READ64(p) != READ64("printf '")) {
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue