Como suportar tempos de 64 bits em uma plataforma Linux de 32 bits

2

Eu preciso suportar tempos de 64 bits em um sistema Linux embarcado ARM de 32 bits com base na versão 4.1 do kernel.

Eu uso clock_gettime () e clock_settime () para obter / definir a hora, mas eles estão limitados a valores de segundos de 32 bits atualmente, o que resulta em um problema de ano-2038, que é um problema para este sistema. p>

Depois de pesquisar um pouco, parece que a solução é fazer com que o kernel use struct timespec64 internamente. Userland continuará usando struct timespec, mas seu membro tv_sec será 64-bits.

A minha pergunta é: como se habilita esta mudança para usar o tempo de 64 bits no kernel?

De acordo com o artigo de Jonathan Corbet, Conversão de chamadas do sistema para o ano 2038 , o primeiro passo para esse objetivo envolve a configuração do símbolo CONFIG_COMPAT_TIME, mas Eu usei a minha fonte do kernel para esse símbolo e ele não aparece em lugar nenhum. Neste ponto eu estou querendo saber se 64-bit O suporte ao timespec ainda é apenas parcialmente implementado, ou se sua implementação mudou de direção desde que o artigo foi escrito.

    
por user5071535 20.04.2016 / 21:02

0 respostas