Bug 202406 - multimedia/libvpx wrong CFLAGS/fail to build
Summary: multimedia/libvpx wrong CFLAGS/fail to build
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: i386 Any
: --- Affects Some People
Assignee: Jan Beich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-18 05:19 UTC by sasamotikomi
Modified: 2017-01-17 13:36 UTC (History)
1 user (show)

See Also:


Attachments
Proposed fix for the issue (797 bytes, patch)
2015-08-30 12:28 UTC, Ashish SHUKLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.