Clang fails to compile the mix of intel/att assembly, and as a result BitcoinArmory — the major bitcoin client — also doesn't build

There is this bug report https://llvm.org/bugs/show_bug.cgi?id=18916 that is pending for over a year.
This prevents BitcoinArmory compile, no workaround. Systems that chose clang as a major compiler (ex. FreeBSD) now can't build it at all.

This should be prioritized. Any idea when this will be fixed?

Yuri

Ref: GitHub - etotheipi/BitcoinArmory: Python-Based Bitcoin Software

It boils down to supporting this in a .s file:
.intel_syntax noprefix;mov QWORD PTR [r11], rax;.att_syntax prefix

This already works:
.intel_syntax noprefix
mov QWORD PTR [r11], rax
.att_syntax prefix

The problem is that the directives are lexing the semicolon character when it’s supposed to be a statement separator.

It should be both easy to work around in the source and easy to fix in LLVM. Given the easy source workaround, this doesn’t feel very high priority.

This bug report maybe boils down to statement separator, but Armory problems are wider. Even after separator is replaced, compile still breaks in clang due to other clang vs. gcc differences.

Yuri

That is to be expected. There are limits to how far we can go for gcc
compatibility, and we have to strike a practical balance somewhere.

If you can investigate the specific issues and file bugs on the ones not
already in the tracker, we can better assess if it's worth changing Clang.