Opened 9 years ago
Last modified 9 years ago
#6324 reopened defect
Cannot compile ffmpeg 3.3 and latest master for arm64 for iOS
| Reported by: | ioeir2 | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | ffmpeg |
| Version: | git-master | Keywords: | ios |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
Cannot compile ffmpeg 3.3 and latest master for arm64 for iOS. Getting error when compiling neon code for arm64 and armv7. However armv7, x86_64 and i386 targets can be compiled without any issues.
At the same time it is still possible to compile arm64 on ffmpeg 3.2.4.
Errors:
src/libavcodec/aarch64/h264dsp_init_aarch64.c:90:40: warning: incompatible pointer types assigning to 'h264_biweight_func' (aka 'void
(*)(unsigned char *, unsigned char *, long, int, int, int, int, int)') from
'void (uint8_t *, uint8_t *, int, int, int, int, int, int)' (aka 'void (unsigned char *, unsigned char *, int, int, int, int, int,
int)') [-Wincompatible-pointer-types]
c->biweight_h264_pixels_tab[2] = ff_biweight_h264_pixels_4_neon;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 warnings generated.
AS libavcodec/aarch64/h264idct_neon.o
CC libavcodec/aarch64/h264pred_init.o
AS libavcodec/aarch64/h264pred_neon.o
CC libavcodec/aarch64/h264qpel_init_aarch64.o
AS libavcodec/aarch64/h264qpel_neon.o
CC libavcodec/aarch64/hpeldsp_init_aarch64.o
AS libavcodec/aarch64/hpeldsp_neon.o
CC libavcodec/aarch64/idctdsp_init_aarch64.o
AS libavcodec/aarch64/mdct_neon.o
AS libavcodec/aarch64/simple_idct_neon.o
<instantiation>:1:14: error: invalid operand for instruction
smull v7.4S, ., v0.H[1]
^
<instantiation>:11:9: note: while in macro instantiation
idct_col4_top v24 v25 v26 v27 14
^
/var/folders/3c/bksvjzx55n9f9x1lm7fp2v500000gn/T/simple_idct_neon-6ce3ab.s:234:1: note: while in macro instantiation
declare_idct_col4_neon 1 4H
^
<instantiation>:2:23: error: invalid operand for instruction
smull v16.4S, ., v0.H[5]
^
Versions:
Xcode 8.3.1
ffmpeg version 3.3 or latest master (April 15, 2017)
gas-preprocessor.pl latest from https://git.libav.org/?p=gas-preprocessor.git;a=tree
Attachments (3)
Change History (10)
by , 9 years ago
| Attachment: | build-ffmpeg.sh added |
|---|
by , 9 years ago
| Attachment: | ffmpeg_compilation_logs.txt added |
|---|
comment:1 by , 9 years ago
comment:2 by , 9 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
It looks like gas-preprocessor.pl is not used in your case. You should specify it using either the AS env variable or the --as configure option.
I'm closing this issue as I'm able to to compile ffmpeg master using the same command line as yours using the --as option.
Please do not paste build scripts (as they are not allowed) in the future but full configure command lines instead and report the bug against ffmpeg master not a particular release.
comment:3 by , 9 years ago
| Resolution: | invalid |
|---|---|
| Status: | closed → reopened |
I'm reopening the ticket as this is regression. gas-preprocessor should not be required to build ffmpeg for iOS/aarch64. You can workaround the issue using gas-preprocessor until the issue is fixed.
Does the following patch fixes the issue for you ?
https://ffmpeg.org/pipermail/ffmpeg-devel/2017-April/210628.html
comment:4 by , 9 years ago
Still can not compile. Using clang to build aarch64 for iOS and android results in the same error.
AS libavcodec/aarch64/simple_idct_neon.o
CC libavcodec/aarch64/vorbisdsp_init.o
AS libavcodec/aarch64/vorbisdsp_neon.o
<instantiation>:1:14: error: invalid vector kind qualifier
smull v7.4S, v26.4, v0.H[1]
^
<instantiation>:1:1: note: while in macro instantiation
smull1 v7.4S, v26.4, v0.H[1]
^
<instantiation>:11:9: note: while in macro instantiation
idct_col4_top v24 v25 v26 v27 1 4
^
src/libavcodec/aarch64/simple_idct_neon.S:222:1: note: while in macro instantiation
declare_idct_col4_neon 1 4H
^
<instantiation>:1:14: error: invalid operand for instruction
smull v7.4S, v26.4, v0.H[1]
^
<instantiation>:1:1: note: while in macro instantiation
smull1 v7.4S, v26.4, v0.H[1]
^
<instantiation>:11:9: note: while in macro instantiation
idct_col4_top v24 v25 v26 v27 1 4
by , 9 years ago
| Attachment: | 0001-lavc-aarch64-simple_idct-fix-iOS-build-without-gas-p.patch added |
|---|
follow-up: 7 comment:6 by , 9 years ago
It works now. I hope this patch will be merged into 3.3 branch.
comment:7 by , 9 years ago
Replying to lucaswang:
It works now. I hope this patch will be merged into 3.3 branch.
It will. Thanks for testing.



I'm currently investigating the issue.