Opened 3 years ago

Closed 3 years ago

Last modified 2 years ago

#55800 closed defect (fixed)

libvpx @1.7.0_0 build fails: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'

Reported by: laughingtiger Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: yosemite elcapitan Cc: Schamschula (Marius Schamschula), ryandesign (Ryan Schmidt), Ionic (Mihai Moldovan)
Port: libvpx

Description

when upgrading ffmpeg 3.4.1_3 < 3.4.1_4 the upgrade libvpx 1.6.1_1 < 1.7.0_0 fails with Error: Failed to build libvpx: command execution failed. See attached log file.

Attachments (4)

main.log (310.2 KB) - added by laughingtiger 3 years ago.
log
main.2.log (290.3 KB) - added by audionuma 3 years ago.
log for failed build of libvpx on mac OS 10.10.5
main.3.log (274.8 KB) - added by ballapete (Peter Dyballa) 3 years ago.
main.log from El Capitan, OS X 10.11.6
libvpx.diff (1.0 KB) - added by Ionic (Mihai Moldovan) 3 years ago.
Blacklist mp-clang as well, add explicit fallback to mp-clang-3.9.

Download all attachments as: .zip

Change History (19)

Changed 3 years ago by laughingtiger

Attachment: main.log added

log

comment:1 Changed 3 years ago by kencu (Ken)

Cc: dbevans added
Summary: libvpx 1.7.0_0 build failslibvpx 1.7.0_0 build fails: error: passing 'int' to parameter of incompatible type '__m256i' (vector of 4 'long long' values)

comment:2 Changed 3 years ago by kencu (Ken)

looks like the version of clang included with darwin 15 is too old to understand the new avx512 instructions in libvpx.

It builds with clang-3.9 without any trouble.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:3 Changed 3 years ago by kencu (Ken)

Summary: libvpx 1.7.0_0 build fails: error: passing 'int' to parameter of incompatible type '__m256i' (vector of 4 'long long' values)libvpx 1.7.0_0 build fails: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'

Changed 3 years ago by audionuma

Attachment: main.2.log added

log for failed build of libvpx on mac OS 10.10.5

comment:4 Changed 3 years ago by audionuma

Same issue here on mac OS 10.10.5. Added main.log

comment:5 Changed 3 years ago by ballapete (Peter Dyballa)

I see the same failure on El Capitan, OS X 10.11.6. Here I see one more report:

vpx_dsp/x86/sad4d_avx512.c:27:14: warning: implicit declaration of function '_mm512_set1_epi16' is invalid in C99 [-Wimplicit-function-declaration]
  sum_ref0 = _mm512_set1_epi16(0);
             ^

The code is:

   23	  ref0 = ref[0];
   24	  ref1 = ref[1];
   25	  ref2 = ref[2];
   26	  ref3 = ref[3];
   27	  sum_ref0 = _mm512_set1_epi16(0);
   28	  sum_ref1 = _mm512_set1_epi16(0);
   29	  sum_ref2 = _mm512_set1_epi16(0);
   30	  sum_ref3 = _mm512_set1_epi16(0);

Either someone mixed up brackets or this function _mm512_set1_epi16() does not exist. The latter sounds more plausible: find only finds the string _mm512_set1_epi16 *used* on these four mentioned lines. This looks like the actual cause for the failure.

Changed 3 years ago by ballapete (Peter Dyballa)

Attachment: main.3.log added

main.log from El Capitan, OS X 10.11.6

comment:6 Changed 3 years ago by mf2k (Frank Schima)

Cc: dbevans removed
Owner: set to dbevans
Status: newassigned

comment:7 Changed 3 years ago by kencu (Ken)

there is no failure if you build with a newer compiler Pete. It builds through perfectly fine with clang 3.9 and newer, at least on this MacBook Pro I use day to day (and on 10.6.8, at that). Assuming configure is not mistaking avx512 support on your processor, a newer clang should fix it.

Buildbots likely tell Dave where the cutoff is.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:8 Changed 3 years ago by Schamschula (Marius Schamschula)

Cc: Schamschula added

comment:9 Changed 3 years ago by ryandesign (Ryan Schmidt)

Keywords: yosemite elcapitan added
Summary: libvpx 1.7.0_0 build fails: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'libvpx @1.7.0_0 build fails: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'

Support for _mm512_set1_epi16 was committed to clang trunk on May 24, 2016 so we need a version of clang released after that; looks like Xcode 8 was the first release after that so we need to blacklist {clang < 800}.

comment:10 Changed 3 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

In 4832398cd70dcb1879ec29d677f1c753cee8e1de/macports-ports:

libvpx: Blacklist older clang that doesn't know _mm512_set1_epi16

Closes: #55800

comment:11 Changed 3 years ago by Ionic (Mihai Moldovan)

Resolution: fixed
Status: closedreopened

... and MP-clang < 3.9.

Changed 3 years ago by Ionic (Mihai Moldovan)

Attachment: libvpx.diff added

Blacklist mp-clang as well, add explicit fallback to mp-clang-3.9.

comment:12 Changed 3 years ago by Ionic (Mihai Moldovan)

Cc: ryandesign Ionic added

How about something like this?

comment:13 Changed 3 years ago by ryandesign (Ryan Schmidt)

Sure.

comment:14 Changed 3 years ago by Mihai Moldovan <ionic@…>

Resolution: fixed
Status: reopenedclosed

In 797915c5451d6c2fd20b1a9c9629536eb45534de/macports-ports:

multimedia/libvpx: blacklist mp-clang < 3.9.

This also forces the fallback compiler to be macports-clang-3.9, which
is mandatory on older systems that have been migrated to use libc++ and
thus override their compiler list to include mp-clang-3.7 (or the like)
at the beginning.

Fixes: #55800 (again)

comment:15 Changed 2 years ago by Skippern (Aun Johnsen)

I have the same issue on macOS 10.11.6

doesn't seem the blacklist/fallback works as intended, tried forced updating with no result.

Note: See TracTickets for help on using tickets.