On 6/7/16, 9:19 AM, "dev on behalf of Thomas Monjalon" <dev-bounces at dpdk.org 
on behalf of thomas.monjalon at 6wind.com> wrote:

>2016-06-07 15:07, Bruce Richardson:
>> On Tue, Jun 07, 2016 at 03:00:45PM +0200, Thomas Monjalon wrote:
>> > 2016-06-07 14:36, Christian Ehrhardt:
>> > > But I still struggle to see how to fix the circular dependency between
>> > > librte_eal and librte_mempool.
>> > 
>> > Why is there a circular dependency?
>> > Only because of logs using mempool?
>> > 
>> > > Maybe now is a time to look at this part of the original threads again to
>> > > eventually get apps less overlinked?
>> > > => http://www.dpdk.org/ml/archives/dev/2016-May/039441.html
>> > > My naive suggestions in generalized form can be found there (no answer 
>> > > yet):
>> > > =>
>> > > http://stackoverflow.com/questions/37351699/how-to-create-both-so-files-for-two-circular-depending-libraries
>> > 
>> > I would prefer removing the circular dependency.
>> > Maybe we can rewrite the code to not use mempool or move it outside of EAL.
>> 
>> Or else we can take the attitude that the mempools and the rings are just a 
>> core
>> part of DPDK and move them and the EAL into a dpdk_core library at link time.
>> Having the code separate in the git tree is good, but I'm not sure having
>> the resulting object files being in separate .a/.so files is particularly 
>> useful.
>> I can't see someone wanting to use one without the other.
>
>EAL could be used as an abstraction layer on top of systems and platforms.
>And I think keeping things separated and layered help to maintain a design
>easy to understand.

One of the other areas I see as an issue when building DPDK is the headers are 
only linked into place as the makefile is executed causing a dependency on 
build order. If you have a circular dependency on building libs or core code we 
have to link directly. Would this problem be helped if we had a two pass type 
build system, one to link the headers and then build the libraries?
>



Reply via email to