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]> --- Hi Waldek, Here's a fixed up version of the patch. I also dropped the extra call to readlink as it's going to be applied further on anyways. Thanks, Punit scripts/build | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/build b/scripts/build index 5fdcc7a88214..9576f40d6a1a 100755 --- a/scripts/build +++ b/scripts/build @@ -270,17 +270,21 @@ kernel_end=$(($loader_size+2097151 & ~2097151)) # the case in our old build.mk). cd $OUT +CC=gcc 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:-aarch64-linux-gnu-}gcc +fi + +libgcc_s_path=$(${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_path="../downloaded_packages/aarch64/gcc/install/lib64/libgcc_s.so.1" fi +libgcc_s_dir=$(dirname $(readlink -f ${libgcc_s_path})) if [ "$export" != "none" ]; then export_dir=${vars[export_dir]-$SRC/build/export} -- 2.30.0 -- 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/20210225115258.89826-1-punitagrawal%40gmail.com.
