mirror of
https://github.com/bensuperpc/dockcross.git
synced 2025-06-22 10:53:36 +02:00
Add manylinux2014-aarch64 with gcc=9.3
This commit is contained in:
52
manylinux2014-aarch64/xc_script/docker_setup_scrpits/copy_libstd.sh
Executable file
52
manylinux2014-aarch64/xc_script/docker_setup_scrpits/copy_libstd.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
# AUTHOR: odidev
|
||||
# DATE: 2021-07-20
|
||||
# DESCRIPTION: This file is invoked two times. first time from Makefile with
|
||||
# PASS == 1 and second time in Dockerfile.in with PASS == 2. In
|
||||
# dockcross container, the current libstdc++ is not the same as
|
||||
# in manylinux containers. So, copying the libstdc++ form manylinux
|
||||
# container to dockcross container. It is being done int 2 pass.
|
||||
# during PASS == 1, the script will copy libstdc++ from manylinux
|
||||
# container to build machine and then during PASS == 2, libstdc++
|
||||
# will be copied from build machine to dockcross container
|
||||
|
||||
if [ $PASS == 1 ]; then
|
||||
echo "library location on host: " ${LIB_PATH}
|
||||
echo "PASS 1: copying libstdc++ library on host"
|
||||
files=$(rpm -ql libstdc++)
|
||||
for file in ${files}; do
|
||||
if [ -f ${file} -a ! -L ${file} -a ! -d ${file} ]; then
|
||||
if grep -q "shared object" <<< $(file $file); then
|
||||
install -m 0644 -D ${file} "${LIB_PATH}${file}"
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo "Done"
|
||||
elif [ $PASS == 2 ]; then
|
||||
echo "PASS 2: copying libstdc++ library in docker image"
|
||||
old_libstdc_path=$(find /usr/xcc/ -name libstdc++.so*[0-9] -type f)
|
||||
old_libstdc_directory=$(dirname "${old_libstdc_path}")
|
||||
target_libstdc_path=$(find /tmp -name libstdc++.so*[0-9] -type f)
|
||||
target_libstdc_filename=$(basename "${target_libstdc_path}")
|
||||
target_libstdc_new_path=${old_libstdc_directory}/${target_libstdc_filename}
|
||||
install -m 0555 -D ${target_libstdc_path} ${target_libstdc_new_path}
|
||||
echo "Done"
|
||||
links=$(find /usr/xcc/ \( -name libstdc++.so*[{0-9}] -o -name libstdc++.so \) -type l)
|
||||
echo "Creating soft links for target libstdc++ library"
|
||||
for link in ${links}; do
|
||||
case "$link" in
|
||||
(*libstdc++.so*[{0-9}].[{0-9}].[{0-9}]*)
|
||||
target_libstdc_filename=$(basename "${target_libstdc_new_path}")
|
||||
libstdc_link_directory=$(dirname "${link}")
|
||||
rm -rf $link
|
||||
target_libstdc_link_path=${libstdc_link_directory}/${target_libstdc_filename}
|
||||
ln -sf ${target_libstdc_new_path} ${target_libstdc_link_path}
|
||||
;;
|
||||
(*)
|
||||
ln -sf ${target_libstdc_new_path} ${link}
|
||||
esac
|
||||
done
|
||||
echo "Done"
|
||||
fi
|
Reference in New Issue
Block a user