[PATCH] Fix compilation errors when using special directory

From: cgel . zte
Date: Fri Dec 31 2021 - 02:56:05 EST


From: xu xin <xu.xin16@xxxxxxxxxx>

When we compile the kernel with cross compilers, if CROSS_COMPILE is
specified by the path containing special directory like '~', some
compilation error will occurs.

Here's an example:

$ make ARCH=x86_64
CROSS_COMPILE=~/x86_64_gcc9.2.0_glibc2.31.0/bin/x86_64-pc-linux-gnu- all

error:./scripts/mkcompile_h: line 64:
~/x86_64_gcc9.2.0_glibc2.31.0/bin/x86_64-pc-linux-gnu-ld: No such file or
directory

Since there are many other similar scripts using these variables, in
order to solve the problem from the source, add realpath in makefile to
turn these variables into absolute paths.

Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
---
Makefile | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index fe5a4d8e4ac5..cdbb747787ac 100644
--- a/Makefile
+++ b/Makefile
@@ -459,14 +459,14 @@ OBJDUMP = llvm-objdump
READELF = llvm-readelf
STRIP = llvm-strip
else
-CC = $(CROSS_COMPILE)gcc
-LD = $(CROSS_COMPILE)ld
-AR = $(CROSS_COMPILE)ar
-NM = $(CROSS_COMPILE)nm
-OBJCOPY = $(CROSS_COMPILE)objcopy
-OBJDUMP = $(CROSS_COMPILE)objdump
-READELF = $(CROSS_COMPILE)readelf
-STRIP = $(CROSS_COMPILE)strip
+CC = $(realpath $(CROSS_COMPILE))gcc
+LD = $(realpath $(CROSS_COMPILE))ld
+AR = $(realpath $(CROSS_COMPILE))ar
+NM = $(realpath $(CROSS_COMPILE))nm
+OBJCOPY = $(realpath $(CROSS_COMPILE))objcopy
+OBJDUMP = $(realpath $(CROSS_COMPILE))objdump
+READELF = $(realpath $(CROSS_COMPILE))readelf
+STRIP = $(realpath $(CROSS_COMPILE))strip
endif
RUSTC = rustc
RUSTDOC = rustdoc
--
2.25.1