Source: openh264 Version: 2.2.0+dfsg-2 Severity: important Tags: ftbfs Justification: fails to build from source (but built successfully in the past) Forwarded: https://github.com/cisco/openh264/issues/3545
Hello, openh264 currently FTBFS on x32 with the following error: x86_64-linux-gnux32-g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -m64 -DX86_ASM -DHAVE_AVX2 -Wall -fno-strict-aliasing -fPIC -MMD -MP -fstack-protector-all -DGENERATED_VERSION_HEADER -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -DHAVE_AVX2 -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/copy_mb.o codec/common/src/copy_mb.cpp In file included from /usr/lib/gcc/x86_64-linux-gnux32/11/include/limits.h:203, from /usr/lib/gcc/x86_64-linux-gnux32/11/include/syslimits.h:7, from /usr/lib/gcc/x86_64-linux-gnux32/11/include/limits.h:34, from ./codec/common/inc/typedefs.h:37, from ./codec/common/inc/copy_mb.h:36, from codec/common/src/copy_mb.cpp:41: /usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory 26 | #include <bits/libc-header-start.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [codec/common/targets.mk:116: codec/common/src/copy_mb.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /usr/lib/gcc/x86_64-linux-gnux32/11/include/limits.h:203, from /usr/lib/gcc/x86_64-linux-gnux32/11/include/syslimits.h:7, from /usr/lib/gcc/x86_64-linux-gnux32/11/include/limits.h:34, from ./codec/common/inc/typedefs.h:37, from ./codec/common/inc/wels_common_defs.h:37, from codec/common/src/common_tables.cpp:33: /usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory 26 | #include <bits/libc-header-start.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [codec/common/targets.mk:116: codec/common/src/common_tables.o] Error 1 The problem here seems to be the -m64 flag, changing it to -mx32 fixes this error, but then it fails later with: /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/coeff.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/dct.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/intra_pred.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/matrix_transpose.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/memzero.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/quant.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/sample_sc.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/encoder/core/x86/score.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/decoder/core/x86/dct.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/decoder/core/x86/intra_pred.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/processing/src/x86/denoisefilter.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/processing/src/x86/downsample_bilinear.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/processing/src/x86/vaa.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/cpuid.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/dct.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/deblock.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/expand_picture.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/intra_pred_com.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/mb_copy.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/mc_chroma.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/mc_luma.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/satd_sad.o' is incompatible with i386:x64-32 output /usr/bin/ld: i386:x86-64 architecture of input file `codec/common/x86/vaa.o' is incompatible with i386:x64-32 output Here again there is a proble when calling nasm with the "-f elf64" flag: nasm -DUNIX64 -DHAVE_AVX2 -f elf64 -I./codec/common/x86/ -o codec/encoder/core/x86/coeff.o codec/encoder/core/x86/coeff.asm It should be "-f elfx32" here With these two changes, the build is suceeding on x32 architecture This has been forwarded upstream: https://github.com/cisco/openh264/issues/3545 Kind regards, Laurent Bigonville -- System Information: Debian Release: bookworm/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental-debug'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.17.0-3-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8), LANGUAGE=fr_BE:fr Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: SELinux: enabled - Mode: Permissive - Policy name: refpolicy