解决一些p0问题
This commit is contained in:
@@ -67,7 +67,7 @@ init_by_env_name() {
|
||||
gev_cur_env_name="${1}"
|
||||
gev_cur_toolchain_name="${gev_cur_env_name}"
|
||||
gev_target="${2}"
|
||||
gev_target_env="/ae/env/${gev_cur_env_name}"
|
||||
gev_target_env="${_ae_root_}/env/${gev_cur_env_name}"
|
||||
# 这个地方可以改 sysroot 叫什么名称
|
||||
gev_target_sysroot="${gev_target_env}/sysroot_${gev_target}"
|
||||
gev_cross_dir="${gev_target_env}"
|
||||
@@ -81,12 +81,16 @@ init_by_env_name() {
|
||||
}
|
||||
|
||||
|
||||
cacl_toolchain_name(){
|
||||
cacl_toolchain_name() {
|
||||
local -n ret="$1"
|
||||
local build="$2"
|
||||
local host="$3"
|
||||
local target="$4"
|
||||
local ver="$5"
|
||||
if [[ -z "$build" || -z "$host" || -z "$target" || -z "$ver" ]]; then
|
||||
log_error "cacl_toolchain_name requires build/host/target/ver"
|
||||
return 1
|
||||
fi
|
||||
ver="${ver//\//_}"
|
||||
ret="${ver}_${host}"
|
||||
}
|
||||
@@ -196,11 +200,14 @@ init_env_build_sysroot() {
|
||||
# /ae/bash/0_git_cache_dir/gcc/build/gcc/specs
|
||||
|
||||
|
||||
init_by_env_name "${1}"
|
||||
local target="${2}"
|
||||
if [[ -z "$target" ]]; then
|
||||
log_error "ERROR: target is required for init_env_build_sysroot\n"
|
||||
exit 1
|
||||
fi
|
||||
init_by_env_name "${1}" "$target"
|
||||
local t_cpu t_vendor t_os t_abi
|
||||
parse_triplet "$target" t_cpu t_vendor t_os t_abi
|
||||
|
||||
local linuxarch=$t_cpu
|
||||
if [[ $linuxarch == "aarch64" ]]; then
|
||||
linuxarch="arm64"
|
||||
@@ -209,11 +216,6 @@ init_env_build_sysroot() {
|
||||
elif [[ $linuxarch != x86_64 ]]; then
|
||||
linuxarch="${linuxarch%%[0-9]*}"
|
||||
fi
|
||||
# 参数检查:确保必要参数存在
|
||||
if [[ -z "$target" ]]; then
|
||||
log_error "ERROR: target is required for init_env_build_sysroot\n"
|
||||
exit 1
|
||||
fi
|
||||
local build_triplet build_triplet_no_vendor
|
||||
detect_platform_triplet build_triplet build_triplet_no_vendor
|
||||
(
|
||||
@@ -228,7 +230,7 @@ init_env_build_sysroot() {
|
||||
ensure_repo_version src_dir "linux" "${gev_linux_ver}"
|
||||
cd $src_dir || exit 89
|
||||
check_and_create_dir "${install_prefix}"
|
||||
exec_record "make headers_install ARCH=${linuxarch} -j$(nproc) INSTALL_HDR_PATH=\"${install_prefix}\""
|
||||
exec_record_fast_fail "make headers_install ARCH=${linuxarch} -j$(nproc) INSTALL_HDR_PATH=\"${install_prefix}\""
|
||||
)
|
||||
check_ret_exit "安装内核头文件失败!"
|
||||
(
|
||||
@@ -308,30 +310,20 @@ attach_env_local_cross() {
|
||||
load_toolchains_under() {
|
||||
local base="$1"
|
||||
[[ -d "$base" ]] || return 0
|
||||
|
||||
local prefix trip
|
||||
|
||||
# base 下每个子目录当作一个工具链 prefix(例如 cross/gcc_xxx 或 canadian/gcc_xxx)
|
||||
local prefix
|
||||
local trip
|
||||
local n
|
||||
for prefix in "$base"/*; do
|
||||
[[ -d "$prefix" ]] || continue
|
||||
[[ -d "$prefix/bin" ]] || continue
|
||||
|
||||
# prefix 下可能有 triplet 目录(aarch64-xxx-gnu 这类)
|
||||
for trip in "$prefix"/*; do
|
||||
[[ -d "$trip" ]] || continue
|
||||
local n
|
||||
n="$(basename "$trip")"
|
||||
|
||||
# 跳过常见非 triplet 目录
|
||||
case "$n" in
|
||||
bin | lib | lib64 | include | share | etc | var | tmp | sysroot | cross | canadian | libexec) continue ;;
|
||||
bin|lib|lib64|include|share|etc|var|tmp|sysroot|cross|canadian|libexec) continue ;;
|
||||
esac
|
||||
load_toolchain "$prefix" "$n"
|
||||
log_info "loaded toolchain: prefix=$prefix triplet=$n\n"
|
||||
# 满足目录形态才加载
|
||||
if [[ -d "$prefix/$n/usr" || -d "$prefix/$n/sysroot/usr" || -d "$prefix/$n/sysroot/lib" ]]; then
|
||||
if [[ -d "$prefix/$n/usr" || -d "$prefix/$n/sysroot/usr" || -d "$prefix/$n/sysroot/lib" || -d "$prefix/$n/sysroot/lib64" ]]; then
|
||||
load_toolchain "$prefix" "$n"
|
||||
log_info "loaded toolchain: prefix=$prefix triplet=$n\n"
|
||||
log_info "loaded toolchain: prefix=%s triplet=%s" "$prefix" "$n"
|
||||
fi
|
||||
done
|
||||
done
|
||||
@@ -349,8 +341,6 @@ attach_env_canadian_stage3() {
|
||||
bge_build="$gev_local_triplet"
|
||||
bge_host="$host"
|
||||
bge_target="$target"
|
||||
local toolchain_name
|
||||
|
||||
local toolchain_name
|
||||
cacl_toolchain_name_canadian toolchain_name "${host}" "${ver}"
|
||||
bge_install_prefix="${gev_canadian_dir}/${toolchain_name}"
|
||||
|
||||
Reference in New Issue
Block a user