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

Reply via email to