All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: cgel.zte@gmail.com
Cc: masahiroy@kernel.org, michal.lkml@markovi.net,
	ndesaulniers@google.com, linux-kbuild@vger.kernel.org,
	linux-kernel@vger.kernel.org, xu xin <xu.xin16@zte.com.cn>
Subject: Re: [PATCH] Fix compilation errors when using special directory
Date: Fri, 31 Dec 2021 10:05:20 -0700	[thread overview]
Message-ID: <Yc84UG6nwqyb37o2@archlinux-ax161> (raw)
In-Reply-To: <20211231075551.589515-1-xu.xin16@zte.com.cn>

On Fri, Dec 31, 2021 at 07:55:51AM +0000, cgel.zte@gmail.com wrote:
> From: xu xin <xu.xin16@zte.com.cn>
> 
> 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.

This is not going to work for the traditional approach of CROSS_COMPILE
being just a triple, rather than a full path plus a triple, because

$(realpath $(CROSS_COMPILE))

is going to evaluate to nothing in that case:

$ make -skj"$(nproc)" ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig all
warning: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum
ld: unrecognised emulation mode: aarch64linux
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
make[2]: *** [arch/arm64/kernel/vdso/Makefile:57: arch/arm64/kernel/vdso/vdso.so.dbg] Error 1
...

Why not just change '~' to '$HOME' in your build scripts so that it is
evaluated before the make command begins?

> Signed-off-by: xu xin <xu.xin16@zte.com.cn>
> ---
>  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
> 

  parent reply	other threads:[~2021-12-31 17:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-31  7:55 [PATCH] Fix compilation errors when using special directory cgel.zte
2021-12-31 10:44 ` kernel test robot
2021-12-31 10:44 ` kernel test robot
2021-12-31 17:05 ` Nathan Chancellor [this message]
2022-01-03  7:29 ` Masahiro Yamada
2022-01-04 18:07 ` Nick Desaulniers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yc84UG6nwqyb37o2@archlinux-ax161 \
    --to=nathan@kernel.org \
    --cc=cgel.zte@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=ndesaulniers@google.com \
    --cc=xu.xin16@zte.com.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.