Skip to content

Commit

Permalink
Re-enable apelink size optimization
Browse files Browse the repository at this point in the history
I'm no longer able to reproduce the PE import table corruption that was
previously observed. Since this optimization shaves up to 64kb off each
fat APE binary we build, it's worth turning this back on again, to wait
and see if something breaks, and if so, fix it. At least until the next
release is shipped.

See #965
  • Loading branch information
jart committed Nov 29, 2023
1 parent ff955aa commit 7b3d7ee
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions tool/build/apelink.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#include "libc/elf/struct/phdr.h"
#include "libc/fmt/conv.h"
#include "libc/fmt/itoa.h"
#include "libc/serialize.h"
#include "libc/limits.h"
#include "libc/macho.internal.h"
#include "libc/macros.internal.h"
Expand All @@ -40,6 +39,7 @@
#include "libc/nt/struct/imagesectionheader.internal.h"
#include "libc/runtime/runtime.h"
#include "libc/runtime/symbols.internal.h"
#include "libc/serialize.h"
#include "libc/stdalign.internal.h"
#include "libc/stdckdint.h"
#include "libc/stdio/stdio.h"
Expand Down Expand Up @@ -1459,10 +1459,9 @@ static char *SecondPass2(char *p, struct Input *in) {
// the new file size. that's only possible if all the fat ape hdrs
// we generate are able to fit inside the prologue.
p = ALIGN(p, 8);
// TODO(jart): Figure out why not skewing corrupts pe import table
in->we_must_skew_pe_vaspace =
1 || ROUNDUP(p - prologue + in->size_of_pe_headers,
(int)in->pe->OptionalHeader.FileAlignment) > in->minload;
ROUNDUP(p - prologue + in->size_of_pe_headers,
(int)in->pe->OptionalHeader.FileAlignment) > in->minload;
if (!in->we_must_skew_pe_vaspace) {
in->pe_e_lfanew = p - prologue;
in->pe_SizeOfHeaders = in->pe->OptionalHeader.SizeOfHeaders;
Expand Down

0 comments on commit 7b3d7ee

Please sign in to comment.