Create ld.so.conf

Also a fix for CT_IterateMultilibs: it didn't pass multi_os_dir_gcc, so
it only worked if the caller did *not* declare it as a local variable.

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-03-12 23:01:23 -07:00
parent b090e0f74d
commit 11b52ab6d7
3 changed files with 40 additions and 10 deletions

View File

@ -789,7 +789,7 @@ do_gcc_for_build() {
}
gcc_movelibs() {
local multi_flags multi_dir multi_os_dir multi_root multi_index multi_count
local multi_flags multi_dir multi_os_dir multi_os_dir_gcc multi_root multi_index multi_count
local gcc_dir dst_dir
for arg in "$@"; do

View File

@ -1,5 +1,27 @@
# This file contains crosstool-NG internal steps
create_ldso_conf()
{
local multi_dir multi_os_dir multi_os_dir_gcc multi_root multi_flags multi_index multi_count multi_target
local b d
for arg in "$@"; do
eval "${arg// /\\ }"
done
CT_DoExecLog ALL mkdir -p "${multi_root}/etc"
for b in /lib /usr/lib /usr/local/lib; do
d="${b}/${multi_os_dir}"
CT_SanitizeVarDir d
echo "${d}" >> "${multi_root}/etc/ld.so.conf"
if [ "${multi_os_dir}" != "${multi_os_dir_gcc}" ]; then
d="${b}/${multi_os_dir_gcc}"
CT_SanitizeVarDir d
echo "${d}" >> "${multi_root}/etc/ld.so.conf"
fi
done
}
# This step is called once all components were built, to remove
# un-wanted files, to add tuple aliases, and to add the final
# crosstool-NG-provided files.
@ -10,7 +32,14 @@ do_finish() {
local gcc_version
local exe_suffix
CT_DoStep INFO "Cleaning-up the toolchain's directory"
CT_DoStep INFO "Finalizing the toolchain's directory"
if [ "${CT_SHARED_LIBS}" = "y" ]; then
# Create /etc/ld.so.conf
CT_mkdir_pushd "${CT_BUILD_DIR}/build-create-ldso"
CT_IterateMultilibs create_ldso_conf create-ldso
CT_Popd
fi
if [ "${CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES}" = "y" ]; then
case "$CT_HOST" in

View File

@ -1750,13 +1750,14 @@ CT_IterateMultilibs() {
dir_postfix=_${multi_dir//\//_}
dir_postfix=${dir_postfix%_.}
CT_mkdir_pushd "${prefix}${dir_postfix}"
$func multi_dir="${multi_dir}" \
multi_os_dir="${multi_os_dir}" \
multi_flags="${multi_flags}" \
multi_root="${multi_root}" \
multi_target="${multi_target}" \
multi_index="${multi_index}" \
multi_count="${#multilibs[@]}" \
$func multi_dir="${multi_dir}" \
multi_os_dir="${multi_os_dir}" \
multi_os_dir_gcc="${multi_os_dir_gcc}" \
multi_flags="${multi_flags}" \
multi_root="${multi_root}" \
multi_target="${multi_target}" \
multi_index="${multi_index}" \
multi_count="${#multilibs[@]}" \
"$@"
CT_Popd
multi_index=$((multi_index+1))
@ -1819,7 +1820,7 @@ CT_SymlinkToolsMultilib()
# Helper (iterator) for CT_MultilibFixupLDSO
CT__FixupLDSO()
{
local multi_dir multi_os_dir multi_root multi_flags multi_index multi_count
local multi_dir multi_os_dir multi_root multi_flags multi_index multi_count multi_target
local binary
local ldso ldso_l ldso_f ldso_d ldso_u multilib_dir