Opened 6 years ago
Last modified 6 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 , 6 years ago
Attachment: | build-ffmpeg.sh added |
---|
by , 6 years ago
Attachment: | ffmpeg_compilation_logs.txt added |
---|
comment:1 by , 6 years ago
comment:2 by , 6 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 , 6 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 , 6 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 , 6 years ago
Attachment: | 0001-lavc-aarch64-simple_idct-fix-iOS-build-without-gas-p.patch added |
---|
follow-up: 7 comment:6 by , 6 years ago
It works now. I hope this patch will be merged into 3.3 branch.
comment:7 by , 6 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.