feature-tests.mak 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. define SOURCE_HELLO
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. return puts(\"hi\");
  6. }
  7. endef
  8. ifndef NO_DWARF
  9. define SOURCE_DWARF
  10. #include <dwarf.h>
  11. #include <elfutils/libdw.h>
  12. #include <elfutils/version.h>
  13. #ifndef _ELFUTILS_PREREQ
  14. #error
  15. #endif
  16. int main(void)
  17. {
  18. Dwarf *dbg = dwarf_begin(0, DWARF_C_READ);
  19. return (long)dbg;
  20. }
  21. endef
  22. endif
  23. define SOURCE_LIBELF
  24. #include <libelf.h>
  25. int main(void)
  26. {
  27. Elf *elf = elf_begin(0, ELF_C_READ, 0);
  28. return (long)elf;
  29. }
  30. endef
  31. define SOURCE_GLIBC
  32. #include <gnu/libc-version.h>
  33. int main(void)
  34. {
  35. const char *version = gnu_get_libc_version();
  36. return (long)version;
  37. }
  38. endef
  39. define SOURCE_ELF_MMAP
  40. #include <libelf.h>
  41. int main(void)
  42. {
  43. Elf *elf = elf_begin(0, ELF_C_READ_MMAP, 0);
  44. return (long)elf;
  45. }
  46. endef
  47. ifndef NO_NEWT
  48. define SOURCE_NEWT
  49. #include <newt.h>
  50. int main(void)
  51. {
  52. newtInit();
  53. newtCls();
  54. return newtFinished();
  55. }
  56. endef
  57. endif
  58. ifndef NO_LIBPERL
  59. define SOURCE_PERL_EMBED
  60. #include <EXTERN.h>
  61. #include <perl.h>
  62. int main(void)
  63. {
  64. perl_alloc();
  65. return 0;
  66. }
  67. endef
  68. endif
  69. ifndef NO_LIBPYTHON
  70. define SOURCE_PYTHON_VERSION
  71. #include <Python.h>
  72. #if PY_VERSION_HEX >= 0x03000000
  73. #error
  74. #endif
  75. int main(void){}
  76. endef
  77. define SOURCE_PYTHON_EMBED
  78. #include <Python.h>
  79. int main(void)
  80. {
  81. Py_Initialize();
  82. return 0;
  83. }
  84. endef
  85. endif
  86. define SOURCE_BFD
  87. #include <bfd.h>
  88. int main(void)
  89. {
  90. bfd_demangle(0, 0, 0);
  91. return 0;
  92. }
  93. endef
  94. define SOURCE_CPLUS_DEMANGLE
  95. extern char *cplus_demangle(const char *, int);
  96. int main(void)
  97. {
  98. cplus_demangle(0, 0);
  99. return 0;
  100. }
  101. endef
  102. define SOURCE_STRLCPY
  103. #include <stdlib.h>
  104. extern size_t strlcpy(char *dest, const char *src, size_t size);
  105. int main(void)
  106. {
  107. strlcpy(NULL, NULL, 0);
  108. return 0;
  109. }
  110. endef