Fazendo 'longos' 4 bytes no gcc em uma máquina Linux de 64 bits

Eu estou trabalhando em portar um aplicativo para 64 bits na plataforma Linux. Atualmente, o aplicativo é suportado no Linux, Windows, Mac de 32 bits e Windows de 64 bits. Um dos problemas que freqüentemente encontramos é o uso de long para int e vice-versa. Isso não foi um problema até agora, já que long e int são intercambiáveis ​​(ambos são 4 bytes) nas plataformas nas quais o aplicativo é atualmente suportado. A base de código é enorme, com muitos códigos legados com #defines para muitos tipos de dados, torna complicado pesquisar todo o uso de long e substituir apropriadamente por int.

Como uma solução de curto prazo, existe uma maneira de fazer o GCC usar 4 bytes em vez de 8 para 'long'?Se tiver, quais são os problemas que podemos enfrentar? Se não, existe uma maneira mais fácil de corrigir o problema longo e int?

questionAnswers(3)

yourAnswerToTheQuestion