[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