Wrong order of gcc include paths
The order of the default gcc include search path is wrong on Alpine:
# gcc -E -Wp,-v -
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/../../../../x86_64-alpine-linux-musl/include"
ignoring nonexistent directory "/usr/include/fortify"
#include "..." search starts here:
#include <...> search starts here:
/usr/include
/usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include
End of search list.
This is wrong as /usr/include is searched for before the gcc private path and it breaks options like -ffreestanding, which rely on the gcc include path being searched first in order to provide the set of freestanding headers.