I'm running vanilla Ubuntu 15.04 at current service. gcc shows: bill@Ubuntu15:~/linaro/timefix$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.2-10ubuntu13' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)
I'm not sure why that libc6-dev change was made. That seems a significant breakage to one of the Linux APIs to slip in to a minor service update. On Wed, Dec 9, 2015 at 3:50 AM, Maxim Uvarov <maxim.uva...@linaro.org> wrote: > So the problem appears only in libc6-dev 2.21. No problem with libc6-dev > 2.19 > > Diff is: > /usr/include/time.h > @@ -108,7 +108,7 @@ typedef __timer_t timer_t; > > #if (!defined __timespec_defined \ > && ((defined _TIME_H \ > - && (defined __USE_POSIX199309 || defined __USE_MISC \ > + && (defined __USE_POSIX199309 \ > || defined __USE_ISOC11)) \ > || defined __need_timespec)) > # define __timespec_defined 1 > > Maxim. > > On 12/09/2015 03:13, Bill Fischofer wrote: > >> Well, I've verified that if you do similar mods to >> test/validation/pktio/pktio.c and test/validation/time/time.c then all is >> good, however what this means is that we've just broken ODP API portability >> because we now require that ODP applications include this #define when >> compiling for linux-generic. That's bad. >> >> I tried putting the #define into >> platform/linux-generic/include/odp/plat/time_types.h since that's where >> odp_time_t is defined, but C doesn't like that. As this is an artifact of >> the linux-generic implementation of the odp_time APIs whatever magic needs >> to happen strictly within linux-generic and cannot spill over to the >> validation tests or other ODP applications. >> >> On Tue, Dec 8, 2015 at 5:23 PM, Mike Holmes <mike.hol...@linaro.org >> <mailto:mike.hol...@linaro.org>> wrote: >> >> Yep, I just compiled what I had, but it is the same root cause, >> just needs to be told to allow POSIX in that SRC. >> >> Maxim do you just want to fix in your morning, I dont have time >> now tonight so dont wait for me but you could add me as Suggested-by >> >> On 8 December 2015 at 18:17, Bill Fischofer >> <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>> wrote: >> >> That helps but it looks incomplete. With that patch applied >> ODP compiles but the CUnit tests fail: >> >> Making all in pktio >> make[3]: Entering directory >> '/home/bill/linaro/api-next/test/validation/pktio' >> CC pktio.lo >> pktio.c: In function 'queue_deq_wait_time': >> pktio.c:339:13: error: storage size of 'wait' isn't known >> odp_time_t wait, end; >> ^ >> pktio.c:339:19: error: storage size of 'end' isn't known >> odp_time_t wait, end; >> ^ >> pktio.c:342:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> wait = odp_time_local_from_ns(ns); >> ^ >> pktio.c:343:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> end = odp_time_sum(odp_time_local(), wait); >> ^ >> pktio.c:343:21: error: type of formal parameter 1 is incomplete >> end = odp_time_sum(odp_time_local(), wait); >> ^ >> pktio.c:343:39: error: type of formal parameter 2 is incomplete >> end = odp_time_sum(odp_time_local(), wait); >> ^ >> pktio.c:348:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:348:24: error: type of formal parameter 1 is incomplete >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:348:29: error: type of formal parameter 2 is incomplete >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:339:19: error: unused variable 'end' >> [-Werror=unused-variable] >> odp_time_t wait, end; >> ^ >> pktio.c:339:13: error: unused variable 'wait' >> [-Werror=unused-variable] >> odp_time_t wait, end; >> ^ >> pktio.c: In function 'wait_for_packet': >> pktio.c:356:13: error: storage size of 'wait_time' isn't known >> odp_time_t wait_time, end; >> ^ >> pktio.c:356:24: error: storage size of 'end' isn't known >> odp_time_t wait_time, end; >> ^ >> pktio.c:362:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> wait_time = odp_time_local_from_ns(ns); >> ^ >> pktio.c:363:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> end = odp_time_sum(odp_time_local(), wait_time); >> ^ >> pktio.c:363:21: error: type of formal parameter 1 is incomplete >> end = odp_time_sum(odp_time_local(), wait_time); >> ^ >> pktio.c:363:39: error: type of formal parameter 2 is incomplete >> end = odp_time_sum(odp_time_local(), wait_time); >> ^ >> pktio.c:389:2: error: invalid use of incomplete typedef >> 'odp_time_t' >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:389:24: error: type of formal parameter 1 is incomplete >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:389:29: error: type of formal parameter 2 is incomplete >> } while (odp_time_cmp(end, odp_time_local()) > 0); >> ^ >> pktio.c:356:24: error: unused variable 'end' >> [-Werror=unused-variable] >> odp_time_t wait_time, end; >> ^ >> pktio.c:356:13: error: unused variable 'wait_time' >> [-Werror=unused-variable] >> odp_time_t wait_time, end; >> ^ >> cc1: all warnings being treated as errors >> Makefile:504: recipe for target 'pktio.lo' failed >> make[3]: *** [pktio.lo] Error 1 >> make[3]: Leaving directory >> '/home/bill/linaro/api-next/test/validation/pktio' >> Makefile:417: recipe for target 'all-recursive' failed >> make[2]: *** [all-recursive] Error 1 >> >> >> On Tue, Dec 8, 2015 at 5:12 PM, Mike Holmes >> <mike.hol...@linaro.org <mailto:mike.hol...@linaro.org>> wrote: >> >> Patch sent that works for me, it depends on the compiler >> in use and the c99 vs posix standard I think >> >> On 8 December 2015 at 17:14, Bill Fischofer >> <bill.fischo...@linaro.org >> <mailto:bill.fischo...@linaro.org>> wrote: >> >> git bisect shows: >> >> 3164ccfe7e6dc548852b8f6f681069cd6d524bfc is the first >> bad commit >> commit 3164ccfe7e6dc548852b8f6f681069cd6d524bfc >> Author: Ivan Khoronzhuk <ivan.khoronz...@linaro.org >> <mailto:ivan.khoronz...@linaro.org>> >> Date: Fri Dec 4 19:51:29 2015 +0200 >> >> linux-generic: odp_time: don't use cpu cycle API >> to get time >> The linux-generic time API implementation >> shouldn't depend on cpu >> cycle API wich is not stable enough to measure >> time period due to >> dynamic frequency scaling. >> Reviewed-by: Petri Savolainen >> <petri.savolai...@nokia.com >> <mailto:petri.savolai...@nokia.com>> >> Signed-off-by: Ivan Khoronzhuk >> <ivan.khoronz...@linaro.org >> <mailto:ivan.khoronz...@linaro.org>> >> Signed-off-by: Maxim Uvarov >> <maxim.uva...@linaro.org <mailto:maxim.uva...@linaro.org >> >> >> >> :040000 040000 >> 5b252b56eaa4d7c8df9f4583d0b6e7b8db9a9fb9 >> d331e32ad2a37014cdb8133a917cd660f52b6f7c Mplatform >> >> >> On Tue, Dec 8, 2015 at 3:55 PM, Bill Fischofer >> <bill.fischo...@linaro.org >> <mailto:bill.fischo...@linaro.org>> wrote: >> >> Trying to compile a fresh clone of api-next I'm >> seeing the following: >> >> CC odp_schedule.lo >> odp_schedule.c: In function 'schedule_loop': >> odp_schedule.c:589:13: error: storage size of >> 'next' isn't known >> odp_time_t next, wtime; >> ^ >> odp_schedule.c:589:19: error: storage size of >> 'wtime' isn't known >> odp_time_t next, wtime; >> ^ >> odp_schedule.c:606:4: error: invalid use of >> incomplete typedef 'odp_time_t' >> wtime = odp_time_local_from_ns(wait); >> ^ >> odp_schedule.c:607:4: error: invalid use of >> incomplete typedef 'odp_time_t' >> next = odp_time_sum(odp_time_local(), wtime); >> ^ >> odp_schedule.c:607:24: error: type of formal >> parameter 1 is incomplete >> next = odp_time_sum(odp_time_local(), wtime); >> ^ >> odp_schedule.c:607:42: error: type of formal >> parameter 2 is incomplete >> next = odp_time_sum(odp_time_local(), wtime); >> ^ >> odp_schedule.c:612:3: error: invalid use of >> incomplete typedef 'odp_time_t' >> if (odp_time_cmp(next, odp_time_local()) < 0) >> ^ >> odp_schedule.c:612:20: error: type of formal >> parameter 1 is incomplete >> if (odp_time_cmp(next, odp_time_local()) < 0) >> ^ >> odp_schedule.c:612:26: error: type of formal >> parameter 2 is incomplete >> if (odp_time_cmp(next, odp_time_local()) < 0) >> ^ >> odp_schedule.c:589:19: error: unused variable >> 'wtime' [-Werror=unused-variable] >> odp_time_t next, wtime; >> ^ >> odp_schedule.c:589:13: error: unused variable >> 'next' [-Werror=unused-variable] >> odp_time_t next, wtime; >> ^ >> cc1: all warnings being treated as errors >> Makefile:757: recipe for target 'odp_schedule.lo' >> failed >> >> >> >> >> >> -- Mike Holmes >> Technical Manager - Linaro Networking Group >> Linaro.org <http://www.linaro.org/>***│ *Open source >> software for ARM SoCs >> >> >> >> >> >> -- Mike Holmes >> Technical Manager - Linaro Networking Group >> Linaro.org <http://www.linaro.org/>***│ *Open source software for >> ARM SoCs >> >> >> >
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp