That is not present on some libelf implementations, such as the one used
in Alpine Linux: libelf-0.8.13.
This ends up disabling the SDT code, that relies on this function.
One alternative would be to provide an weak fallback implementation or
the open coded variant used by the buildid sysfs notes reading code.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-82lh22ybedy9b9lych8xj12g@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
        libbfd                          \
        libelf                          \
        libelf-getphdrnum               \
+       libelf-gelf_getnote             \
        libelf-getshdrstrndx            \
        libelf-mmap                     \
        libnuma                         \
 
        test-cplus-demangle.bin         \
        test-libelf.bin                 \
        test-libelf-getphdrnum.bin      \
+       test-libelf-gelf_getnote.bin    \
        test-libelf-getshdrstrndx.bin   \
        test-libelf-mmap.bin            \
        test-libnuma.bin                \
 $(OUTPUT)test-libelf-getphdrnum.bin:
        $(BUILD) -lelf
 
+$(OUTPUT)test-libelf-gelf_getnote.bin:
+       $(BUILD) -lelf
+
 $(OUTPUT)test-libelf-getshdrstrndx.bin:
        $(BUILD) -lelf
 
 
 # include "test-libelf-getphdrnum.c"
 #undef main
 
+#define main main_test_libelf_gelf_getnote
+# include "test-libelf-gelf_getnote.c"
+#undef main
+
 #define main main_test_libelf_getshdrstrndx
 # include "test-libelf-getshdrstrndx.c"
 #undef main
        main_test_dwarf();
        main_test_dwarf_getlocations();
        main_test_libelf_getphdrnum();
+       main_test_libelf_gelf_getnote();
        main_test_libelf_getshdrstrndx();
        main_test_libunwind();
        main_test_libaudit();
 
--- /dev/null
+#include <stdlib.h>
+#include <gelf.h>
+
+int main(void)
+{
+       return gelf_getnote(NULL, 0, NULL, NULL, NULL);
+}
 
     CFLAGS += -DHAVE_ELF_GETPHDRNUM_SUPPORT
   endif
 
+  ifeq ($(feature-libelf-gelf_getnote), 1)
+    CFLAGS += -DHAVE_GELF_GETNOTE_SUPPORT
+  else
+    msg := $(warning gelf_getnote() not found on libelf, SDT support disabled);
+  endif
+
   ifeq ($(feature-libelf-getshdrstrndx), 1)
     CFLAGS += -DHAVE_ELF_GETSHDRSTRNDX_SUPPORT
   endif
 
        return ret;
 }
 
-#ifdef HAVE_LIBELF_SUPPORT
+#if defined(HAVE_LIBELF_SUPPORT) && defined(HAVE_GELF_GETNOTE_SUPPORT)
 static int build_id_cache__add_sdt_cache(const char *sbuild_id,
                                          const char *realname)
 {
 
        return ret;
 }
 
+#ifdef HAVE_GELF_GETNOTE_SUPPORT
 static unsigned long long sdt_note__get_addr(struct sdt_note *note)
 {
        return note->bit32 ? (unsigned long long)note->addr.a32[0]
        cleanup_sdt_note_list(&sdtlist);
        return ret;
 }
+#endif
 
 static int probe_cache_entry__write(struct probe_cache_entry *entry, int fd)
 {
 
        unlink(kce->extract_filename);
 }
 
+#ifdef HAVE_GELF_GETNOTE_SUPPORT
 /**
  * populate_sdt_note : Parse raw data and identify SDT note
  * @elf: elf of the opened file
                count++;
        return count;
 }
+#endif
 
 void symbol__elf_init(void)
 {