Menu

Linux/GCC link issue

2015-12-07
2015-12-08
  • Ryan Thoryk

    Ryan Thoryk - 2015-12-07

    I tried to build libtheoraplayer on Linux, and ran into a minor issue.

    It looks like multiple equivalent libyuv sources are being built, resulting in link failures:

    libtheoraplayer.a(row_gcc.cc.o): In function `RGB24ToARGBRow_SSSE3':
    row_gcc.cc:(.text+0x40): multiple definition of `RGB24ToARGBRow_SSSE3'
    libtheoraplayer.a(row_posix.cc.o):row_posix.cc:(.text+0x80): first defined here
    libtheoraplayer.a(row_gcc.cc.o): In function `RAWToARGBRow_SSSE3':
    row_gcc.cc:(.text+0xc0): multiple definition of `RAWToARGBRow_SSSE3'
    libtheoraplayer.a(row_posix.cc.o):row_posix.cc:(.text+0x100): first defined here
    libtheoraplayer.a(row_gcc.cc.o): In function `RGB565ToARGBRow_SSE2':
    row_gcc.cc:(.text+0x140): multiple definition of `RGB565ToARGBRow_SSE2'
    libtheoraplayer.a(row_posix.cc.o):row_posix.cc:(.text+0x180): first defined here
    libtheoraplayer.a(row_gcc.cc.o): In function `ARGB1555ToARGBRow_SSE2':
    row_gcc.cc:(.text+0x1e0): multiple definition of `ARGB1555ToARGBRow_SSE2'
    

    According to this page, the gcc.cc files are copies of the posix.cc files:
    https://chromium.googlesource.com/external/libyuv/+/master%5E!/

    Removing the "posix.cc" files fixes the issue.

     
  • Krešimir Špes

    Krešimir Špes - 2015-12-08

    ah, cool, thanks for the info, I'll see if I can remove it on other platforms as well!

     

Log in to post a comment.