Для уменьшения размер бинарника в Linux, собираемого через компилятор GCC , достаточно добавить в программу на C++ следующие строки:
#include <asm/unistd.h>
extern "C"
void __attribute__((noreturn)) _start()
{
__asm__ __volatile__ ("syscall" : : "a"(__NR_exit), "D"(main()) : "rcx", "r11", "memory");
__builtin_unreachable();
}
После чего программу надо скомпилировать с опцией -nostdlib.
Для программы из одной функции main() типа 'Hello word" получается размер 8800 байт. Однако, можно пропробовать данный бинарник пропустить через strip, и в некоторых случаях бинарник уменьшается до ~2 Кб.