add flags optimisations (test ok)
-Wl,-O1 :
Optimized GNU linker, which significantly reduces launching time and memory usage. This is especially visible during booting process, which is a few seconds faster than usual

-Wl,--as-needed :
 Applied special --as-needed flag to GNU linker. The flag tells the linker to link in the produced binary only the libraries containing symbols actually used by the binary itself. This not only improves startup times (as the loader does not have to load all the libraries for every step) but might avoid the full initialization of things, which we're not even physically able to use

-Wl,--relax :
Performed global optimizations that become possible when the linker resolves addressing in the program, such as relaxing address modes and synthesizing new instructions in the output object file

-Wl,--sort-common :
Sorted the common symbols by alignment in descending order. This is to prevent gaps between symbols due to alignment constraints