[FFmpeg-trac] #5164(avcodec:new): clang fails compilation of pfft for android-arm

FFmpeg trac at avcodec.org
Sun Jan 17 18:22:31 CET 2016


#5164: clang fails compilation of pfft for android-arm
-------------------------------------+-------------------------------------
               Reporter:  cehoyos    |                  Owner:
                   Type:  defect     |                 Status:  new
               Priority:  normal     |              Component:  avcodec
                Version:  git-       |               Keywords:  android osx
  master                             |  arm
             Blocked By:             |               Blocking:
Reproduced by developer:  0          |  Analyzed by developer:  0
-------------------------------------+-------------------------------------
 I installed clang for Android as explained in ticket #5158 in a directory
 android9standalone. If gas-preprocessor is installed, compilation works
 fine with {{{--disable-fft}}}.
 Compilation of all fft-related files fails for the following configure
 line:
 {{{
 $ ../FFmpeg/configure --cross-prefix=../android9standalone/bin/arm-linux-
 androideabi- --arch=arm --target-os=android
 --sysroot=../android9standalone/sysroot --cc=../android9standalone/bin
 /arm-linux-androideabi-clang --cpu=cortex-a8
 }}}
 {{{
 $ make V=1 libavcodec/arm/fft_vfp.o
 gas-preprocessor.pl -arch arm -as-type clang -- ../android9standalone/bin
 /arm-linux-androideabi-clang -I. -I/Users/cehoyos/Projects/FFmpeg/
 --sysroot=../android9standalone/sysroot -isysroot
 ../android9standalone/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DZLIB_CONST
 -mcpu=cortex-a8 -fPIC -g -Qunused-arguments -MMD -MF
 libavcodec/arm/fft_vfp.d -MT libavcodec/arm/fft_vfp.o -c -o
 libavcodec/arm/fft_vfp.o
 /Users/cehoyos/Projects/FFmpeg/libavcodec/arm/fft_vfp.S
 <stdin>:677:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:852:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1027:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1204:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1385:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1566:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1747:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:1928:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:2109:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:2290:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 <stdin>:2471:17: error: redefinition of 'gp' does not match original.
         gp .req a1
                 ^
 make: *** [libavcodec/arm/fft_vfp.o] Error 1
 }}}
 {{{
 $ make V=1 libavcodec/arm/fft_neon.o
 gas-preprocessor.pl -arch arm -as-type clang -- ../android9standalone/bin
 /arm-linux-androideabi-clang -I. -I/Users/cehoyos/Projects/FFmpeg/
 --sysroot=../android9standalone/sysroot -isysroot
 ../android9standalone/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DZLIB_CONST
 -mcpu=cortex-a8 -fPIC -g -Qunused-arguments -MMD -MF
 libavcodec/arm/fft_neon.d -MT libavcodec/arm/fft_neon.o -c -o
 libavcodec/arm/fft_neon.o
 /Users/cehoyos/Projects/FFmpeg/libavcodec/arm/fft_neon.S
 <stdin>:404:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:439:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:474:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:509:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:544:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:579:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:614:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:649:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:684:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:719:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:754:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:789:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 make: *** [libavcodec/arm/fft_neon.o] Error 1
 }}}
 {{{
 $ make V=1 libavcodec/arm/fft_fixed_neon.o
 gas-preprocessor.pl -arch arm -as-type clang -- ../android9standalone/bin
 /arm-linux-androideabi-clang -I. -I/Users/cehoyos/Projects/FFmpeg/
 --sysroot=../android9standalone/sysroot -isysroot
 ../android9standalone/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DZLIB_CONST
 -mcpu=cortex-a8 -fPIC -g -Qunused-arguments -MMD -MF
 libavcodec/arm/fft_fixed_neon.d -MT libavcodec/arm/fft_fixed_neon.o -c -o
 libavcodec/arm/fft_fixed_neon.o
 /Users/cehoyos/Projects/FFmpeg/libavcodec/arm/fft_fixed_neon.S
 <stdin>:448:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:482:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:516:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:550:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:584:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:618:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:652:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:686:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:720:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:754:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 <stdin>:788:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 make: *** [libavcodec/arm/fft_fixed_neon.o] Error 1
 }}}
 {{{
 $ make V=1 libavcodec/arm/sbrdsp_neon.o
 gas-preprocessor.pl -arch arm -as-type clang -- ../android9standalone/bin
 /arm-linux-androideabi-clang -I. -I/Users/cehoyos/Projects/FFmpeg/
 --sysroot=../android9standalone/sysroot -isysroot
 ../android9standalone/sysroot -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
 -D_LARGEFILE_SOURCE -Dstrtod=avpriv_strtod -DPIC -DZLIB_CONST
 -mcpu=cortex-a8 -fPIC -g -Qunused-arguments -MMD -MF
 libavcodec/arm/sbrdsp_neon.d -MT libavcodec/arm/sbrdsp_neon.o -c -o
 libavcodec/arm/sbrdsp_neon.o
 /Users/cehoyos/Projects/FFmpeg/libavcodec/arm/sbrdsp_neon.S
 <stdin>:515:17: error: redefinition of 'gp' does not match original.
         gp .req r12
                 ^
 make: *** [libavcodec/arm/sbrdsp_neon.o] Error 1
 }}}
 The errors are related to the macro movrelx in libavutil/arm/asm.S
 Workaround is to specify a compatible assembler:
 {{{
 $ ../FFmpeg/configure --cross-prefix=../android9standalone/bin/arm-linux-
 androideabi- --arch=arm --target-os=android
 --sysroot=../android9standalone/sysroot --cc=../android9standalone/bin
 /arm-linux-androideabi-clang --cpu=cortex-a8
 --as=../android9standalone/bin/arm-linux-androideabi-gcc
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5164>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list