When cross compiling, it would be good to support the following two
cases -

* Distro provided cross compiler + libraries - This is the case when a
  distro with multi-arch support (e.g., Debian derivaties)

* Local libraries installation - Needed when the distro doesn't
  support multi-arch or there's a need to use local installs

Update the libgcc detection to query the compiler regarding the
location of the libraries - provided the correct CROSS_PREFIX is
specified. If this fails to find the library, fall back to the hard
coded location. Also, add a message to inform the user about the
fallback usage.

Signed-off-by: Punit Agrawal <[email protected]>
---
 scripts/build | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/scripts/build b/scripts/build
index 5fdcc7a88214..88f48f5e0582 100755
--- a/scripts/build
+++ b/scripts/build
@@ -271,15 +271,14 @@ kernel_end=$(($loader_size+2097151 & ~2097151))
 cd $OUT
 
 host_arch=$(uname -m)
-if [[ "$host_arch" == "x86_64" && "$arch" == 'aarch64' ]]; then
-       libgcc_s_path=$(${CROSS_PREFIX:-aarch64-linux-gnu-}gcc 
-print-file-name=libgcc_s.so.1)
-       if [[ "$libgcc_s_path" == "libgcc_s.so.1" ]]; then
-               libgcc_s_dir=$(readlink -f 
../downloaded_packages/aarch64/gcc/install/lib64)
-       else
-               libgcc_s_dir=$(dirname $(readlink -f $libgcc_s_path))
-       fi
-else
-       libgcc_s_dir=$(dirname $(readlink -f $(gcc 
-print-file-name=libgcc_s.so.1)))
+CC=${CROSS_PREFIX}gcc
+libgcc_s_dir=$(dirname $(readlink -f $(${CC} -print-file-name=libgcc_s.so.1)))
+if [[ "$libgcc_s_path" == "libgcc_s.so.1" ]]; then
+       cat <<-EOF
+       Unable to resolve libgcc_s.so.1 using "${CC}".
+       Looking in ../downloaded_packages/aarch64/gcc/install/lib64
+       EOF
+       libgcc_s_dir=$(readlink -f 
../downloaded_packages/aarch64/gcc/install/lib64)
 fi
 
 if [ "$export" != "none" ]; then
-- 
2.29.2

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/20210215124906.792439-2-punitagrawal%40gmail.com.

Reply via email to