362 lines
14 KiB
Bash
362 lines
14 KiB
Bash
#!/bin/bash
|
|
if ! type "include" >/dev/null 2>&1; then
|
|
include() {
|
|
. "$(cd "$(dirname "$1")" && pwd)/${2}"
|
|
}
|
|
fi
|
|
include "${BASH_SOURCE[0]}" ./pragma_once.bash
|
|
if ! pragma_once ${BASH_SOURCE[0]}; then return 0; fi
|
|
include "${BASH_SOURCE[0]}" ./attach/export.bash
|
|
include "${BASH_SOURCE[0]}" ./patch/export.bash
|
|
include "${BASH_SOURCE[0]}" ./libc/export.bash
|
|
include "${BASH_SOURCE[0]}" ./base/export.bash
|
|
LLVM_SRC_DIR=""
|
|
LLVM_BUILD_DIR="${_root_}/0_cmake_build_dir/lld"
|
|
LLVM_INSTALL_DIR="${_root_}/0_cmake_install_dir/lld"
|
|
LLVM_CMAKE="${_ae_root_}/opt/cmake/bin/cmake"
|
|
LLVM_NINJA="/usr/bin/ninja"
|
|
LLVM_GENERATOR="Ninja"
|
|
LLVM_LLVM_VERSION="llvmorg-22.1.8"
|
|
LLVM_BUILD_TYPE="Release"
|
|
LLVM_ENABLE_PROJECTS="lld"
|
|
LLVM_TARGETS_TO_BUILD="X86"
|
|
LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=""
|
|
LLVM_DEFAULT_TARGET_TRIPLE=""
|
|
LLVM_TARGET_ARCH=""
|
|
LLVM_NATIVE_TOOL_DIR=""
|
|
LLVM_TABLEGEN=""
|
|
LLVM_TC_FILE=""
|
|
LLVM_TC_SYSROOT=""
|
|
LLVM_TC_STAGING_PREFIX=""
|
|
LLVM_TC_C_COMPILER=""
|
|
LLVM_TC_CXX_COMPILER=""
|
|
LLVM_TC_C_COMPILER_TARGET=""
|
|
LLVM_TC_CXX_COMPILER_TARGET=""
|
|
LLVM_TC_SYSTEM_NAME=""
|
|
LLVM_TC_SYSTEM_PROCESSOR=""
|
|
LLVM_TC_FIND_ROOT_PATH=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PROGRAM=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_LIBRARY=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_INCLUDE=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PACKAGE=""
|
|
LLVM_TC_LINKER_TYPE=""
|
|
LLVM_TC_C_USING_LINKER_LLD=""
|
|
LLVM_TC_CXX_USING_LINKER_LLD=""
|
|
LLVM_TC_C_STANDARD_LINK_DIRECTORIES=""
|
|
LLVM_TC_CXX_STANDARD_LINK_DIRECTORIES=""
|
|
LLVM_TC_CXX_STANDARD_INCLUDE_DIRECTORIES=""
|
|
LLVM_TC_PTHREAD_LIB=""
|
|
LLVM_TC_AR=""
|
|
LLVM_TC_RANLIB=""
|
|
LLVM_TC_LINKER=""
|
|
LLVM_TC_RC_COMPILER=""
|
|
LLVM_TC_MT=""
|
|
clear_llvm_toolchain_config() {
|
|
LLVM_TC_FILE=""
|
|
LLVM_TC_SYSROOT=""
|
|
LLVM_TC_STAGING_PREFIX=""
|
|
LLVM_TC_C_COMPILER=""
|
|
LLVM_TC_CXX_COMPILER=""
|
|
LLVM_TC_C_COMPILER_TARGET=""
|
|
LLVM_TC_CXX_COMPILER_TARGET=""
|
|
LLVM_TC_SYSTEM_NAME=""
|
|
LLVM_TC_SYSTEM_PROCESSOR=""
|
|
LLVM_TC_FIND_ROOT_PATH=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PROGRAM=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_LIBRARY=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_INCLUDE=""
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PACKAGE=""
|
|
LLVM_TC_LINKER_TYPE=""
|
|
LLVM_TC_C_USING_LINKER_LLD=""
|
|
LLVM_TC_CXX_USING_LINKER_LLD=""
|
|
LLVM_TC_C_STANDARD_LINK_DIRECTORIES=""
|
|
LLVM_TC_CXX_STANDARD_LINK_DIRECTORIES=""
|
|
LLVM_TC_CXX_STANDARD_INCLUDE_DIRECTORIES=""
|
|
LLVM_TC_PTHREAD_LIB=""
|
|
LLVM_TC_AR=""
|
|
LLVM_TC_RANLIB=""
|
|
LLVM_TC_LINKER=""
|
|
LLVM_TC_RC_COMPILER=""
|
|
LLVM_TC_MT=""
|
|
}
|
|
clear_llvm_build_config() {
|
|
LLVM_DEFAULT_TARGET_TRIPLE=""
|
|
LLVM_TARGET_ARCH=""
|
|
LLVM_NATIVE_TOOL_DIR=""
|
|
LLVM_TABLEGEN=""
|
|
}
|
|
clear_llvm_platform_config() {
|
|
clear_llvm_toolchain_config
|
|
clear_llvm_build_config
|
|
}
|
|
cmake_escape_value() {
|
|
local s="$1"
|
|
s="${s//\\/\\\\}"
|
|
s="${s//\"/\\\"}"
|
|
printf '%s' "$s"
|
|
}
|
|
toolchain_set() {
|
|
local file="$1"
|
|
local name="$2"
|
|
local value="$3"
|
|
if [[ -n "${value}" ]]; then
|
|
printf 'set(%s "%s")\n' "${name}" "$(cmake_escape_value "${value}")" >>"${file}"
|
|
fi
|
|
}
|
|
toolchain_set_raw() {
|
|
local file="$1"
|
|
local name="$2"
|
|
local value="$3"
|
|
if [[ -n "${value}" ]]; then
|
|
printf 'set(%s %s)\n' "${name}" "${value}" >>"${file}"
|
|
fi
|
|
}
|
|
toolchain_cache_string() {
|
|
local file="$1"
|
|
local name="$2"
|
|
local value="$3"
|
|
if [[ -n "${value}" ]]; then
|
|
printf 'set(%s "%s" CACHE STRING "" FORCE)\n' "${name}" "$(cmake_escape_value "${value}")" >>"${file}"
|
|
fi
|
|
}
|
|
toolchain_cache_raw() {
|
|
local file="$1"
|
|
local name="$2"
|
|
local value="$3"
|
|
if [[ -n "${value}" ]]; then
|
|
printf 'set(%s %s CACHE INTERNAL "" FORCE)\n' "${name}" "${value}" >>"${file}"
|
|
fi
|
|
}
|
|
toolchain_pthread_config() {
|
|
local file="$1"
|
|
local value="$2"
|
|
if [[ -n "${value}" ]]; then
|
|
toolchain_cache_string "${file}" CMAKE_C_STANDARD_LIBRARIES "${value}"
|
|
toolchain_cache_string "${file}" CMAKE_CXX_STANDARD_LIBRARIES "${value}"
|
|
toolchain_cache_string "${file}" CMAKE_THREAD_LIBS_INIT "${value}"
|
|
toolchain_cache_string "${file}" LLVM_PTHREAD_LIB "${value}"
|
|
toolchain_cache_raw "${file}" CMAKE_HAVE_LIBC_PTHREAD "0"
|
|
toolchain_cache_raw "${file}" CMAKE_USE_PTHREADS_INIT "1"
|
|
toolchain_cache_raw "${file}" CMAKE_USE_WIN32_THREADS_INIT "0"
|
|
toolchain_cache_raw "${file}" CMAKE_HAVE_THREADS_LIBRARY "1"
|
|
toolchain_set_raw "${file}" THREADS_PREFER_PTHREAD_FLAG "ON"
|
|
fi
|
|
}
|
|
llvm_has_toolchain_config() {
|
|
[[ -n "${LLVM_TC_SYSROOT}${LLVM_TC_STAGING_PREFIX}${LLVM_TC_C_COMPILER}${LLVM_TC_CXX_COMPILER}${LLVM_TC_C_COMPILER_TARGET}${LLVM_TC_CXX_COMPILER_TARGET}${LLVM_TC_SYSTEM_NAME}${LLVM_TC_SYSTEM_PROCESSOR}${LLVM_TC_FIND_ROOT_PATH}${LLVM_TC_FIND_ROOT_PATH_MODE_PROGRAM}${LLVM_TC_FIND_ROOT_PATH_MODE_LIBRARY}${LLVM_TC_FIND_ROOT_PATH_MODE_INCLUDE}${LLVM_TC_FIND_ROOT_PATH_MODE_PACKAGE}${LLVM_TC_LINKER_TYPE}${LLVM_TC_C_USING_LINKER_LLD}${LLVM_TC_CXX_USING_LINKER_LLD}${LLVM_TC_C_STANDARD_LINK_DIRECTORIES}${LLVM_TC_CXX_STANDARD_LINK_DIRECTORIES}${LLVM_TC_CXX_STANDARD_INCLUDE_DIRECTORIES}${LLVM_TC_PTHREAD_LIB}${LLVM_TC_AR}${LLVM_TC_RANLIB}${LLVM_TC_LINKER}${LLVM_TC_RC_COMPILER}${LLVM_TC_MT}" ]]
|
|
}
|
|
llvm_generate_toolchain_file() {
|
|
local file="$1"
|
|
mkdir -p "$(dirname "${file}")"
|
|
: >"${file}"
|
|
printf 'set(LLVM_TC_GENERATED_ID "windows-lld-linux-x86-winpthread")\n' >>"${file}"
|
|
toolchain_set "${file}" CMAKE_SYSTEM_NAME "${LLVM_TC_SYSTEM_NAME}"
|
|
toolchain_set "${file}" CMAKE_SYSTEM_PROCESSOR "${LLVM_TC_SYSTEM_PROCESSOR}"
|
|
toolchain_set "${file}" CMAKE_C_COMPILER "${LLVM_TC_C_COMPILER}"
|
|
toolchain_set "${file}" CMAKE_CXX_COMPILER "${LLVM_TC_CXX_COMPILER}"
|
|
toolchain_set "${file}" CMAKE_C_COMPILER_TARGET "${LLVM_TC_C_COMPILER_TARGET}"
|
|
toolchain_set "${file}" CMAKE_CXX_COMPILER_TARGET "${LLVM_TC_CXX_COMPILER_TARGET}"
|
|
toolchain_set "${file}" CMAKE_SYSROOT "${LLVM_TC_SYSROOT}"
|
|
|
|
echo "${file} 33333333333333333 ==================================== ${LLVM_TC_SYSROOT}"
|
|
toolchain_set "${file}" CMAKE_STAGING_PREFIX "${LLVM_TC_STAGING_PREFIX}"
|
|
toolchain_set "${file}" CMAKE_FIND_ROOT_PATH "${LLVM_TC_FIND_ROOT_PATH}"
|
|
toolchain_set "${file}" CMAKE_FIND_ROOT_PATH_MODE_PROGRAM "${LLVM_TC_FIND_ROOT_PATH_MODE_PROGRAM}"
|
|
toolchain_set "${file}" CMAKE_FIND_ROOT_PATH_MODE_LIBRARY "${LLVM_TC_FIND_ROOT_PATH_MODE_LIBRARY}"
|
|
toolchain_set "${file}" CMAKE_FIND_ROOT_PATH_MODE_INCLUDE "${LLVM_TC_FIND_ROOT_PATH_MODE_INCLUDE}"
|
|
toolchain_set "${file}" CMAKE_FIND_ROOT_PATH_MODE_PACKAGE "${LLVM_TC_FIND_ROOT_PATH_MODE_PACKAGE}"
|
|
toolchain_cache_string "${file}" CMAKE_LINKER_TYPE "${LLVM_TC_LINKER_TYPE}"
|
|
toolchain_set "${file}" CMAKE_C_USING_LINKER_LLD "${LLVM_TC_C_USING_LINKER_LLD}"
|
|
toolchain_set "${file}" CMAKE_CXX_USING_LINKER_LLD "${LLVM_TC_CXX_USING_LINKER_LLD}"
|
|
toolchain_set "${file}" CMAKE_C_STANDARD_LINK_DIRECTORIES "${LLVM_TC_C_STANDARD_LINK_DIRECTORIES}"
|
|
toolchain_set "${file}" CMAKE_CXX_STANDARD_LINK_DIRECTORIES "${LLVM_TC_CXX_STANDARD_LINK_DIRECTORIES}"
|
|
toolchain_set "${file}" CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "${LLVM_TC_CXX_STANDARD_INCLUDE_DIRECTORIES}"
|
|
toolchain_pthread_config "${file}" "${LLVM_TC_PTHREAD_LIB}"
|
|
toolchain_set "${file}" CMAKE_AR "${LLVM_TC_AR}"
|
|
toolchain_set "${file}" CMAKE_RANLIB "${LLVM_TC_RANLIB}"
|
|
toolchain_set "${file}" CMAKE_LINKER "${LLVM_TC_LINKER}"
|
|
toolchain_set "${file}" CMAKE_RC_COMPILER "${LLVM_TC_RC_COMPILER}"
|
|
toolchain_set "${file}" CMAKE_MT "${LLVM_TC_MT}"
|
|
}
|
|
llvm_prepare_toolchain_file() {
|
|
if [[ -z "${LLVM_TC_FILE}" ]] && llvm_has_toolchain_config; then
|
|
LLVM_TC_FILE="${LLVM_BUILD_DIR}/toolchain.cmake"
|
|
llvm_generate_toolchain_file "${LLVM_TC_FILE}"
|
|
echo "========== generated toolchain ==========" >&2
|
|
cat "${LLVM_TC_FILE}" >&2
|
|
echo "=========================================" >&2
|
|
fi
|
|
}
|
|
llvm_build_base() {
|
|
local src_dir=""
|
|
local jobs=""
|
|
local cmd=""
|
|
local build_cmd=""
|
|
local install_cmd=""
|
|
ensure_repo_version src_dir "llvm" "${LLVM_LLVM_VERSION}"
|
|
LLVM_SRC_DIR="${src_dir}/llvm"
|
|
mkdir -p "${LLVM_BUILD_DIR}"
|
|
mkdir -p "${LLVM_INSTALL_DIR}"
|
|
llvm_prepare_toolchain_file
|
|
jobs="$(nproc)"
|
|
cmd="\"${LLVM_CMAKE}\""
|
|
cmd="${cmd} -S \"${LLVM_SRC_DIR}\""
|
|
cmd="${cmd} -B \"${LLVM_BUILD_DIR}\""
|
|
cmd="${cmd} \"-DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL_DIR}\""
|
|
cmd="${cmd} \"-DCMAKE_BUILD_TYPE=${LLVM_BUILD_TYPE}\""
|
|
cmd="${cmd} -DLLVM_INCLUDE_TESTS=OFF"
|
|
cmd="${cmd} -DLLVM_INCLUDE_BENCHMARKS=OFF"
|
|
cmd="${cmd} -DLLVM_INCLUDE_EXAMPLES=OFF"
|
|
cmd="${cmd} -DLLVM_INCLUDE_DOCS=OFF"
|
|
if [[ -n "${LLVM_ENABLE_PROJECTS}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}\""
|
|
fi
|
|
if [[ -n "${LLVM_TARGETS_TO_BUILD}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD}\""
|
|
fi
|
|
if [[ -n "${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}\""
|
|
fi
|
|
if [[ -n "${LLVM_DEFAULT_TARGET_TRIPLE}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_DEFAULT_TARGET_TRIPLE}\""
|
|
fi
|
|
if [[ -n "${LLVM_TARGET_ARCH}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_TARGET_ARCH=${LLVM_TARGET_ARCH}\""
|
|
fi
|
|
if [[ -n "${LLVM_NATIVE_TOOL_DIR}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_NATIVE_TOOL_DIR=${LLVM_NATIVE_TOOL_DIR}\""
|
|
fi
|
|
if [[ -n "${LLVM_TABLEGEN}" ]]; then
|
|
cmd="${cmd} \"-DLLVM_TABLEGEN=${LLVM_TABLEGEN}\""
|
|
fi
|
|
if [[ -n "${LLVM_GENERATOR}" ]]; then
|
|
cmd="${cmd} -G \"${LLVM_GENERATOR}\""
|
|
fi
|
|
if [[ "${LLVM_GENERATOR}" == "Ninja" && -n "${LLVM_NINJA}" ]]; then
|
|
cmd="${cmd} \"-DCMAKE_MAKE_PROGRAM=${LLVM_NINJA}\""
|
|
fi
|
|
if [[ -n "${LLVM_TC_PTHREAD_LIB}" ]]; then
|
|
cmd="${cmd} \"-DCMAKE_C_STANDARD_LIBRARIES=${LLVM_TC_PTHREAD_LIB}\""
|
|
cmd="${cmd} \"-DCMAKE_CXX_STANDARD_LIBRARIES=${LLVM_TC_PTHREAD_LIB}\""
|
|
cmd="${cmd} \"-DCMAKE_THREAD_LIBS_INIT=${LLVM_TC_PTHREAD_LIB}\""
|
|
cmd="${cmd} \"-DLLVM_PTHREAD_LIB=${LLVM_TC_PTHREAD_LIB}\""
|
|
cmd="${cmd} -DCMAKE_HAVE_LIBC_PTHREAD=0"
|
|
cmd="${cmd} -DCMAKE_USE_PTHREADS_INIT=1"
|
|
cmd="${cmd} -DCMAKE_USE_WIN32_THREADS_INIT=0"
|
|
cmd="${cmd} -DCMAKE_HAVE_THREADS_LIBRARY=1"
|
|
cmd="${cmd} -DTHREADS_PREFER_PTHREAD_FLAG=ON"
|
|
fi
|
|
if [[ -n "${LLVM_TC_FILE}" ]]; then
|
|
cmd="${cmd} \"-DCMAKE_TOOLCHAIN_FILE=${LLVM_TC_FILE}\""
|
|
fi
|
|
exec_record_fast_fail "${cmd}"
|
|
build_cmd="\"${LLVM_CMAKE}\" --build \"${LLVM_BUILD_DIR}\" --parallel \"${jobs}\""
|
|
exec_record_fast_fail "${build_cmd}"
|
|
install_cmd="\"${LLVM_CMAKE}\" --install \"${LLVM_BUILD_DIR}\""
|
|
exec_record_fast_fail "${install_cmd}"
|
|
}
|
|
build_ubuntu2004_gcc93_native_clang() {
|
|
local suffix="_ubuntu2004_gcc93_native_clang"
|
|
clear_llvm_platform_config
|
|
LLVM_BUILD_DIR="${_ae_root_}/0_cmake_build_dir/llvm${suffix}"
|
|
LLVM_INSTALL_DIR="${_ae_root_}/0_cmake_install_dir/llvm${suffix}"
|
|
LLVM_BUILD_TYPE="Release"
|
|
LLVM_TC_C_COMPILER="/usr/bin/gcc"
|
|
LLVM_TC_CXX_COMPILER="/usr/bin/g++"
|
|
LLVM_ENABLE_PROJECTS="clang;lld"
|
|
LLVM_TARGETS_TO_BUILD="X86"
|
|
llvm_build_base
|
|
return 0
|
|
}
|
|
build_windows_lld_linux_x86_by_stage1_clang() {
|
|
local stage1_install_dir="$1"
|
|
local suffix="_windows_lld_linux_x86"
|
|
local extract_root="${_ae_root_}/0_sysroot/msys2"
|
|
local sysroot="${_ae_root_}/0_sysroot/msys2/mingw64"
|
|
local pkg_root="${_wget_cache_dir_}/msys2/mingw64"
|
|
local pkg_repo="mingw64"
|
|
local mingw_target="x86_64-w64-windows-gnu"
|
|
local linux_target="x86_64-linux-gnu"
|
|
local pkg_name=""
|
|
local pkg_path=""
|
|
local gcc_dir=""
|
|
local link_dirs=""
|
|
local cxx_config_h=""
|
|
local cxx_target_dir=""
|
|
local cxx_dir=""
|
|
local cxx_include_dirs=""
|
|
local packages=(
|
|
"mingw-w64-x86_64-headers-14.0.0.r147.g31bd54ab7-1-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-crt-14.0.0.r147.g31bd54ab7-1-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-libwinpthread-14.0.0.r147.g31bd54ab7-1-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-winpthreads-14.0.0.r147.g31bd54ab7-1-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-tzdata-2026b-1-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-gcc-libs-16.1.0-5-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-gcc-16.1.0-5-any.pkg.tar.zst"
|
|
"mingw-w64-x86_64-zlib-1.3.2-2-any.pkg.tar.zst"
|
|
)
|
|
rm -rf "${sysroot}"
|
|
mkdir -p "${extract_root}"
|
|
for pkg_name in "${packages[@]}"; do
|
|
pkg_path=""
|
|
download_msys2_pkg pkg_path "${pkg_repo}" "${pkg_name}" "${pkg_root}"
|
|
tar --zstd -xf "${pkg_path}" -C "${extract_root}" --exclude='.BUILDINFO' --exclude='.PKGINFO' --exclude='.MTREE' --exclude='.INSTALL'
|
|
done
|
|
gcc_dir="$(find "${sysroot}/lib/gcc/x86_64-w64-mingw32" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1)"
|
|
if [[ -z "${gcc_dir}" ]]; then
|
|
log_error "msys2 gcc dir not found: ${sysroot}/lib/gcc/x86_64-w64-mingw32"
|
|
return 1
|
|
fi
|
|
cxx_config_h="$(find "${sysroot}/include/c++" -path "*/x86_64-w64-mingw32/bits/c++config.h" 2>/dev/null | sort -V | tail -n 1)"
|
|
if [[ -z "${cxx_config_h}" ]]; then
|
|
log_error "msys2 c++config.h not found: ${sysroot}/include/c++"
|
|
return 1
|
|
fi
|
|
cxx_target_dir="$(dirname "$(dirname "${cxx_config_h}")")"
|
|
cxx_dir="$(dirname "${cxx_target_dir}")"
|
|
link_dirs="${gcc_dir};${sysroot}/lib;${sysroot}/x86_64-w64-mingw32/lib"
|
|
cxx_include_dirs="${cxx_dir};${cxx_target_dir};${cxx_dir}/backward"
|
|
clear_llvm_platform_config
|
|
LLVM_BUILD_DIR="${_ae_root_}/0_cmake_build_dir/llvm${suffix}"
|
|
LLVM_INSTALL_DIR="${_ae_root_}/0_cmake_install_dir/llvm${suffix}"
|
|
LLVM_BUILD_TYPE="Release"
|
|
LLVM_TC_SYSTEM_NAME="Windows"
|
|
LLVM_TC_SYSTEM_PROCESSOR="x86_64"
|
|
LLVM_TC_C_COMPILER="${stage1_install_dir}/bin/clang"
|
|
LLVM_TC_CXX_COMPILER="${stage1_install_dir}/bin/clang++"
|
|
LLVM_TC_C_COMPILER_TARGET="${mingw_target}"
|
|
LLVM_TC_CXX_COMPILER_TARGET="${mingw_target}"
|
|
|
|
echo "22222222222222 ==================================== ${sysroot}"
|
|
LLVM_TC_SYSROOT="${sysroot}"
|
|
LLVM_TC_FIND_ROOT_PATH="${sysroot}"
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PROGRAM="NEVER"
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_LIBRARY="ONLY"
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_INCLUDE="ONLY"
|
|
LLVM_TC_FIND_ROOT_PATH_MODE_PACKAGE="ONLY"
|
|
LLVM_TC_LINKER_TYPE="LLD"
|
|
LLVM_TC_C_USING_LINKER_LLD="-fuse-ld=lld"
|
|
LLVM_TC_CXX_USING_LINKER_LLD="-fuse-ld=lld"
|
|
LLVM_TC_C_STANDARD_LINK_DIRECTORIES="${link_dirs}"
|
|
LLVM_TC_CXX_STANDARD_LINK_DIRECTORIES="${link_dirs}"
|
|
LLVM_TC_CXX_STANDARD_INCLUDE_DIRECTORIES="${cxx_include_dirs}"
|
|
LLVM_TC_PTHREAD_LIB="-lwinpthread"
|
|
LLVM_TC_AR="${stage1_install_dir}/bin/llvm-ar"
|
|
LLVM_TC_RANLIB="${stage1_install_dir}/bin/llvm-ranlib"
|
|
LLVM_TC_LINKER="${stage1_install_dir}/bin/ld.lld"
|
|
LLVM_TC_RC_COMPILER="/usr/bin/x86_64-w64-mingw32-windres"
|
|
LLVM_ENABLE_PROJECTS="lld"
|
|
LLVM_TARGETS_TO_BUILD="X86"
|
|
LLVM_DEFAULT_TARGET_TRIPLE="${linux_target}"
|
|
LLVM_NATIVE_TOOL_DIR="${stage1_install_dir}/bin"
|
|
LLVM_TABLEGEN="${stage1_install_dir}/bin/llvm-tblgen"
|
|
llvm_build_base
|
|
return 0
|
|
}
|
|
build_ubuntu2004_gcc93_clang_then_windows_lld_linux_x86() {
|
|
local stage1_suffix="_ubuntu2004_gcc93_native_clang"
|
|
local stage1_install_dir="${_ae_root_}/0_cmake_install_dir/llvm${stage1_suffix}"
|
|
build_windows_lld_linux_x86_by_stage1_clang "${stage1_install_dir}"
|
|
return 0
|
|
}
|