#if (defined TCC_TARGET_X86_64 || defined TCC_TARGET_ARM) && !defined TCC_TARGET_PE
s1->runtime_plt_and_got_offset = 0;
s1->runtime_plt_and_got = (char *)(mem + offset);
/* double the size of the buffer for got and plt entries
XXX: calculate exact size for them? */
offset *= 2;
#endif
PLT/GOT がどのくらいのサイズ必要かをマジメに計算するのがめんどうだったので、コードサイズの2倍もあればたぶん大丈夫だろー的な
病的なオブジェクトファイル作ればもちろん buffer overflow させられると思う…