2) What can I do to minimise this offset (to 1 byte ?) ? I found a response to this question (I did not realise that the "data segment" described in the -N option of the ld.info means "program header") , giving the -N option to the linker. I obtained an executable file of 13 Kbytes !