[FFmpeg-trac] #3684(undetermined:new): Build for x265 32-bit shared library fails on Mac 10.6

FFmpeg trac at avcodec.org
Thu May 29 00:43:00 CEST 2014


#3684: Build for x265 32-bit shared library fails on Mac 10.6
-------------------------------------+-------------------------------------
             Reporter:  terri        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 I am trying to build 32-bit shared library on Mac 10.6.
 And the build fails.


 I've used:
 {{{
 - The latest revision of x265, multicoreware-x265-e6ba953dcb1a, 2014-05-28
 - CMake 2.8.12.2
 - CMAKE_OSX_ARCHITECTURES=i386
 - ENABLED_SHARED
 }}}


 Error message:
 {{{
 Scanning dependencies of target x265-shared
 Linking CXX shared library libx265.dylib
 ld: warning: in common/CMakeFiles/common.dir/x86/pixel-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/const-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/cpu-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/ssd-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/mc-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/mc-a2.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/pixel-util8.asm.o, file
 was built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/blockcopy8.asm.o, file
 was built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/pixeladd8.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/dct8.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/sad-a.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/intrapred8.asm.o, file
 was built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/ipfilter8.asm.o, file was
 built for unsupported file format which is not the architecture being
 linked (i386)
 ld: warning: in common/CMakeFiles/common.dir/x86/loopfilter.asm.o, file
 was built for unsupported file format which is not the architecture being
 linked (i386)
 Undefined symbols:
   "_x265_pixel_ssd_64x16_sse4", referenced from:
       _x265_pixel_ssd_64x16_sse4$non_lazy_ptr in asm-primitives.cpp.o
      (maybe you meant: _x265_pixel_ssd_64x16_sse4$non_lazy_ptr)
   "_x265_intra_pred_ang32_26_sse4", referenced from:
       _x265_intra_pred_ang32_26_sse4$non_lazy_ptr in asm-primitives.cpp.o
      (maybe you meant: _x265_intra_pred_ang32_26_sse4$non_lazy_ptr)
   "_x265_intra_pred_ang32_31_sse4", referenced from:
       _x265_intra_pred_ang32_31_sse4$non_lazy_ptr in asm-primitives.cpp.o
      (maybe you meant: _x265_intra_pred_ang32_31_sse4$non_lazy_ptr)
   "_x265_blockcopy_ps_2x8_sse4", referenced from:
       _x265_blockcopy_ps_2x8_sse4$non_lazy_ptr in asm-primitives.cpp.o
      (maybe you meant: _x265_blockcopy_ps_2x8_sse4$non_lazy_ptr)
   "_x265_interp_4tap_horiz_pp_24x32_sse4", referenced from:
       _x265_interp_4tap_horiz_pp_24x32_sse4$non_lazy_ptr in asm-
 primitives.cpp.o
      (maybe you meant: _x265_interp_4tap_horiz_pp_24x32_sse4$non_lazy_ptr)
   "_x265_interp_4tap_vert_pp_8x6_sse4", referenced from:
       _x265_interp_4tap_vert_pp_8x6_sse4$non_lazy_ptr in asm-
 primitives.cpp.o
      (maybe you meant: _x265_interp_4tap_vert_pp_8x6_sse4$non_lazy_ptr)
    …
    …

 }}}

 The reason it fails:
 i386 build generates the function names without leading underscore, "_",
 and the linker looks for functions with a leading underscore, and this
 makes the i386 build fail.

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


More information about the FFmpeg-trac mailing list