Bug 202406

Summary: multimedia/libvpx wrong CFLAGS/fail to build
Product: Ports & Packages Reporter: sasamotikomi
Component: Individual Port(s)Assignee: Jan Beich <jbeich>
Status: Closed Works As Intended    
Severity: Affects Some People CC: ashish
Priority: ---    
Version: Latest   
Hardware: i386   
OS: Any   
Attachments:
Description Flags
Proposed fix for the issue none

Description sasamotikomi 2015-08-18 05:19:38 UTC
--build-pfx= --depfile=vp8/encoder/x86/fwalsh_sse2.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vp8/encoder/x86/fwalsh_sse2.asm > vp8/encoder/x86/fwalsh_sse2.asm.d
mkdir -p vp8/encoder/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vp8/encoder/x86/dct_sse2.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vp8/encoder/x86/dct_sse2.asm > vp8/encoder/x86/dct_sse2.asm.d
mkdir -p vp8/encoder/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vp8/encoder/x86/subtract_mmx.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vp8/encoder/x86/subtract_mmx.asm > vp8/encoder/x86/subtract_mmx.asm.d
mkdir -p vp8/encoder/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vp8/encoder/x86/dct_mmx.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vp8/encoder/x86/dct_mmx.asm > vp8/encoder/x86/dct_mmx.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/variance_impl_mmx.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/variance_impl_mmx.asm > vpx_dsp/x86/variance_impl_mmx.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad_sse4.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad_sse4.asm > vpx_dsp/x86/sad_sse4.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad_ssse3.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad_ssse3.asm > vpx_dsp/x86/sad_ssse3.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad_sse3.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad_sse3.asm > vpx_dsp/x86/sad_sse3.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad_sse2.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad_sse2.asm > vpx_dsp/x86/sad_sse2.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad4d_sse2.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad4d_sse2.asm > vpx_dsp/x86/sad4d_sse2.asm.d
mkdir -p vpx_dsp/x86/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_dsp/x86/sad_mmx.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_dsp/x86/sad_mmx.asm > vpx_dsp/x86/sad_mmx.asm.d
mkdir -p vpx_ports/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_ports/x86_abi_support.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_ports/x86_abi_support.asm > vpx_ports/x86_abi_support.asm.d
mkdir -p vpx_ports/
/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d/build/make/gen_asm_deps.sh \
            --build-pfx= --depfile=vpx_ports/emms.asm.d -f elf32 -I./ -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d"/ vpx_ports/emms.asm > vpx_ports/emms.asm.d
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx/src/vpx_decoder.c.o vpx/src/vpx_decoder.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx/src/vpx_encoder.c.o vpx/src/vpx_encoder.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx/src/vpx_codec.c.o vpx/src/vpx_codec.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx/src/vpx_image.c.o vpx/src/vpx_image.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx/src/vpx_psnr.c.o vpx/src/vpx_psnr.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_mem/vpx_mem.c.o vpx_mem/vpx_mem.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_scale/generic/vpx_scale.c.o vpx_scale/generic/vpx_scale.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_scale/generic/yv12config.c.o vpx_scale/generic/yv12config.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_scale/generic/yv12extend.c.o vpx_scale/generic/yv12extend.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_scale/generic/gen_scalers.c.o vpx_scale/generic/gen_scalers.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_scale/vpx_scale_rtcd.c.o vpx_scale/vpx_scale_rtcd.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -c -o vpx_dsp/sad.c.o vpx_dsp/sad.c
cc  -O2 -pipe -march=athlon-xp  -fstack-protector -fno-strict-aliasing -m32 -DNDEBUG -O3 -fPIC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused-variable -fno-strict-aliasing -Wno-unused-function -I. -I"/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d" -mavx2  -c -o vpx_dsp/x86/sad4d_avx2.c.o vpx_dsp/x86/sad4d_avx2.c
vpx_dsp/x86/sad4d_avx2.c:10:10: fatal error: 'immintrin.h' file not found
#include <immintrin.h>  // AVX2
         ^
1 error generated.
Makefile:145: recipe for target 'vpx_dsp/x86/sad4d_avx2.c.o' failed
gmake[3]: *** [vpx_dsp/x86/sad4d_avx2.c.o] Error 1
Makefile:17: recipe for target '.DEFAULT' failed
gmake[2]: *** [.DEFAULT] Error 2
gmake[2]: Leaving directory '/usr/ports/multimedia/libvpx/work/libvpx-1.4.0-488-ge67d45d'
*** Error code 1

Port used wrong vendor CFLAGS SSE2/3/4/4.1 AVX/AVX2 on CPU without support of this instructions.
Comment 1 Ashish SHUKLA freebsd_committer freebsd_triage 2015-08-22 19:45:38 UTC
Hi,

Could you provide more details about your host ?

1. uname -a

2. sysctl hw.model

Thanks!
Comment 2 sasamotikomi 2015-08-23 08:39:24 UTC
(In reply to Ashish SHUKLA from comment #1)
uname -a
FreeBSD 10.1-RELEASE-p16 FreeBSD 10.1-RELEASE-p16 #0: Tue Jul 28 11:41:12 UTC 2015     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
sysctl hw.model
hw.model: AMD Sempron(tm)   2500+
It's typical mistake, I already wrote about it: 
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198738
Comment 3 Ashish SHUKLA freebsd_committer freebsd_triage 2015-08-30 12:28:39 UTC
Created attachment 160523 [details]
Proposed fix for the issue

Sorry for the delay in follow up on this issue. Could you please try the attached diff (inspired from: r387283), and see if it fixes your build issue ?

Thanks!
Comment 4 Jan Beich freebsd_committer freebsd_triage 2015-08-31 07:06:18 UTC
Comment on attachment 160523 [details]
Proposed fix for the issue

bug 202586 revealed the reporter has broken toolchain. I'd ask you to not rush the change in. It'd disable runtime optimization (detected via CPUID) that is often useful for package users. Besides, MACHINE_CPU has nothing to do with -mfoo support or header availability.

  # FreeBSD 10.1R i386
  $ find /usr/include /usr/lib/clang -name immintrin.h
  /usr/include/clang/3.4.1/immintrin.h
  find: /usr/lib/clang: No such file or directory

  # FreeBSD 11.0-CURRENT armv6
  $ find /usr/include /usr/lib/clang -name immintrin.h
  /usr/lib/clang/3.6.1/include/immintrin.h
Comment 5 Jan Beich freebsd_committer freebsd_triage 2017-01-17 13:35:57 UTC
Closing since no one else has bumped into the issue.