I didn't mean the 32/64 as the only difference. They targeted an architecture - it was i86_64/amd64. That affects memory layouts, pointer lengths, available instruction sets, etc. Changing from amd64 -> armel for example will also affect some of those properties.
If you write clean ANSI C code, you're basically compatible by default. If they failed to run on i386, that means they did something special that assumed a different architecture. In that case you're likely to hit the same problem whether they use arm, alpha, infineons, intels, or whatever else.
Comments
I didn't mean the 32/64 as the only difference. They targeted an architecture - it was i86_64/amd64. That affects memory layouts, pointer lengths, available instruction sets, etc. Changing from amd64 -> armel for example will also affect some of those properties.
If you write clean ANSI C code, you're basically compatible by default. If they failed to run on i386, that means they did something special that assumed a different architecture. In that case you're likely to hit the same problem whether they use arm, alpha, infineons, intels, or whatever else.