linux/tools/perf/feature-tests.mak
<<
>>
Prefs
   1define SOURCE_HELLO
   2#include <stdio.h>
   3int main(void)
   4{
   5        return puts(\"hi\");
   6}
   7endef
   8
   9ifndef NO_DWARF
  10define SOURCE_DWARF
  11#include <dwarf.h>
  12#include <elfutils/libdw.h>
  13#include <elfutils/version.h>
  14#ifndef _ELFUTILS_PREREQ
  15#error
  16#endif
  17
  18int main(void)
  19{
  20        Dwarf *dbg = dwarf_begin(0, DWARF_C_READ);
  21        return (long)dbg;
  22}
  23endef
  24endif
  25
  26define SOURCE_LIBELF
  27#include <libelf.h>
  28
  29int main(void)
  30{
  31        Elf *elf = elf_begin(0, ELF_C_READ, 0);
  32        return (long)elf;
  33}
  34endef
  35
  36define SOURCE_GLIBC
  37#include <gnu/libc-version.h>
  38
  39int main(void)
  40{
  41        const char *version = gnu_get_libc_version();
  42        return (long)version;
  43}
  44endef
  45
  46define SOURCE_ELF_MMAP
  47#include <libelf.h>
  48int main(void)
  49{
  50        Elf *elf = elf_begin(0, ELF_C_READ_MMAP, 0);
  51        return (long)elf;
  52}
  53endef
  54
  55ifndef NO_NEWT
  56define SOURCE_NEWT
  57#include <newt.h>
  58
  59int main(void)
  60{
  61        newtInit();
  62        newtCls();
  63        return newtFinished();
  64}
  65endef
  66endif
  67
  68ifndef NO_LIBPERL
  69define SOURCE_PERL_EMBED
  70#include <EXTERN.h>
  71#include <perl.h>
  72
  73int main(void)
  74{
  75perl_alloc();
  76return 0;
  77}
  78endef
  79endif
  80
  81ifndef NO_LIBPYTHON
  82define SOURCE_PYTHON_EMBED
  83#include <Python.h>
  84
  85int main(void)
  86{
  87        Py_Initialize();
  88        return 0;
  89}
  90endef
  91endif
  92
  93define SOURCE_BFD
  94#include <bfd.h>
  95
  96int main(void)
  97{
  98        bfd_demangle(0, 0, 0);
  99        return 0;
 100}
 101endef
 102
 103define SOURCE_CPLUS_DEMANGLE
 104extern char *cplus_demangle(const char *, int);
 105
 106int main(void)
 107{
 108        cplus_demangle(0, 0);
 109        return 0;
 110}
 111endef
 112
 113define SOURCE_STRLCPY
 114#include <stdlib.h>
 115extern size_t strlcpy(char *dest, const char *src, size_t size);
 116
 117int main(void)
 118{
 119        strlcpy(NULL, NULL, 0);
 120        return 0;
 121}
 122endef
 123
 124# try-cc
 125# Usage: option = $(call try-cc, source-to-build, cc-options)
 126try-cc = $(shell sh -c                                            \
 127        'TMP="$(OUTPUT)$(TMPOUT).$$$$";                           \
 128         echo "$(1)" |                                            \
 129         $(CC) -x c - $(2) -o "$$TMP" > /dev/null 2>&1 && echo y; \
 130         rm -f "$$TMP"')
 131
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.