So maybe the yasm source needs to have a keyword or two added to select PIC addressing mode?
Random googling finds suggestions at http://cvs.tortall.net/pipermail/bug-yasm/2011-October/000086.html On Wed, Jul 8, 2015 at 10:11 AM, Steve Borho <st...@borho.org> wrote: > On 07/07, Dan Kegel wrote: >> On Tue, Jul 7, 2015 at 2:25 PM, Steve Borho <st...@borho.org> wrote: >> > We're already adding -fPIC to the compile flags for the two object >> > libraries. This way one set of objects can be used to output the shared >> > library and the static library. So the C++ files are already compiled >> > with -fPIC. It is only a problem when we need to link a static library >> > from one build into the shared library of another build. The static >> > library itself no longer supports PIC. >> >> Really? I didn't think ar was in the habit of modifying machine code like >> that. >> >> At this point maybe the thing to do is make a toy example that reproduces >> the problem. (Ideally something truly stipped down, like >> https://github.com/dankegel/winezeug/tree/master/cmake_examples/ex7 ) > > This rings a bell for me. We encountered this link failure once before. > A little back history: > > Our project has two main source folders, common/ and encoder/, each with > its own CMakeLists file. Originally we built each folder into a static > library and then the root level CMakeLists file linked them into a > shared library, static library, or executable. > > This broke when we introduced yasm-compiled assembly objects into the > common/ folder. We begain getting these same exact PIC errors when > trying to link the static common.lib and encoder.lib into libx265.so. > And this is when we were forced to use cmake's object libraries. Now > common/ and encoder/ generate object libraries and the root level > CMakeLists links those objects into the final targets and this seemed to > work ok. > > So the yasm objects are somehow the root cause. > > -- > Steve Borho -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake