Advertisement
david_david

multiarch-dispatch.h

Aug 10th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. $ cat /usr/include/multiarch-dispatch.h
  2. /* Undefine some built-ins */
  3. #ifdef linux
  4. #undef linux
  5. #define _multiarch_defined_linux
  6. #endif
  7. #ifdef i386
  8. #undef i386
  9. #define _multiarch_defined_i386
  10. #endif
  11. #ifdef sparc
  12. #undef sparc
  13. #define _multiarch_defined_sparc
  14. #endif
  15. #ifdef mips
  16. #undef mips
  17. #define _multiarch_defined_mips
  18. #endif
  19. #ifdef arm
  20. #undef arm
  21. #define _multiarch_defined_arm
  22. #endif
  23.  
  24. /* Undefine some interfering definitions (not built-ins) */
  25. /* We can only redefine value 1, so we let it fail with other values */
  26. #if x86_64 == 1
  27. #define _multiarch_defined_x86_64
  28. #undef x86_64
  29. #endif
  30. #if ppc64 == 1
  31. #define _multiarch_defined_ppc64
  32. #undef ppc64
  33. #endif
  34. #if ppc == 1
  35. #define _multiarch_defined_ppc
  36. #undef ppc
  37. #endif
  38. #if sparc64 == 1
  39. #define _multiarch_defined_sparc64
  40. #undef sparc64
  41. #endif
  42. #if s390x == 1
  43. #define _multiarch_defined_s390x
  44. #undef s390x
  45. #endif
  46. #if s390 == 1
  47. #define _multiarch_defined_s390
  48. #undef s390
  49. #endif
  50. #if ia64 == 1
  51. #define _multiarch_defined_ia64
  52. #undef ia64
  53. #endif
  54. #if alpha == 1
  55. #define _multiarch_defined_alpha
  56. #undef alpha
  57. #endif
  58. #if mipsel == 1
  59. #define _multiarch_defined_mipsel
  60. #undef mipsel
  61. #endif
  62. #if armeb == 1
  63. #define _multiarch_defined_armeb
  64. #undef armeb
  65. #endif
  66.  
  67. /* Dispatch arch dependent header */
  68. #if defined(__linux__)
  69. #define _MULTIARCH_OS linux
  70. #endif
  71. #define _MULTIARCH_MAKE_HEADER(arch,header) <multiarch-arch-_MULTIARCH_OS/header>
  72. #if defined(__x86_64__)
  73. #include _MULTIARCH_MAKE_HEADER(x86_64,_MULTIARCH_HEADER)
  74. #elif defined(__i386__)
  75. #include _MULTIARCH_MAKE_HEADER(i386,_MULTIARCH_HEADER)
  76. #elif defined(__powerpc64__)
  77. #include _MULTIARCH_MAKE_HEADER(ppc64,_MULTIARCH_HEADER)
  78. #elif defined(__powerpc__)
  79. #include _MULTIARCH_MAKE_HEADER(ppc,_MULTIARCH_HEADER)
  80. #elif defined(__sparc__) && defined(__arch64__)
  81. #include _MULTIARCH_MAKE_HEADER(sparc64,_MULTIARCH_HEADER)
  82. #elif defined(__sparc__)
  83. #include _MULTIARCH_MAKE_HEADER(sparc,_MULTIARCH_HEADER)
  84. #elif defined(__s390x__)
  85. #include _MULTIARCH_MAKE_HEADER(s390x,_MULTIARCH_HEADER)
  86. #elif defined(__s390__)
  87. #include _MULTIARCH_MAKE_HEADER(s390,_MULTIARCH_HEADER)
  88. #elif defined(__ia64__)
  89. #include _MULTIARCH_MAKE_HEADER(ia64,_MULTIARCH_HEADER)
  90. #elif defined(__alpha__)
  91. #include _MULTIARCH_MAKE_HEADER(alpha,_MULTIARCH_HEADER)
  92. #elif defined(__mips__)
  93. #if defined(__BIG_ENDIAN__)
  94. #include _MULTIARCH_MAKE_HEADER(mips,_MULTIARCH_HEADER)
  95. #else
  96. #include _MULTIARCH_MAKE_HEADER(mipsel,_MULTIARCH_HEADER)
  97. #endif
  98. #elif defined(__arm__)
  99. #if defined(__BIG_ENDIAN__)
  100. #include _MULTIARCH_MAKE_HEADER(armeb,_MULTIARCH_HEADER)
  101. #else
  102. #include _MULTIARCH_MAKE_HEADER(arm,_MULTIARCH_HEADER)
  103. #endif
  104. #else
  105. #error "Unknown architecture, please submit bug report"
  106. #endif
  107. #undef _MULTIARCH_MAKE_HEADER
  108. #undef _MULTIARCH_OS
  109. #undef _MULTIARCH_HEADER
  110.  
  111. /* Redefine built-ins */
  112. #ifdef _multiarch_defined_linux
  113. #undef _multiarch_defined_linux
  114. #define linux 1
  115. #endif
  116. #ifdef _multiarch_defined_i386
  117. #undef _multiarch_defined_i386
  118. #define i386 1
  119. #endif
  120. #ifdef _multiarch_defined_sparc
  121. #undef _multiarch_defined_sparc
  122. #define sparc 1
  123. #endif
  124. #ifdef _multiarch_defined_mips
  125. #undef _multiarch_defined_mips
  126. #define mips 1
  127. #endif
  128. #ifdef _multiarch_defined_arm
  129. #undef _multiarch_defined_arm
  130. #define arm 1
  131. #endif
  132.  
  133. /* Redefine interfering defitions */
  134. #ifdef _multiarch_defined_x86_64
  135. #undef _multiarch_defined_x86_64
  136. #define x86_64 1
  137. #endif
  138. #ifdef _multiarch_defined_ppc64
  139. #undef _multiarch_defined_ppc64
  140. #define ppc64 1
  141. #endif
  142. #ifdef _multiarch_defined_ppc
  143. #undef _multiarch_defined_ppc
  144. #define ppc 1
  145. #endif
  146. #ifdef _multiarch_defined_sparc64
  147. #undef _multiarch_defined_sparc64
  148. #define sparc64 1
  149. #endif
  150. #ifdef _multiarch_defined_s390x
  151. #undef _multiarch_defined_s390x
  152. #define s390x 1
  153. #endif
  154. #ifdef _multiarch_defined_s390
  155. #undef _multiarch_defined_s390
  156. #define s390 1
  157. #endif
  158. #ifdef _multiarch_defined_ia64
  159. #undef _multiarch_defined_ia64
  160. #define ia64 1
  161. #endif
  162. #ifdef _multiarch_defined_alpha
  163. #undef _multiarch_defined_alpha
  164. #define alpha 1
  165. #endif
  166. #ifdef _multiarch_defined_mipsel
  167. #undef _multiarch_defined_mipsel
  168. #define mipsel 1
  169. #endif
  170. #ifdef _multiarch_defined_armeb
  171. #undef _multiarch_defined_armeb
  172. #define armeb 1
  173. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement