Como instalar os cabeçalhos do Linux 3.2.40 no Synology DS214 com o DSM 6.1?

3

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.

    
por Karl Richter 11.03.2017 / 17:34

0 respostas