qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: alex.bennee@linaro.org, richard.henderson@linaro.org
Subject: [RFC PATCH 05/12] configure: include more binutils in tests/tcg makefile
Date: Fri, 29 Apr 2022 16:18:06 +0200	[thread overview]
Message-ID: <20220429141813.328975-6-pbonzini@redhat.com> (raw)
In-Reply-To: <20220429141813.328975-1-pbonzini@redhat.com>

Firmware builds require paths to all the binutils; it is not enough to
use only cc, or even as/ld as in the case of tests/tcg/tricore.
Adjust the cross-compiler configurator to detect also ar, nm, objcopy,
ranlib and strip.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/configure b/configure
index c05eeb6a74..8626989239 100755
--- a/configure
+++ b/configure
@@ -1898,11 +1898,21 @@ probe_target_compiler() {
   container_image=
   container_hosts=
   container_cross_cc=
+  container_cross_ar=
   container_cross_as=
   container_cross_ld=
+  container_cross_nm=
+  container_cross_objcopy=
+  container_cross_ranlib=
+  container_cross_strip=
   target_cc=
+  target_ar=
   target_as=
   target_ld=
+  target_nm=
+  target_objcopy=
+  target_ranlib=
+  target_strip=
 
   case $1 in
     aarch64) container_hosts="x86_64 aarch64" ;;
@@ -2041,8 +2051,13 @@ probe_target_compiler() {
         ;;
     esac
     : ${container_cross_cc:=${container_cross_prefix}gcc}
+    : ${container_cross_ar:=${container_cross_prefix}ar}
     : ${container_cross_as:=${container_cross_prefix}as}
     : ${container_cross_ld:=${container_cross_prefix}ld}
+    : ${container_cross_nm:=${container_cross_prefix}nm}
+    : ${container_cross_objcopy:=${container_cross_prefix}objcopy}
+    : ${container_cross_ranlib:=${container_cross_prefix}ranlib}
+    : ${container_cross_strip:=${container_cross_prefix}strip}
   done
 
   eval "target_cflags=\${cross_cc_cflags_$1}"
@@ -2053,12 +2068,26 @@ probe_target_compiler() {
   else
     compute_target_variable $1 target_cc gcc
   fi
+  target_ccas=$target_cc
+  compute_target_variable $1 target_ar ar
   compute_target_variable $1 target_as as
   compute_target_variable $1 target_ld ld
+  compute_target_variable $1 target_nm nm
+  compute_target_variable $1 target_objcopy objcopy
+  compute_target_variable $1 target_ranlib ranlib
+  compute_target_variable $1 target_strip strip
   if test "$1" = $cpu; then
     : ${target_cc:=$cc}
+    : ${target_ccas:=$ccas}
     : ${target_as:=$as}
     : ${target_ld:=$ld}
+    : ${target_ar:=$ar}
+    : ${target_as:=$as}
+    : ${target_ld:=$ld}
+    : ${target_nm:=$nm}
+    : ${target_objcopy:=$objcopy}
+    : ${target_ranlib:=$ranlib}
+    : ${target_strip:=$strip}
   fi
   if test -n "$target_cc"; then
     case $1 in
@@ -2074,6 +2103,10 @@ probe_target_compiler() {
 write_target_makefile() {
   if test -n "$target_cc"; then
     echo "CC=$target_cc"
+    echo "CCAS=$target_ccas"
+  fi
+  if test -n "$target_ar"; then
+    echo "AR=$target_ar"
   fi
   if test -n "$target_as"; then
     echo "AS=$target_as"
@@ -2081,14 +2114,32 @@ write_target_makefile() {
   if test -n "$target_ld"; then
     echo "LD=$target_ld"
   fi
+  if test -n "$target_nm"; then
+    echo "NM=$target_nm"
+  fi
+  if test -n "$target_objcopy"; then
+    echo "OBJCOPY=$target_objcopy"
+  fi
+  if test -n "$target_ranlib"; then
+    echo "RANLIB=$target_ranlib"
+  fi
+  if test -n "$target_strip"; then
+    echo "STRIP=$target_strip"
+  fi
 }
 
 write_container_target_makefile() {
   if test -n "$container_cross_cc"; then
     echo "CC=\$(DOCKER_SCRIPT) cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
+    echo "CCAS=\$(DOCKER_SCRIPT) cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
   fi
+  echo "AR=\$(DOCKER_SCRIPT) cc --cc $container_cross_ar -i qemu/$container_image -s $source_path --"
   echo "AS=\$(DOCKER_SCRIPT) cc --cc $container_cross_as -i qemu/$container_image -s $source_path --"
   echo "LD=\$(DOCKER_SCRIPT) cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --"
+  echo "NM=\$(DOCKER_SCRIPT) cc --cc $container_cross_nm -i qemu/$container_image -s $source_path --"
+  echo "OBJCOPY=\$(DOCKER_SCRIPT) cc --cc $container_cross_objcopy -i qemu/$container_image -s $source_path --"
+  echo "RANLIB=\$(DOCKER_SCRIPT) cc --cc $container_cross_ranlib -i qemu/$container_image -s $source_path --"
+  echo "STRIP=\$(DOCKER_SCRIPT) cc --cc $container_cross_strip -i qemu/$container_image -s $source_path --"
 }
 
 
-- 
2.35.1




  parent reply	other threads:[~2022-04-29 14:19 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-29 14:18 [RFC PATCH 00/12] Cross compilation of embedded firmware Paolo Bonzini
2022-04-29 14:18 ` [RFC PATCH 01/12] tests/tcg: merge configure.sh back into main configure script Paolo Bonzini
2022-04-29 14:18 ` [RFC PATCH 02/12] configure: add missing cross compiler fallbacks Paolo Bonzini
2022-04-30 19:35   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 03/12] configure: handle host compiler in probe_target_compiler Paolo Bonzini
2022-04-29 14:18 ` [RFC PATCH 04/12] configure: introduce --cross-prefix-*= Paolo Bonzini
2022-04-30 19:42   ` Richard Henderson
2022-04-29 14:18 ` Paolo Bonzini [this message]
2022-04-30 19:44   ` [RFC PATCH 05/12] configure: include more binutils in tests/tcg makefile Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 06/12] configure, meson: move symlinking of ROMs to meson Paolo Bonzini
2022-04-30 19:48   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 07/12] configure: move symlink configuration earlier Paolo Bonzini
2022-04-30 19:49   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 08/12] configure: enable cross-compilation of s390-ccw Paolo Bonzini
2022-04-30 19:55   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 09/12] pc-bios/optionrom: detect -fno-pie Paolo Bonzini
2022-04-30 19:56   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 10/12] pc-bios/optionrom: compile with -Wno-array-bounds Paolo Bonzini
2022-04-30 19:58   ` Richard Henderson
2022-05-02  7:37   ` Michael Tokarev
2022-05-02 10:01     ` Paolo Bonzini
2022-04-29 14:18 ` [RFC PATCH 11/12] configure: enable cross-compilation of optionrom Paolo Bonzini
2022-04-30 20:01   ` Richard Henderson
2022-04-29 14:18 ` [RFC PATCH 12/12] configure: enable cross compilation of vof Paolo Bonzini
2022-04-30 20:06   ` Richard Henderson

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=20220429141813.328975-6-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).