"emerge media-libs/libaom-3.1.2" fails with USE=abi_x86_32 on x64 system as follows; [287/288] : && /usr/bin/x86_64-pc-linux-gnu-g++ -m32 -march=native -O2 -pipe -fcommon -std=c++11 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wlogical-op -Wpointer-arith -Wsign-compare -Wtype-limits -Wuninitialized -Wunused -Wvla -Wstack-usage=240000 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 CMakeFiles/aom_common_app_util.dir/av1/arg_defs.c.o CMakeFiles/aom_common_app_util.dir/common/args_helper.c.o CMakeFiles/aom_common_app_util.dir/common/args.c.o CMakeFiles/aom_common_app_util.dir/common/av1_config.c.o CMakeFiles/aom_common_app_util.dir/common/md5_utils.c.o CMakeFiles/aom_common_app_util.dir/common/tools_common.c.o CMakeFiles/aom_common_app_util.dir/common/rawenc.c.o CMakeFiles/aom_common_app_util.dir/common/y4menc.c.o CMakeFiles/aom_decoder_app_util.dir/common/ivfdec.c.o CMakeFiles/aom_decoder_app_util.dir/common/obudec.c.o CMakeFiles/aom_decoder_app_util.dir/common/video_reader.c.o CMakeFiles/aom_decoder_app_util.dir/common/webmdec.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/convert_argb.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/cpu_id.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/planar_functions.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_any.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_common.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_gcc.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_mips.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_neon.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_neon64.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_win.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_any.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_common.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_gcc.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_mips.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_neon.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_neon64.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_win.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_uv.cc.o CMakeFiles/webm.dir/third_party/libwebm/common/hdr_util.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvmuxer.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvwriter.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvparser/mkvparser.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvparser/mkvreader.cc.o CMakeFiles/dump_obu.dir/gen_src/usage_exit.cc.o CMakeFiles/dump_obu.dir/tools/dump_obu.cc.o CMakeFiles/dump_obu.dir/tools/obu_parser.cc.o -o dump_obu -Wl,-rpath,/var/tmp/portage/media-libs/libaom-3.1.2/work/libaom-3.1.2_build-abi_x86_32.x86 libaom.so.3.1.2 -lm -lpthread && : FAILED: dump_obu : && /usr/bin/x86_64-pc-linux-gnu-g++ -m32 -march=native -O2 -pipe -fcommon -std=c++11 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wlogical-op -Wpointer-arith -Wsign-compare -Wtype-limits -Wuninitialized -Wunused -Wvla -Wstack-usage=240000 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 CMakeFiles/aom_common_app_util.dir/av1/arg_defs.c.o CMakeFiles/aom_common_app_util.dir/common/args_helper.c.o CMakeFiles/aom_common_app_util.dir/common/args.c.o CMakeFiles/aom_common_app_util.dir/common/av1_config.c.o CMakeFiles/aom_common_app_util.dir/common/md5_utils.c.o CMakeFiles/aom_common_app_util.dir/common/tools_common.c.o CMakeFiles/aom_common_app_util.dir/common/rawenc.c.o CMakeFiles/aom_common_app_util.dir/common/y4menc.c.o CMakeFiles/aom_decoder_app_util.dir/common/ivfdec.c.o CMakeFiles/aom_decoder_app_util.dir/common/obudec.c.o CMakeFiles/aom_decoder_app_util.dir/common/video_reader.c.o CMakeFiles/aom_decoder_app_util.dir/common/webmdec.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/convert_argb.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/cpu_id.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/planar_functions.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_any.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_common.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_gcc.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_mips.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_neon.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_neon64.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/row_win.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_any.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_common.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_gcc.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_mips.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_neon.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_neon64.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_win.cc.o CMakeFiles/yuv.dir/third_party/libyuv/source/scale_uv.cc.o CMakeFiles/webm.dir/third_party/libwebm/common/hdr_util.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvmuxer.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvmuxer/mkvwriter.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvparser/mkvparser.cc.o CMakeFiles/webm.dir/third_party/libwebm/mkvparser/mkvreader.cc.o CMakeFiles/dump_obu.dir/gen_src/usage_exit.cc.o CMakeFiles/dump_obu.dir/tools/dump_obu.cc.o CMakeFiles/dump_obu.dir/tools/obu_parser.cc.o -o dump_obu -Wl,-rpath,/var/tmp/portage/media-libs/libaom-3.1.2/work/libaom-3.1.2_build-abi_x86_32.x86 libaom.so.3.1.2 -lm -lpthread && : /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad4xh_sse2' /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad16xh_sse2' /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad64xh_sse2' /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad8xh_sse2' /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad32xh_sse2' /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: libaom.so.3.1.2: undefined reference to `aom_sad128xh_sse2' collect2: error: ld returned 1 exit status Reproducible: Always Steps to Reproduce: 1.emerge =media-libs/libaom-3.1.2 Actual Results: See attached files, I will attach soon. Expected Results: build success.
Created attachment 742617 [details] build log
Created attachment 742620 [details] build log (32), fail
Created attachment 742623 [details] build log (64), success
Thank you for the report. We need to have all information at hand before ticket assignment. Please * paste the emerge info as described on https://wiki.gentoo.org/wiki/Attach_the_logs_to_the_bug_ticket Please reopen this ticket (Status:UNCONFIRMED) afterwards.
See also https://bugs.gentoo.org/671340
Created attachment 742644 [details] emerge --info
I attached emerge --info. Please tell me if more information(s) is needed.
32-bit build fails with CPU_FLAGS_X86="mmx mmxext sse sse2" flags. It start to work with: CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" emerge -1 libaom Try if it works for you. Even if you have old CPU, probably it will work. I guess that libaom use some run-time check so it will use only current CPU-supported optimizations. Tell us if this workaround works for you.
O.K, emerge success with CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" and then; # ls -l /usr/lib{32,64}/libaom*.so.3.1.2 -rwxr-xr-x 1 root root 4926116 Dec 4 11:41 /usr/lib32/libaom.so.3.1.2 -rwxr-xr-x 1 root root 4497304 Dec 4 11:41 /usr/lib64/libaom.so.3.1.2 Thunderbird, that uses libaom, seems running well currently.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=628a37720393c8362cdecfaa9686e1e873f320c5 commit 628a37720393c8362cdecfaa9686e1e873f320c5 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-12-24 06:13:33 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-12-24 06:13:33 +0000 media-libs/libaom: add 3.2.0 Bug: https://bugs.gentoo.org/816027 Bug: https://bugs.gentoo.org/828112 Bug: https://bugs.gentoo.org/793932 Bug: https://bugs.gentoo.org/798126 Signed-off-by: Sam James <sam@gentoo.org> media-libs/libaom/Manifest | 1 + media-libs/libaom/libaom-3.2.0.ebuild | 84 +++++++++++++++++++++++++++++++++++ media-libs/libaom/libaom-9999.ebuild | 13 ++++-- 3 files changed, 95 insertions(+), 3 deletions(-)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f96696e0926a6e2ff71c7455755e6a5563f0570 commit 1f96696e0926a6e2ff71c7455755e6a5563f0570 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-03-17 02:07:19 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-03-17 02:08:39 +0000 media-libs/libaom: workaround bugs in intrinsic-enabled/disabled builds - For 32-bit multilib builds on amd64, force on SSE3 & SSSE3. It seems to check at runtime anyway (for some targets, inc. this one). - For arm32-on-arm64 builds, go generic, because it gets confused by ARM64 when NEON is disabled (I think?). Could try forcing arm at some point. Closes: https://bugs.gentoo.org/816027 Closes: https://bugs.gentoo.org/835456 Signed-off-by: Sam James <sam@gentoo.org> media-libs/libaom/libaom-3.3.0.ebuild | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)