[lttng-ust,V2] Add config time check for new gettid API
diff mbox series

Message ID 20190726190223.38027-1-raj.khem@gmail.com
State New
Headers show
Series
  • [lttng-ust,V2] Add config time check for new gettid API
Related show

Commit Message

Khem Raj July 26, 2019, 7:02 p.m. UTC
glibc 2.30 introduced this function see [1]
so it's best to detect it
and provide fallback only if its not present

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399

Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-July/029131.html]

Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
v2: Fix typos in commit message

 configure.ac            | 1 +
 include/lttng/ust-tid.h | 7 +++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Sebastien Boisvert July 26, 2019, 7:23 p.m. UTC | #1
On 2019-07-26 3:02 p.m., Khem Raj wrote:
> glibc 2.30 introduced this function see [1]
> so it's best to detect it
> and provide fallback only if its not present

nit:

-if its not present
+if it's not present

I cloned the git repository of the glibc, but I could not find
the definition of gettid().

Do you know where it is located in glibc ?

Thanks.

> 
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399
> 
> Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-July/029131.html]
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> v2: Fix typos in commit message
> 
>  configure.ac            | 1 +
>  include/lttng/ust-tid.h | 7 +++++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 7fa059a..b1099c1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -137,6 +137,7 @@ AC_CHECK_FUNCS([ \
>  	clock_gettime \
>  	ftruncate \
>  	getpagesize \
> +	gettid \
>  	gettimeofday \
>  	localeconv \
>  	memchr \
> diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h
> index e669d7e..7995c78 100644
> --- a/include/lttng/ust-tid.h
> +++ b/include/lttng/ust-tid.h
> @@ -26,7 +26,10 @@
>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
>   * SOFTWARE.
>   */
> -
> +#include <config.h>
> +#if HAVE_GETTID
> +#include <unistd.h>
> +#else
>  #ifdef __linux__
>  #include <syscall.h>
>  #endif
> @@ -49,5 +52,5 @@ static inline pid_t gettid(void)
>  	return getpid();
>  }
>  #endif
> -
> +#endif /* HAVE_GETTID */
>  #endif /* _LTTNG_UST_TID_H */
>
Khem Raj July 26, 2019, 8:55 p.m. UTC | #2
On Fri, Jul 26, 2019 at 12:23 PM Sebastien Boisvert <sboisvert at gydle.com> wrote:
>
>
>
> On 2019-07-26 3:02 p.m., Khem Raj wrote:
> > glibc 2.30 introduced this function see [1]
> > so it's best to detect it
> > and provide fallback only if its not present
>
> nit:
>
> -if its not present
> +if it's not present
>

I sent a v3 with this fixed.

> I cloned the git repository of the glibc, but I could not find
> the definition of gettid().
>
> Do you know where it is located in glibc ?
>
see
https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92

> Thanks.
>
> >
> > [1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399
> >
> > Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-July/029131.html]
> >
> > Signed-off-by: Khem Raj <raj.khem at gmail.com>
> > ---
> > v2: Fix typos in commit message
> >
> >  configure.ac            | 1 +
> >  include/lttng/ust-tid.h | 7 +++++--
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index 7fa059a..b1099c1 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -137,6 +137,7 @@ AC_CHECK_FUNCS([ \
> >       clock_gettime \
> >       ftruncate \
> >       getpagesize \
> > +     gettid \
> >       gettimeofday \
> >       localeconv \
> >       memchr \
> > diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h
> > index e669d7e..7995c78 100644
> > --- a/include/lttng/ust-tid.h
> > +++ b/include/lttng/ust-tid.h
> > @@ -26,7 +26,10 @@
> >   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> >   * SOFTWARE.
> >   */
> > -
> > +#include <config.h>
> > +#if HAVE_GETTID
> > +#include <unistd.h>
> > +#else
> >  #ifdef __linux__
> >  #include <syscall.h>
> >  #endif
> > @@ -49,5 +52,5 @@ static inline pid_t gettid(void)
> >       return getpid();
> >  }
> >  #endif
> > -
> > +#endif /* HAVE_GETTID */
> >  #endif /* _LTTNG_UST_TID_H */
> >
Sebastien Boisvert July 26, 2019, 9:09 p.m. UTC | #3
On 2019-07-26 4:55 p.m., Khem Raj wrote:
> On Fri, Jul 26, 2019 at 12:23 PM Sebastien Boisvert <sboisvert at gydle.com> wrote:
>>
>>
>>
>> On 2019-07-26 3:02 p.m., Khem Raj wrote:
>>> glibc 2.30 introduced this function see [1]
>>> so it's best to detect it
>>> and provide fallback only if its not present
>>
>> nit:
>>
>> -if its not present
>> +if it's not present
>>
> 
> I sent a v3 with this fixed.
> 
>> I cloned the git repository of the glibc, but I could not find
>> the definition of gettid().
>>
>> Do you know where it is located in glibc ?
>>
> see
> https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92
> 

In the commit diff at https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92;hp=f289e656ec8221756519a601042bc9fbe1b310fb
I don't see the definition of gettid().

I see the declaration.

There are a bunch of *ABI changes (*.abilist), and test changes (*tst-*).


>> Thanks.
>>
>>>
>>> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399
>>>
>>> Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-July/029131.html]
>>>
>>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>>> ---
>>> v2: Fix typos in commit message
>>>
>>>  configure.ac            | 1 +
>>>  include/lttng/ust-tid.h | 7 +++++--
>>>  2 files changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index 7fa059a..b1099c1 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -137,6 +137,7 @@ AC_CHECK_FUNCS([ \
>>>       clock_gettime \
>>>       ftruncate \
>>>       getpagesize \
>>> +     gettid \
>>>       gettimeofday \
>>>       localeconv \
>>>       memchr \
>>> diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h
>>> index e669d7e..7995c78 100644
>>> --- a/include/lttng/ust-tid.h
>>> +++ b/include/lttng/ust-tid.h
>>> @@ -26,7 +26,10 @@
>>>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
>>>   * SOFTWARE.
>>>   */
>>> -
>>> +#include <config.h>
>>> +#if HAVE_GETTID
>>> +#include <unistd.h>
>>> +#else
>>>  #ifdef __linux__
>>>  #include <syscall.h>
>>>  #endif
>>> @@ -49,5 +52,5 @@ static inline pid_t gettid(void)
>>>       return getpid();
>>>  }
>>>  #endif
>>> -
>>> +#endif /* HAVE_GETTID */
>>>  #endif /* _LTTNG_UST_TID_H */
>>>
Khem Raj July 26, 2019, 9:27 p.m. UTC | #4
On Fri, Jul 26, 2019 at 2:09 PM Sebastien Boisvert <sboisvert at gydle.com> wrote:
>
>
>
> On 2019-07-26 4:55 p.m., Khem Raj wrote:
> > On Fri, Jul 26, 2019 at 12:23 PM Sebastien Boisvert <sboisvert at gydle.com> wrote:
> >>
> >>
> >>
> >> On 2019-07-26 3:02 p.m., Khem Raj wrote:
> >>> glibc 2.30 introduced this function see [1]
> >>> so it's best to detect it
> >>> and provide fallback only if its not present
> >>
> >> nit:
> >>
> >> -if its not present
> >> +if it's not present
> >>
> >
> > I sent a v3 with this fixed.
> >
> >> I cloned the git repository of the glibc, but I could not find
> >> the definition of gettid().
> >>
> >> Do you know where it is located in glibc ?
> >>
> > see
> > https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92
> >
>
> In the commit diff at https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92;hp=f289e656ec8221756519a601042bc9fbe1b310fb
> I don't see the definition of gettid().
>
> I see the declaration.
>
> There are a bunch of *ABI changes (*.abilist), and test changes (*tst-*).
>

its a syscall wrapper which is generated during build from
sysdeps/unix/sysv/linux/syscalls.list

>
> >> Thanks.
> >>
> >>>
> >>> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=6399
> >>>
> >>> Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2019-July/029131.html]
> >>>
> >>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> >>> ---
> >>> v2: Fix typos in commit message
> >>>
> >>>  configure.ac            | 1 +
> >>>  include/lttng/ust-tid.h | 7 +++++--
> >>>  2 files changed, 6 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 7fa059a..b1099c1 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -137,6 +137,7 @@ AC_CHECK_FUNCS([ \
> >>>       clock_gettime \
> >>>       ftruncate \
> >>>       getpagesize \
> >>> +     gettid \
> >>>       gettimeofday \
> >>>       localeconv \
> >>>       memchr \
> >>> diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h
> >>> index e669d7e..7995c78 100644
> >>> --- a/include/lttng/ust-tid.h
> >>> +++ b/include/lttng/ust-tid.h
> >>> @@ -26,7 +26,10 @@
> >>>   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> >>>   * SOFTWARE.
> >>>   */
> >>> -
> >>> +#include <config.h>
> >>> +#if HAVE_GETTID
> >>> +#include <unistd.h>
> >>> +#else
> >>>  #ifdef __linux__
> >>>  #include <syscall.h>
> >>>  #endif
> >>> @@ -49,5 +52,5 @@ static inline pid_t gettid(void)
> >>>       return getpid();
> >>>  }
> >>>  #endif
> >>> -
> >>> +#endif /* HAVE_GETTID */
> >>>  #endif /* _LTTNG_UST_TID_H */
> >>>
Sebastien Boisvert July 29, 2019, 1:48 p.m. UTC | #5
On 2019-07-26 5:27 p.m., Khem Raj wrote:
>>
>> I don't see the definition of gettid().
> 
> its a syscall wrapper which is generated during build from
> sysdeps/unix/sysv/linux/syscalls.list
> 

OK, now I understand, thanks !

Patch
diff mbox series

diff --git a/configure.ac b/configure.ac
index 7fa059a..b1099c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -137,6 +137,7 @@  AC_CHECK_FUNCS([ \
 	clock_gettime \
 	ftruncate \
 	getpagesize \
+	gettid \
 	gettimeofday \
 	localeconv \
 	memchr \
diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h
index e669d7e..7995c78 100644
--- a/include/lttng/ust-tid.h
+++ b/include/lttng/ust-tid.h
@@ -26,7 +26,10 @@ 
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-
+#include <config.h>
+#if HAVE_GETTID
+#include <unistd.h>
+#else
 #ifdef __linux__
 #include <syscall.h>
 #endif
@@ -49,5 +52,5 @@  static inline pid_t gettid(void)
 	return getpid();
 }
 #endif
-
+#endif /* HAVE_GETTID */
 #endif /* _LTTNG_UST_TID_H */