From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: "Damjan Marion (damarion)" <damarion@cisco.com>
Cc: dev@dpdk.org
Subject: Re: 16.07-rc2 issue with rte_rtm_init(void) constructor
Date: Thu, 14 Jul 2016 13:30:14 +0200 [thread overview]
Message-ID: <8960687.gEONPgFZ8H@xps13> (raw)
In-Reply-To: <BCA60C52-9E53-45DE-908C-157A96DE06E8@cisco.com>
2016-07-14 09:36, Damjan Marion:
>
> > On 14 Jul 2016, at 10:20, Thomas Monjalon <thomas.monjalon@6wind.com> wrote:
> >
> > 2016-07-13 22:58, Damjan Marion:
> >> I have issues with linking application to 16.07-rc2.
> >>
> >> Looks like reason is constructor function in include file,
> >> so our unit test apps are failing to link as they are not linked with dpdk libs.
> >> (and they should not be as they are not calling any dpdk function).
> >
> > I don't understand:
> > Why are you linking DPDK if you do not use any DPDK function?
>
> If i simplify it, i have 4 components:
>
> 1. libdpdk
> 2. libXXX
> 3. app-A
> 4. app-B
>
> libXXX includes some dpdk headers, mainly because of data structures like rte_mbuf, and some functions are calling
> functions form libdpdk.
>
> app-A links against libdpdk and libXXX
> app-B links against libXXX only and only uses functions from libXXX which doesn’t have dpdk dependency
>
> This is working fine in 14.04. In 14.07 rte_rtm_init() implants himself into libXXX as it is defined
> in header file, and that causes linking to fail due to missing rte_cpu_get_flag_enabled().
OK I better understand :)
> >> static inline void __attribute__((constructor))
> >> rte_rtm_init(void)
> >> {
> >> rtm_supported = rte_cpu_get_flag_enabled(RTE_CPUFLAG_RTM);
> >> }
> >>
> >> linking fails with:
> >> dpdk/include/rte_spinlock.h:103: undefined reference to `rte_cpu_get_flag_enabled’
> >>
> >> Is there any chance that this one is moved to some .c file, so it is loaded
> >> only when it is really needed?
> >
> > Yes it could be moved to lib/librte_eal/common/arch/x86/.
>
> Any chance to get this in 16.07 ?
Yes maybe if you submit a patch quickly and it is clean enough.
next prev parent reply other threads:[~2016-07-14 11:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-13 22:58 16.07-rc2 issue with rte_rtm_init(void) constructor Damjan Marion (damarion)
2016-07-14 8:20 ` Thomas Monjalon
2016-07-14 9:36 ` Damjan Marion (damarion)
2016-07-14 11:30 ` Thomas Monjalon [this message]
2016-07-14 13:24 ` Damjan Marion (damarion)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8960687.gEONPgFZ8H@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=damarion@cisco.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.