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

Reply via email to