[FFmpeg-user] d4cd8830bd breaks build on AMD Ryzen

Chema Gonzalez chema at berkeley.edu
Wed Apr 27 20:26:23 EEST 2022


I have an AMD Ryzen Threadripper PRO 3975WX (32-Cores). I tried to
build HEAD (4fc806bbe612784286f123af92a0d5d0da333064), but it fails:

```
$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
$ cd ffmpeg
$ PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig
./configure --enable-bzlib --enable-zlib --enable-postproc
--enable-runtime-cpudetect --enable-gray --enable-gpl --enable-nonfree
--enable-libzimg --enable-libx264 --enable-libx265 --enable-libtheora
--enable-libvpx --enable-libaom --enable-libdav1d --enable-libopenh264
--enable-libkvazaar --enable-libvmaf --enable-libvorbis
--enable-libmp3lame --enable-libass --enable-libspeex
--enable-libvo-amrwbenc --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopus --enable-libsoxr
--enable-libpulse --enable-libfreetype --enable-libopenjpeg
--enable-version3 --enable-libsvtav1  # ffmpeg configure
$ make -j
...
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
make: *** [ffbuild/common.mak:100: libavcodec/x86/hevc_mc.o] Error 1
make: *** Waiting for unfinished jobs....
```

I bisected the build, and can see:

```
$ git reset --hard d4cd8830bda
$ PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig
./configure --enable-bzlib --enable-zlib --enable-postproc
--enable-runtime-cpudetect --enable-gray --enable-gpl --enable-nonfree
--enable-libzimg --enable-libx264 --enable-libx265 --enable-libtheora
--enable-libvpx --enable-libaom --enable-libdav1d --enable-libopenh264
--enable-libkvazaar --enable-libvmaf --enable-libvorbis
--enable-libmp3lame --enable-libass --enable-libspeex
--enable-libvo-amrwbenc --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopus --enable-libsoxr
--enable-libpulse --enable-libfreetype --enable-libopenjpeg
--enable-version3 --enable-libsvtav1  # ffmpeg configure
$ make -j
...
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
libavcodec/x86/hevc_mc.asm:1806: error: symbol `.. at 88236.table' not defined
libavcodec/x86/hevc_mc.asm:1761: ... from macro
`HEVC_PUT_HEVC_QPEL_HV_AVX512ICL' defined here
libavcodec/x86/hevc_mc.asm:1710: ... from macro `QPEL_FILTER_V' defined here
make: *** [ffbuild/common.mak:100: libavcodec/x86/hevc_mc.o] Error 1
make: *** Waiting for unfinished jobs....
```

but:

```
$ git reset --hard d4cd8830bda~
$ make -j
...
STRIP ffprobe
STRIP ffplay
STRIP ffmpeg
```

In case it helps, this is my CPU:

```
$ cat /proc/cpuinfo
...
processor : 63
vendor_id : AuthenticAMD
cpu family  : 23
model   : 49
model name  : AMD Ryzen Threadripper PRO 3975WX 32-Cores
stepping  : 0
microcode : 0x830104d
cpu MHz   : 2200.000
cache size  : 512 KB
physical id : 0
siblings  : 64
core id   : 31
cpu cores : 32
apicid    : 63
initial apicid  : 63
fpu   : yes
fpu_exception : yes
cpuid level : 16
wp    : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt
pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid
extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16
sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm
cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch
osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext
perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp
vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap
clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc
cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr
rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean
flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload
vgif v_spec_ctrl umip rdpid overflow_recov succor smca sme sev sev_es
bugs    : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips  : 6987.44
TLB size  : 3072 4K pages
clflush size  : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
```

Thanks!
-Chema


More information about the ffmpeg-user mailing list