<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 17, 2020 at 5:58 PM Petr Vorel <<a href="mailto:pvorel@suse.cz">pvorel@suse.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Li,<br>
<br>
> On Mon, Feb 17, 2020 at 4:29 PM Viresh Kumar <<a href="mailto:viresh.kumar@linaro.org" target="_blank">viresh.kumar@linaro.org</a>><br>
> wrote:<br>
<br>
> > ...<br>
> > > Adding #include "lapi/fcntl.h" in case of ‘AT_FDCWD’ undeclared. It seems<br>
> > > we have to do this for all the tests involves  ‘AT_FDCWD’.<br>
<br>
> > my fsmount.h header includes <fcntl.h>, won't that be enough ?<br>
<br>
<br>
> I'm afraid it's not enough.<br>
<br>
> After having a closer look, the reason is that the AT_FDCWD is defined with<br>
> condition __USE_ATFILE,  the __USE_ATFILE depends on _ATFILE_SOURCE<br>
> defined, and _ATFILE_SOURCE needs enable _GNU_SOURCE.<br>
<br>
> So another effective way is to add '#define _GNU_SOURCE' in front of your<br>
> test then that <fcntl.h> will be work for you.<br>
<br>
OK, we can add #define _GNU_SOURCE to fsmount01.c, which actually needs it<br>
+ keep <fcntl.h> there and load lapi/fsmount.h later (see below).<br>
But generally this will be the approach for all uses of <fcntl.h> (and probably<br>
some other headers) for old distros. IMHO this change is caused by:<br>
<br>
c941736c92 Remove _BSD_SOURCE and _SVID_SOURCE. (glibc-2.20)<br>
c688b41960 Add _DEFAULT_SOURCE feature test macro. (glibc-2.19)<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">Thanks for figure out this.</div><div class="gmail_default" style="font-size:small"></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
So we can either add it to many places or detect this old glibc and compile with<br>
-D_GNU_SOURCE (but this might break other things).<br></blockquote><div> </div><div><span class="gmail_default" style="font-size:small">-1 </span>remove old Glibc is a bad choice.</div><div><span class="gmail_default" style="font-size:small"></span> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
But that's another story.<br>
<br>
> # rpm -qa glibc-headers<br>
> glibc-headers-2.5-123<br>
<br>
> # cat /usr/include/fcntl.h |grep AT_FDCWD -B 2 -A 2<br>
> #ifdef __USE_ATFILE<br>
> # define AT_FDCWD -100   /* Special value used to indicate<br>
>                                                 the *at functions should<br>
> use the<br>
>                                                 current working directory.<br>
> */<br>
<br>
So is this diff to v7 better?<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">To use "lapi/fcntl.h" in v7 is simpler I guess, sometimes we just need to get compile pass on old distros but not perform it indeed. And that's the purpose why we need lapi/*.</div></div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>