• Arnaldo Carvalho de Melo's avatar
    tools build: Check if gettid() is available before providing helper · 05c78468
    Arnaldo Carvalho de Melo authored
    Laura reported that the perf build failed in fedora when we got a glibc
    that provides gettid(), which I reproduced using fedora rawhide with the
    glibc-devel-2.29.9000-26.fc31.x86_64 package.
    
    Add a feature check to avoid providing a gettid() helper in such
    systems.
    
    On a fedora rawhide system with this patch applied we now get:
    
      [root@7a5f55352234 perf]# grep gettid /tmp/build/perf/FEATURE-DUMP
      feature-gettid=1
      [root@7a5f55352234 perf]# cat /tmp/build/perf/feature/test-gettid.make.output
      [root@7a5f55352234 perf]# ldd /tmp/build/perf/feature/test-gettid.bin
              linux-vdso.so.1 (0x00007ffc6b1f6000)
              libc.so.6 => /lib64/libc.so.6 (0x00007f04e0a74000)
              /lib64/ld-linux-x86-64.so.2 (0x00007f04e0c47000)
      [root@7a5f55352234 perf]# nm /tmp/build/perf/feature/test-gettid.bin | grep -w gettid
                       U gettid@@GLIBC_2.30
      [root@7a5f55352234 perf]#
    
    While on a fedora:29 system:
    
      [acme@quaco perf]$ grep gettid /tmp/build/perf/FEATURE-DUMP
      feature-gettid=0
      [acme@quaco perf]$ cat /tmp/build/perf/feature/test-gettid.make.output
      test-gettid.c: In function ‘main’:
      test-gettid.c:8:9: error: implicit declaration of function ‘gettid’; did you mean ‘getgid’? [-Werror=implicit-function-declaration]
        return gettid();
               ^~~~~~
               getgid
      cc1: all warnings being treated as errors
      [acme@quaco perf]$
    Reported-by: default avatarLaura Abbott <labbott@redhat.com>
    Tested-by: default avatarLaura Abbott <labbott@redhat.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Florian Weimer <fweimer@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: https://lkml.kernel.org/n/tip-yfy3ch53agmklwu9o7rlgf9c@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    05c78468
Makefile.config 31.5 KB