[Buildroot] [PATCH] yajl: fix static linking in a parallel build
Jörg Krause
joerg.krause at embedded.rocks
Sat Apr 2 17:11:20 UTC 2016
On Sa, 2016-04-02 at 19:05 +0200, Samuel Martin wrote:
> On Sat, Apr 2, 2016 at 6:29 PM, Jörg Krause <joerg.krause at embedded.ro
> cks> wrote:
> >
> > On Sa, 2016-04-02 at 17:13 +0200, Thomas Petazzoni wrote:
> > >
> > > Hello,
> > >
> > > On Fri, 1 Apr 2016 21:18:12 +0200, Jörg Krause wrote:
> > >
> > > >
> > > >
> > > > + FOREACH (test ${TESTS})
> > > > + GET_FILENAME_COMPONENT(testProg ${test} NAME_WE)
> > > > + ADD_EXECUTABLE(${testProg} ${test})
> > > > +- TARGET_LINK_LIBRARIES(${testProg} yajl m)
> > > > ++ TARGET_LINK_LIBRARIES(${testProg} yajl_s m)
> > > I am not sure to understand why this would fix the parallel build
> > > issue. The parallel build problem comes from the fact that the
> > > library
> > > and tests sit in different directories, and that they are built
> > > in
> > > parallel with each other. Both the yajl and yajl_s libraries are
> > > built
> > > in the same directory, separate from the tests directory. So I
> > > don't
> > > quite see how changing from using yajl to yajl_s is going to make
> > > a
> > > difference here. But maybe I'm missing something.
> > The issue is that we patch yajl (#0002) to build only the static
> > library in a static build. So there is no shared library target for
> > CMake to use as a dependency.
> hmm... with that explaination, I nack this.
> IMHO, the correct way to fix this would rather be:
>
> IF(BUILD_SHARED_LIBS)
> TARGET_LINK_LIBRARIES(${testProg} yajl m)
> ELSE()
> TARGET_LINK_LIBRARIES(${testProg} yajl_s m)
> ENDIF()
>
Yes, this would probably be best. However, the static library is build
in shared and static builds.
Jörg
More information about the buildroot
mailing list