Desde que eu estou cansado de compilação cruzada e já tenho um trabalho (cross-compilado) gcc
no meu Synology DiskStation DS214 com DSM 6.1, gostaria de instalar os cabeçalhos do Linux da versão Linux em execução no DiskStation em /usr/include
, que inicialmente está vazio. Há um kit de isenção para desenvolvedores da Synology , mas os cabeçalhos em /usr/include
criam um linux/version.h
com LINUX_VERSION_CODE=132636
que é muito menor que 3.2.40 dado por uname -a
. Talvez isso se deva à incompatibilidade de versões do DSM 6.1 e ao 5.2 para o kit de ferramentas. Baixar o DSM para 5.2 não é uma opção, talvez impossível.
A execução de sudo make headers_install
na origem do Linux 3.2.40 no DiskStation falha devido a
$ sudo env CFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ CPPFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ CXXFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ LDFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16" \ make headers_install \ CFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ CPPFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ CXXFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16 -I/usr/include" \ LDFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16" \ INSTALL_HDR_PATH=/usr CHK include/linux/version.h HOSTCC scripts/basic/fixdep In file included from /opt/toolchain/include/features.h:434:0, from /opt/toolchain/include/sys/types.h:25, from scripts/basic/fixdep.c:106: /opt/toolchain/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory # include ^ compilation terminated. make[1]: *** [scripts/basic/fixdep] Error 1 make: *** [scripts_basic] Error 2
Outras configurações de compilação, como binutils
, make
, etc., não têm problema em coletar -mfloat-abi
e não incluir gnu/stubs-soft.h
. O Linux 3.2.86, que é o mais recente do 3.2.x, tem o mesmo problema.
Eu sei que pode haver uma maneira mais fácil, que a configuração deve funcionar principalmente com compilação cruzada e que não há nenhum caso de uso para o que eu quero fazer, mas gostaria de entender como as coisas funcionam ou por quê é impossível fazer o que eu quero fazer.