Я портирую некий устаревший ассемблерный код на Rust, и мне нужно вызвать его с помощью макроса asm!
.Тем не менее, код сборки зависит от некоторых констант, хранящихся в файле заголовка C.Мне бы хотелось, чтобы он был похожим, определите константы в Rust и укажите имена констант в макросе asm
.
Legacy C header:
#define HCR_VALUE 0xffff0000
Legacy ASM file:
.func
...
ldr x0, =HCR_VALUE
...
Код ржавчины:
pub const HCR_VALUE: u32 = 0xffff0000;
unsafe { asm!("ldr x0, HCR_VALUE":::"x0"); }
При создании приложения возникает ошибка компоновщика:
lld-link: error: undefined symbol: HCR_VALUE