Poperton
Poperton

Reputation: 2127

ffmpeg compilation with --arch=x86_64 always compiles with x86

I'm compiling ffmpeg with

./configure \
      --prefix=${BUILD_DIR}/desktop/${ARCH} \
      --extra-cflags="-I$HOME/ffmpeg_build/include" \
      --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
      --enable-shared \
      #--extra-cflags="-I/opt/intel/mediasdk/include" \
      #--extra-ldflags="-L/opt/intel/mediasdk/lib" \
      #--extra-ldflags="-L/opt/intel/mediasdk/plugins" \
      --arch=${ARCH} \
      --enable-libmfx \
      --enable-vaapi \
      --enable-opencl \
      --disable-debug \
      --enable-nvenc \
      --enable-cuda \
      --enable-cuvid \
      #--enable-libvorbis \
      --enable-libvpx \
      --enable-libdrm \
      --enable-gpl \
      --enable-runtime-cpudetect \
      --enable-libfdk-aac \
      --enable-libx264 \
      --enable-libx265 \
      --enable-openssl \
      --enable-pic \
      --extra-libs="-lpthread -libm -libc -lz -ldl" \
      --enable-nonfree 

where ARCH=x86_64 but it always gives me this in the output of configure:

install prefix            /home/deps/ffmpeg/build/desktop/x86_64
source path               .
C compiler                gcc
C library                 glibc
ARCH                      x86 (generic)
...

uname -m says my machine is x86_64 so I'm not trying to build on a x86 only.

What is happening?

Upvotes: 4

Views: 3369

Answers (1)

Alexander Ushakov
Alexander Ushakov

Reputation: 5399

Don't worry you've got an x86_64 ffmpeg. The mentioned message is normal for x86_64 compilation as ffmpeg configure combines all x86 architectures in one 'x86' arch:

case "$arch" in
...
    i[3-6]86*|i86pc|BePC|x86pc|x86_64|x86_32|amd64)
        arch="x86"

and put x86_64 in subarch level

You can use file command to check what architecture are your resulted .so files: https://superuser.com/questions/791506/how-to-determine-if-a-linux-binary-file-is-32-bit-or-64-bit

Upvotes: 10

Related Questions