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