Assembly seems to be broken on riscv
I've tried using the asm tool for riscv32 and riscv64 and it doesn't seem to work correctly.
Example:
$ asm -c riscv32 'nop'
[!] Could not find system include headers for riscv32-linux
0100
$ asm -c riscv32 'addi x0, x0, 0'
[!] Could not find system include headers for riscv32-linux
0100
$ asm -c riscv32 'addi x0, x0, 1'
[!] Could not find system include headers for riscv32-linux
13001000
$ asm -c riscv64 'nop'
[!] Could not find system include headers for riscv64-linux
0100
$ asm -c riscv64 'addi x0, x0, 0'
[!] Could not find system include headers for riscv64-linux
0100
$ asm -c riscv64 'addi x0, x0, 1'
[!] Could not find system include headers for riscv64-linux
13001000
Instructions in riscv cannot be only two bytes long.
See #2419
My bad, it seems like I don't know riscv very well at all.
Still, I don't think asm produce assembly that only works on processors with the C extension, unless explicitly enabled.
Still, I don't think
asmproduce assembly that only works on processors with the C extension, unless explicitly enabled.
All existing riscv64 chips designed to run Linux have the C extension, and main Linux distributions (Debian, Ubuntu, Fedora, Arch Linux...) all use rv64gc as their baseline. I think including the C extension by default is reasonable.
As far as I remember, I was not targeting a Linux system at the time.