On Tue, Jan 8, 2019 at 7:26 AM Luke Kenneth Casson Leighton
<l...@lkcl.net> wrote:
>
> On Tue, Jan 8, 2019 at 7:01 AM Luke Kenneth Casson Leighton
> <l...@lkcl.net> wrote:

> trying this:
>
> $ python evil_linker_torture.py 3000 400 200 500000
>
> running with "make -j4" is going to take a few hours.

 ok so that did the trick: got to 4.3gb total resident memory even
with --no-keep-memory tacked on to the link.  fortunately it bombed
out (below) before it could get to the (assumed) point where it would
double the amount of resident RAM (8.6GB) and cause my laptop to go
into complete thrashing meltdown.

hypothetically it should have created an 18 GB executable.  3000 times
500,000 static chars isn't the only reason this is failing, because
when restricted to only 100 functions and 100 random calls per
function, it worked.

ok so i'm retrying without --no-keep-memory... and it's now gone
beyond the 5GB mark.  backgrounding it and letting it progress a few
seconds at a time... that's interesting.... up to 8GB...  9.5GB ok
that's enough: any more than that and i really will trash the laptop.

ok so the above settings will definitely do the job (and seem to have
thrown up a repro candidate for the issue you were experiencing with
firefox builds, mike).

i apologise that it takes about 3 hours to build all 3,000 6mb object
files, even with a quad-core 3.6ghz i7.  they're a bit monstrous.

will find this post somewhere on debian-devel archives and
cross-reference it here
https://sourceware.org/bugzilla/show_bug.cgi?id=22831


ld: warning: cannot find entry symbol _start; defaulting to 0000000000401000
ld: src9.o: in function `fn_9_0':
/home/lkcl/src/ld_torture/src9.c:3006:(.text+0x27): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1149_322' defined
in .text section in src1149.o
ld: /home/lkcl/src/ld_torture/src9.c:3008:(.text+0x41): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1387_379' defined
in .text section in src1387.o
ld: /home/lkcl/src/ld_torture/src9.c:3014:(.text+0x8f): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1821_295' defined
in .text section in src1821.o
ld: /home/lkcl/src/ld_torture/src9.c:3015:(.text+0x9c): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1082_189' defined
in .text section in src1082.o
ld: /home/lkcl/src/ld_torture/src9.c:3016:(.text+0xa9): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_183_330' defined
in .text section in src183.o
ld: /home/lkcl/src/ld_torture/src9.c:3024:(.text+0x111): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_162_394' defined
in .text section in src162.o
ld: /home/lkcl/src/ld_torture/src9.c:3026:(.text+0x12b): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_132_235' defined
in .text section in src132.o
ld: /home/lkcl/src/ld_torture/src9.c:3028:(.text+0x145): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1528_316' defined
in .text section in src1528.o
ld: /home/lkcl/src/ld_torture/src9.c:3029:(.text+0x152): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1178_357' defined
in .text section in src1178.o
ld: /home/lkcl/src/ld_torture/src9.c:3031:(.text+0x16c): relocation
truncated to fit: R_X86_64_PLT32 against symbol `fn_1180_278' defined
in .text section in src1180.o
ld: /home/lkcl/src/ld_torture/src9.c:3035:(.text+0x1a0): additional
relocation overflows omitted from the output
^Cmake: *** Deleting file `main'
make: *** [main] Interrupt

Reply via email to