On 11 March 2015 at 10:58, Ciprian Barbu <[email protected]> wrote:

> 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).
>
Or we add some code to automake/configure to detect which (g)libc version
you are using and then use the appropriate define (_BSD_SOURCE for <= 2.17,
_DEFAULT_SOURCE for >= 2.19, don't know about 2.18).

Wouldn't this be the "right" way of solving problems like this? This might
not be the only time we have such a version problem.

-- Ola


> >
> > 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

Reply via email to