diff options
| author | John Millikin <[email protected]> | 2021-03-26 00:04:33 +0000 |
|---|---|---|
| committer | Borislav Petkov <[email protected]> | 2021-03-26 10:32:47 +0000 |
| commit | 8abe7fc26ad8f28bfdf78adbed56acd1fa93f82d (patch) | |
| tree | 3e608764a7e46bfa225576dddd6e34154b1648af /lib/dynamic_debug.c | |
| parent | Linux 5.12-rc4 (diff) | |
| download | kernel-8abe7fc26ad8f28bfdf78adbed56acd1fa93f82d.tar.gz kernel-8abe7fc26ad8f28bfdf78adbed56acd1fa93f82d.zip | |
x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
When cross-compiling with Clang, the `$(CLANG_FLAGS)' variable
contains additional flags needed to build C and assembly sources
for the target platform. Normally this variable is automatically
included in `$(KBUILD_CFLAGS)' via the top-level Makefile.
The x86 real-mode makefile builds `$(REALMODE_CFLAGS)' from a
plain assignment and therefore drops the Clang flags. This causes
Clang to not recognize x86-specific assembler directives:
arch/x86/realmode/rm/header.S:36:1: error: unknown directive
.type real_mode_header STT_OBJECT ; .size real_mode_header, .-real_mode_header
^
Explicit propagation of `$(CLANG_FLAGS)' to `$(REALMODE_CFLAGS)',
which is inherited by real-mode make rules, fixes cross-compilation
with Clang for x86 targets.
Relevant flags:
* `--target' sets the target architecture when cross-compiling. This
flag must be set for both compilation and assembly (`KBUILD_AFLAGS')
to support architecture-specific assembler directives.
* `-no-integrated-as' tells clang to assemble with GNU Assembler
instead of its built-in LLVM assembler. This flag is set by default
unless `LLVM_IAS=1' is set, because the LLVM assembler can't yet
parse certain GNU extensions.
Signed-off-by: John Millikin <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Acked-by: Ard Biesheuvel <[email protected]>
Tested-by: Sedat Dilek <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
Diffstat (limited to 'lib/dynamic_debug.c')
0 files changed, 0 insertions, 0 deletions
