Message ID | 20190726190223.38027-1-raj.khem@gmail.com |
---|---|
State | Superseded, archived |
Headers |
From: raj.khem at gmail.com (Khem Raj) Date: Fri, 26 Jul 2019 12:02:23 -0700 Subject: [lttng-dev] [lttng-ust][PATCH V2] Add config time check for new gettid API Message-ID: <20190726190223.38027-1-raj.khem@gmail.com> |
Series |
[lttng-ust,V2] Add config time check for new gettid API
|
|
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
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 */ >
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 */ > >
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 */ >>>
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 */ > >>>
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 !
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 */