Skip to content
  • Mark Charlebois's avatar
    DO-NOT-UPSTREAM crypto: LLVMLinux: Explicitly pass through assembler options · febac028
    Mark Charlebois authored and Vikram Narayanan's avatar Vikram Narayanan committed
    
    
    Clang does not implicitly pass the -march flag to the assembler, but gcc does.
    
    Clang must be explicitly told to pass the flag to the assembler.
    Without the flag set the GNU assember reports the following error:
    
    /llvmlinux/build/targets/vexpress64/tmp/aes-ce-cipher-5b96de.s: Assembler messages:
    /llvmlinux/build/targets/vexpress64/tmp/aes-ce-cipher-5b96de.s:210: Error: selected processor does not support `aese v0.16b,v2.16b'
    /llvmlinux/build/targets/vexpress64/tmp/aes-ce-cipher-5b96de.s:210: Error: selected processor does not support `aesmc v0.16b,v0.16b'
    /llvmlinux/build/targets/vexpress64/tmp/aes-ce-cipher-5b96de.s:210: Error: selected processor does not support `aese v0.16b,v3.16b'
    ...
    clang-3.5: error: assembler command failed with exit code 1 (use -v to see invocation)
    make[3]: *** [arch/arm64/crypto/aes-ce-cipher.o] Error 1
    make[2]: *** [arch/arm64/crypto] Error 2
    
    The change was also tested with GCC. GCC requires the flag to be
    passed without -Xassembler. Both GCC and Clang work when -Wa is used.
    
    Not-signed-off-by: default avatarMark Charlebois <charlebm@gmail.com>
    febac028