Since they're asm functions they conflict when building with LTO (among other things). This is normally hidden when separating translation units, but it's still not correct.
I don't see what's not correct about it, the symbols won't be imported if they are already defined.