On Tue, Mar 10, 2015 at 7:19 PM, Ola Liljedahl <[email protected]> wrote: > On 10 March 2015 at 17:11, Ciprian Barbu <[email protected]> wrote: >> On Tue, Mar 10, 2015 at 6:06 PM, Ciprian Barbu <[email protected]> >> wrote: >>> On Tue, Mar 10, 2015 at 4:31 PM, Maxim Uvarov <[email protected]> >>> wrote: >>>> On 03/10/15 17:16, Ciprian Barbu wrote: >>>>> >>>>> On Tue, Mar 10, 2015 at 1:33 PM, Maxim Uvarov <[email protected]> >>>>> wrote: >>>>>> >>>>>> Please also specify your env. I can not reproduce it with >>>>>> ./cross-compile-test.sh >>>>> >>>>> I added some info in the bug entry. Were you able to reproduce like that? >>>> >>>> >>>> I see that in one includes in net/if.h that structure is under ifdef >>>> __USE_MISC, in other includes there is no such ifdef. >>>> Looks like you have different version of headers. For linux/if.h there is >>>> no >>>> ifdef for both cases. I think you patch is good to go, >>>> tested it on my toolchains (compilation only). >>> >>> This might be a problem with Ubuntu 13.10, I tested on an Ubuntu 14.04 >>> and it works. >>> >>> The whole problem comes from the ioctl command that requires struct >>> ifreq. From this man page (http://linux.die.net/man/7/netdevice) it >>> looks like it should be enough to include <sys/ioctl.h> and >>> <net/if.h>. I also found that including linux/if.h is usually done by >>> code for kernel, so that might actually not be a good idea. >>> >>> Strange though, adding <sys/ioctl.h> doesn't fix compiling on my >>> environment. Does anyone else run Ubuntu 13.10? maybe I screwed my >>> headers somehow installing some packages ... >> >> I also found this: >> http://stackoverflow.com/questions/10433982/why-does-c99-complain-about-storage-sizes >> which says the problem is in fact with -std=c99. Strange though how it >> only behaves bad on my Ubuntu 13.10. Would still be good if someone >> else checks on their env ... > The way I interpret this is that when you specify a specific C > standard (e.g. C99), by default you will only get access to those > library features that are included in that standard. If you need to go > outside of the standard, you need to ask for it specifically. E.g. > define _BSD_SOURCE in this case. > > But this should be independent of Ubuntu releases. I can imagine > different libc (glibc) versions may do this differently though so this > could be that cause of differences in behavior between 13.10 and e.g. > 14.04 (which I use).
Ola, we used to make use of _BSD_SOURCE to get the extra features, but the use of this macro has been deprecated since glib 2.20: http://man7.org/linux/man-pages/man7/feature_test_macros.7.html. Instead of defining _BSD_SOURCE the user must rely on _DEFAULT_SOURCE, which exists since 2.19. Looking at my glib version I get: GNU C Library (Ubuntu EGLIBC 2.17-93ubuntu4) stable release version 2.17, by Roland McGrath et al. So the problem in my case is that I have an old glibc version and the way we compile ODP does not cope with that. Other users will be affected. Either we do something about it (I haven't found a way to check the glibc version at compile time yet) or document that ODP will not support glibc older than 2.19 (where _DEFAULT_SOURCE exists). > > olli@macmini:~$ gcc --version > gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 > Copyright (C) 2013 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > olli@macmini:~$ dpkg -S /usr/include/net/if.h > libc6-dev:amd64, libc6-dev:i386: /usr/include/net/if.h > olli@macmini:~$ dpkg -s libc6-dev | grep Version > Version: 2.19-0ubuntu6.6 > > >> >> /Ciprian >> >>> >>>> >>>> Maxim. >>>> >>>> >>>> >>>>>> Maxim. >>>>>> >>>>>> >>>>>> On 03/10/15 14:14, Maxim Uvarov wrote: >>>>>>> >>>>>>> Please add patch description and put bug link in the bottom of it. Like >>>>>>> other git commits do. >>>>>>> >>>>>>> Thanks, >>>>>>> Maxim. >>>>>>> >>>>>>> On 03/10/15 12:47, Ciprian Barbu wrote: >>>>>>>> >>>>>>>> Signed-off-by: Ciprian Barbu <[email protected]> >>>>>>>> --- >>>>>>>> fix for https://bugs.linaro.org/show_bug.cgi?id=1330 >>>>>>>> >>>>>>>> example/ipsec/odp_ipsec.c | 2 +- >>>>>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>>>>> >>>>>>>> diff --git a/example/ipsec/odp_ipsec.c b/example/ipsec/odp_ipsec.c >>>>>>>> index 98160ba..286b9f0 100644 >>>>>>>> --- a/example/ipsec/odp_ipsec.c >>>>>>>> +++ b/example/ipsec/odp_ipsec.c >>>>>>>> @@ -30,7 +30,7 @@ >>>>>>>> #include <stdbool.h> >>>>>>>> #include <sys/socket.h> >>>>>>>> -#include <net/if.h> >>>>>>>> +#include <linux/if.h> >>>>>>>> #include <sys/ioctl.h> >>>>>>>> #include <sys/socket.h> >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> lng-odp mailing list >>>>>> [email protected] >>>>>> http://lists.linaro.org/mailman/listinfo/lng-odp >>>> >>>> >> >> _______________________________________________ >> lng-odp mailing list >> [email protected] >> http://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
