Opened 6 years ago

Closed 6 years ago

Last modified 6 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 Carsten 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 6 years ago.
log
main.2.log (290.3 KB) - added by audionuma 6 years ago.
log for failed build of libvpx on mac OS 10.10.5
main.3.log (274.8 KB) - added by ballapete (Peter "Pete" Dyballa) 6 years ago.
main.log from El Capitan, OS X 10.11.6
libvpx.diff (1.0 KB) - added by Ionic (Mihai Moldovan) 6 years ago.
Blacklist mp-clang as well, add explicit fallback to mp-clang-3.9.

Download all attachments as: .zip

Change History (19)

Changed 6 years ago by laughingtiger

Attachment: main.log added

log

comment:1 Changed 6 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 6 years ago by kencu (Ken)

looks like the assembler in 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.

Version 0, edited 6 years ago by kencu (Ken) (next)

comment:3 Changed 6 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 6 years ago by audionuma

Attachment: main.2.log added

log for failed build of libvpx on mac OS 10.10.5

comment:4 Changed 6 years ago by audionuma

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

comment:5 Changed 6 years ago by ballapete (Peter "Pete" 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 6 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.3.log added

main.log from El Capitan, OS X 10.11.6

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

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

comment:7 Changed 6 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 6 years ago by kencu (Ken) (previous) (diff)

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

Cc: Schamschula added

comment:9 Changed 6 years ago by ryandesign (Ryan Carsten 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 6 years ago by ryandesign (Ryan Carsten 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 6 years ago by Ionic (Mihai Moldovan)

Resolution: fixed
Status: closedreopened

... and MP-clang < 3.9.

Changed 6 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 6 years ago by Ionic (Mihai Moldovan)

Cc: ryandesign Ionic added

How about something like this?

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

Sure.

comment:14 Changed 6 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 6 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.