[FFmpeg-trac] #10900(undetermined:open): unable to build v6.1.1 without pthreads.
FFmpeg
trac at avcodec.org
Wed Mar 13 03:46:49 EET 2024
#10900: unable to build v6.1.1 without pthreads.
----------------------------------+----------------------------------------
Reporter: glennmcc | Owner: (none)
Type: defect | Status: open
Priority: normal | Component: undetermined
Version: 6.1 | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
----------------------------------+----------------------------------------
Comment (by glennmcc):
For those questioning why I'm trying to build without threads.
This all came about while building newer versions of
both FFMPEG.EXE & FFPROBE.EXE for DOS using the DJGPP cross compiler
running on slackware Linux 64bit.
The following build script works perfectly for all the way up to v5.1.4
--- build-ffmpeg.sh ---
#!/bin/bash
# Set the DJGPP_PREFIX variable to the root directory of the DJGPP cross-
compiler toolchain
export DJGPP_PREFIX="/archives-a/build/djgpp"
export PATH="$DJGPP_PREFIX/bin:$PATH"
export LIB="$DJGPP_PREFIX/lib/"
export GCC_EXEC_PREFIX="$DJGPP_PREFIX/lib/gcc/"
export INCLUDE="$DJGPP_PREFIX/include/"
# Define the target architecture by appending "/bin/i586-pc-msdosdjgpp" to
the DJGPP_PREFIX
TARGET_ARCH="${DJGPP_PREFIX}/i586-pc-msdosdjgpp/bin/"
# Add the DJGPP_PREFIX/bin directory to the beginning of the PATH
environment variable
export PATH="${DJGPP_PREFIX}/bin:$PATH"
# Define the version of FFmpeg to download
FFMPEG_VERSION="$1"
# Define the URL of the FFmpeg archive to download
FFMPEG_ARCHIVE="https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz"
# Define the directory name where FFmpeg source will be extracted
FFMPEG_SOURCE_DIR="ffmpeg-${FFMPEG_VERSION}"
# Download the FFmpeg archive
wget -c "$FFMPEG_ARCHIVE"
# Remove any existing directory with the same name as FFMPEG_SOURCE_DIR
rm -rf "$FFMPEG_SOURCE_DIR"
# Extract the FFmpeg source from the downloaded archive
tar -xf "ffmpeg-${FFMPEG_VERSION}.tar.gz"
# Change the current directory to the FFmpeg source directory
cd $FFMPEG_SOURCE_DIR
# Run the configure script with specific options to prepare FFmpeg for
cross-compilation
./configure \
--enable-cross-compile \
--cc="${TARGET_ARCH}gcc" \
--cxx="${TARGET_ARCH}g++" \
--ar="${TARGET_ARCH}ar" \
--as="${TARGET_ARCH}as" \
--ranlib="${TARGET_ARCH}ranlib" \
--sysroot="${DJGPP_PREFIX}" \
--disable-debug \
--arch=i486 \
--cpu=i486 \
--target-os=ms-dos \
--disable-doc \
--enable-gpl \
--disable-txtpages \
--extra-cflags="-w" \
--disable-pthreads \
--disable-vulkan
# Compile FFmpeg with multiple jobs, using the number of available
processors
make -j$(nproc) 2>../1errors.txt
_________________________
However, in the v6.x branch, even with that addition of --disable-vulkan,
as a result of Gyan pointing-out that vulkan requires threads,
only FFPROBE.EXE gets built and not FFMPEG.EXE
Therefore, there seem to be a whole bunch of items in the 6.x branch
that now require threads.
So for now, we old DOS diehards seem to be 'frozen' at v5.1.4
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10900#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list