собственно LINK тут совсем не причем. все дело в том что в ARM есть инструкции которые работают с4 байтами - но для них адрес (не зависимо от того какой он) всегда округляется до 4 байтов - собственно все происходит на этапе выполнения - но как вы справедливо подметили компилятор както должен был среагировать на это - потому как когда даешь PACKED он делает байто ориентированные команды - а когда нету packed то он ставит 4 байтную команду. и по моему мнению компилятор должен был среагировать на