Итак, сменил я на работе мандриву (32-бита) на арч (64-бита) и оказалось, что я не могу запустить демон, мониторящий состояние телескопа.
Данные передаются мультикастом в виде структуры длиной 1380 байт. Там используются всякие int'ы, поэтому я сделал вначале так:
#define int __int32_t
#define uint __uint32_t
Скомпилировал - но не тут-то было: размер структуры все равно больше: 1456 байт, а не 1380. Еще в структуре есть такие типы, как double (но он вроде бы не зависит от архитектуры), char (вроде, тоже не зависит), вложенные структуры, объединение из четырех uchar'ов и одного ulong'а (оно понятно - сейчас исправлю, но уж очень разница большая - что-то еще виновато), unsigned long (сейчас буду подправлять).
В чем может быть проблема? Может, выравнивание как-то не так выполняется?