nagarahalli replied on github web page: platform/linux-dpdk/Makefile.am line 19 @@ -348,8 +346,10 @@ endif endif endif if ODP_SCHEDULE_SCALABLE +__LIB__libodp_dpdk_la_SOURCES += ../linux-generic/queue/scalable.c ../linux-generic/queue/scalable.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE else +__LIB__libodp_dpdk_la_SOURCES += ../linux-generic/queue/generic.c ../linux-generic/queue/generic.lo: AM_CFLAGS += -DIM_ACTIVE_MODULE endif
Comment: This make file change is for not compiling default queue when scalable queue is enabled. This is required since the meta data fields required for default queue are not available when scalable queue is enabled. > nagarahalli wrote > I am using GCC 5.4.0 >> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >> Hmmm, with that combo I'm seeing a different issue: >> ``` >> CC odp_crypto.lo >> odp_crypto.c: In function âodp_crypto_session_createâ: >> odp_crypto.c:901:2: error: this âifâ clause does not guard... >> [-Werror=misleading-indentation] >> if (session == NULL) >> ^~ >> odp_crypto.c:904:3: note: ...this statement, but the latter is misleadingly >> indented as if it were guarded by the âifâ >> free_session(entry); >> ^~~~~~~~~~~~ >> cc1: all warnings being treated as errors >> Makefile:1417: recipe for target 'odp_crypto.lo' failed >> ``` >> >> This looks like the base code is having problem with GCC 7? I'm running >> Ubundu 17.10 which uses GCC 7.2. >>> nagarahalli wrote >>> Without these changes, try the compilation for the following configuration: >>> ./configure --with-platform=linux-dpdk --enable-schedule-scalable >>> --with-sdk-install-path=<dpdk path> >>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>> I did some experimenting with this and this seems to compile and run just >>>> fine without these Makefile.am changes. Am I missing something? >>>>> nagarahalli wrote >>>>> As we discussed in the call today, this is temporary. Once the changes, >>>>> not to use packet meta data, to default queue implementation is done, >>>>> these can go away. >>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>>> Is this intended to be a temporary change? The problem with conditional >>>>>> compilation is that it's very easy to make changes that break another >>>>>> file that isn't compiled unless some special config option is used. >>>>>> That's why in today's config-based scheduler selection we compile all >>>>>> modules and the only thing that's actually conditional is which entry >>>>>> points are plugged into the scheduler interface table. >>>>>> >>>>>> For 2.0 we want to eliminate config-time selections like this, so all >>>>>> variants will necessarily have to be compiled to be included in the >>>>>> single binary and selected dynamically at runtime. So I'm not sure this >>>>>> sort of change is consistent with that goal. This seems to need more >>>>>> discussion as to why we're doing this here. https://github.com/Linaro/odp/pull/303#discussion_r154741738 updated_at 2017-12-04 18:56:09