fix LTO x264 breaking full build

This commit is contained in:
2025-10-24 10:52:42 -05:00
parent a0c0f11aae
commit 829e431fb3
2 changed files with 28 additions and 13 deletions

View File

@@ -273,8 +273,6 @@ cmake 3.31.8 tar.gz https://github.com/Kitware/CMake/archive/refs/tags/v${ve
else else
extracted_dir="${BUILD_DIR}/${build}-v${ver}" extracted_dir="${BUILD_DIR}/${build}-v${ver}"
fi fi
# download the release
download_release || return 1
return 0 return 0
} }
@@ -366,15 +364,16 @@ FB_FUNC_COMPLETION['do_build']="$(get_build_conf supported)"
do_build() { do_build() {
local build="${1:-''}" local build="${1:-''}"
get_build_conf "${build}" || return 1 get_build_conf "${build}" || return 1
download_release || return 1
# add build configuration to FFMPEG_BUILDER_INFO
FFMPEG_BUILDER_INFO+=("${build}=${ver}")
set_compile_opts || return 1 set_compile_opts || return 1
for dep in "${deps[@]}"; do for dep in "${deps[@]}"; do
do_build "${dep}" || return 1 do_build "${dep}" || return 1
done done
get_build_conf "${build}" || return 1 get_build_conf "${build}" || return 1
download_release || return 1
# start build
echo_info -n "building ${build} " echo_info -n "building ${build} "
pushd "$extracted_dir" >/dev/null || return 1 pushd "$extracted_dir" >/dev/null || return 1
# check for any patches # check for any patches
@@ -419,9 +418,6 @@ build() {
test -f "${testfile}" && ${SUDO_MODIFY} rm "${testfile}" test -f "${testfile}" && ${SUDO_MODIFY} rm "${testfile}"
test -d "${PREFIX}/bin/" || { ${SUDO_MODIFY} mkdir -p "${PREFIX}/bin/" || return 1; } test -d "${PREFIX}/bin/" || { ${SUDO_MODIFY} mkdir -p "${PREFIX}/bin/" || return 1; }
# embed this project's enables/versions
# into ffmpeg with this variable
FFMPEG_BUILDER_INFO=("ffmpeg-builder=$(cd "${REPO_DIR}" && git rev-parse HEAD)")
for build in ${ENABLE}; do for build in ${ENABLE}; do
do_build "${build}" || return 1 do_build "${build}" || return 1
done done
@@ -747,8 +743,15 @@ build_libvmaf() {
### AUTOTOOLS ### ### AUTOTOOLS ###
build_libx264() { build_libx264() {
# libx264 does not support LTO
local configureFlags=()
for flag in "${CONFIGURE_FLAGS[@]}"; do
test "${flag}" == '--enable-lto' && continue
configureFlags+=("${flag}")
done
./configure \ ./configure \
"${CONFIGURE_FLAGS[@]}" \ "${configureFlags[@]}" \
--disable-cli || return 1 --disable-cli || return 1
ccache make -j"${JOBS}" || return 1 ccache make -j"${JOBS}" || return 1
${SUDO_MODIFY} make -j"${JOBS}" install || return 1 ${SUDO_MODIFY} make -j"${JOBS}" install || return 1
@@ -784,6 +787,18 @@ build_libnuma() {
} }
add_project_versioning_to_ffmpeg() { add_project_versioning_to_ffmpeg() {
# embed this project's enables/versions
# into ffmpeg with FFMPEG_BUILDER_INFO
local FFMPEG_BUILDER_INFO=("ffmpeg-builder=$(git -C "${REPO_DIR}" rev-parse HEAD)")
for build in ${ENABLE}; do
get_build_conf "${build}" || return 1
# add build configuration info
FFMPEG_BUILDER_INFO+=("${build}=${ver}")
done
# and finally for ffmpeg itself
get_build_conf ffmpeg || return 1
FFMPEG_BUILDER_INFO+=("${build}=${ver}")
local fname='ffmpeg_opt.c' local fname='ffmpeg_opt.c'
local optFile="fftools/${fname}" local optFile="fftools/${fname}"
if [[ ! -f ${optFile} ]]; then if [[ ! -f ${optFile} ]]; then

View File

@@ -30,12 +30,12 @@ void() { echo "$@" >/dev/null; }
echo_if_fail() { echo_if_fail() {
local cmd=("$@") local cmd=("$@")
local logName="${LOGNAME:-${RANDOM}}" local logName="${LOGNAME:-${RANDOM}}-"
local out="${TMP_DIR}/.stdout-${logName}" local out="${TMP_DIR}/.${logName}stdout"
local err="${TMP_DIR}/.stderr-${logName}" local err="${TMP_DIR}/.${logName}stderr"
# set trace to the cmdEvalTrace and open file descriptor # set trace to the cmdEvalTrace and open file descriptor
local cmdEvalTrace="${TMP_DIR}/.cmdEvalTrace-${logName}" local cmdEvalTrace="${TMP_DIR}/.${logName}cmdEvalTrace"
test -d "${TMP_DIR}" || mkdir -p "${TMP_DIR}" test -d "${TMP_DIR}" || mkdir -p "${TMP_DIR}"
exec 5>"${cmdEvalTrace}" exec 5>"${cmdEvalTrace}"
export BASH_XTRACEFD=5 export BASH_XTRACEFD=5