Closed
Bug 1085607
Opened 11 years ago
Closed 11 years ago
libvpx doesn't build on OS X with Apple clang from OS X 10.7 command line tools
Categories
(Core :: Audio/Video, defect)
Tracking
()
RESOLVED
FIXED
mozilla36
People
(Reporter: smichaud, Assigned: smichaud)
References
Details
Attachments
(1 file, 2 obsolete files)
|
3.98 KB,
patch
|
smichaud
:
review+
|
Details | Diff | Splinter Review |
The latest (and probably the last) release of Apple's Command Line Tools for OS X Lion (April 2013) contains a copy of clang with the following version information:
$ clang --version
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix
Since bug 1063356 updated libvpx in the tree, the libvpx build now dies (using this version of clang) as follows:
/usr/local/src/Mozilla/asan/mozilla-central/media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.
c:77:18: warning: implicit declaration of function '_mm256_broadcastsi128_si256' is invalid in C99 [
-Wimplicit-function-declaration]
filtersReg32 = MM256_BROADCASTSI128_SI256(filtersReg);
^
/usr/local/src/Mozilla/asan/mozilla-central/media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.
c:41:41: note: expanded from macro 'MM256_BROADCASTSI128_SI256'
# define MM256_BROADCASTSI128_SI256(x) _mm256_broadcastsi128_si256(x)
^
/usr/local/src/Mozilla/asan/mozilla-central/media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.c:77:16: error: assigning to '__m256i' from incompatible type 'int'
filtersReg32 = MM256_BROADCASTSI128_SI256(filtersReg);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/Mozilla/asan/mozilla-central/media/libvpx/vp9/common/x86/vp9_subpixel_8t_intrin_avx2.c:322:16: error: assigning to '__m256i' from incompatible type 'int'
filtersReg32 = MM256_BROADCASTSI128_SI256(filtersReg);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning and 2 errors generated.
| Assignee | ||
Comment 1•11 years ago
|
||
A similar problem is reported here:
https://code.google.com/p/webm/issues/detail?id=720
I expect this won't be hard to fix. Hopefully I'll be able to post a patch in the next hour or so.
| Assignee | ||
Comment 4•11 years ago
|
||
I'm not sure those other bugs really are dups of this one. Or at least I doubt the patch I'm about to post will fix those other bugs.
| Assignee | ||
Comment 6•11 years ago
|
||
This patch allows me to build on OS X 10.7 (with the version of Apple's clang I mentioned in comment #0). But I have no idea whether or not it breaks vp9. Please post a manual testcase, with STR.
For what it's worth, I've started an all-platform tryserver build:
https://tbpl.mozilla.org/?tree=Try&rev=8a5d7a8557bb
I got the following results grepping on _mm_broadcastsi128_si256 in /usr/lib on OS X 10.7.5 and 10.8.5 (after updating to the latest command line tools on 10.8.5):
[10.7.5]
$ grep -r -s _mm_broadcastsi128_si256 *
clang/4.0/include/avx2intrin.h:_mm_broadcastsi128_si256(__m128i const *a)
clang/4.2/include/avx2intrin.h:_mm_broadcastsi128_si256(__m128i const *a)
[10.8.5]
$ grep -r -s _mm_broadcastsi128_si256 *
clang/4.1/include/avx2intrin.h:_mm_broadcastsi128_si256(__m128i const *a)
clang/4.2/include/avx2intrin.h:_mm_broadcastsi128_si256(__m128i const *a)
I think this supports my conclusion (embodied in my patch) that Apple's clang 4.0, 4.1 and 4.2 (Apple's versioning) all support (and need to use) _mm_broadcastsi128_si256.
Assignee: nobody → smichaud
Attachment #8508239 -
Flags: review?(giles)
Comment 7•11 years ago
|
||
Comment on attachment 8508239 [details] [diff] [review]
Fix
Review of attachment 8508239 [details] [diff] [review]:
-----------------------------------------------------------------
Please also add a .patch file to the tree and add it to apply_patches() in update.py.
Otherwise looks fine.
Attachment #8508239 -
Flags: review?(giles) → review-
| Assignee | ||
Comment 8•11 years ago
|
||
> also
Do you mean "instead"?
Comment 9•11 years ago
|
||
No, as well as applying the patch; it's to make sure we don't lose the change next time we pull from upstream.
| Assignee | ||
Comment 10•11 years ago
|
||
How's this?
Attachment #8508239 -
Attachment is obsolete: true
Attachment #8508282 -
Flags: review?(giles)
Comment 11•11 years ago
|
||
builds for me with this patch on 4.2 (XCode 4.6.3, OSX 10.7.5)
Comment 12•11 years ago
|
||
Comment on attachment 8508282 [details] [diff] [review]
Fix rev1
Review of attachment 8508282 [details] [diff] [review]:
-----------------------------------------------------------------
That's it, thanks. r=me with the patchlevel fixed.
::: media/libvpx/update.py
@@ +530,5 @@
> def apply_patches():
> # Patch to permit vpx users to specify their own <stdint.h> types.
> os.system("patch -p0 < stdint.patch")
> + # Patch to allow older versions of Apple's clang to build libvpx.
> + os.system("patch -p0 < apple-clang.patch")
you need -p3 here, so it's relative to the script's parent dir.
Attachment #8508282 -
Flags: review?(giles) → review+
| Assignee | ||
Comment 13•11 years ago
|
||
What I'll land. (Carrying forward r+.)
Attachment #8508282 -
Attachment is obsolete: true
Attachment #8508307 -
Flags: review+
| Assignee | ||
Comment 14•11 years ago
|
||
mozilla-inbound is currently closed. I'm waiting for it to reopen.
| Assignee | ||
Comment 15•11 years ago
|
||
Comment on attachment 8508307 [details] [diff] [review]
Fix rev2
Landed on mozilla-inbound:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5515fa5ba20d
Comment 16•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
You need to log in
before you can comment on or make changes to this bug.
Description
•