passenger 3.0.21 → 3.9.1.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (835) hide show
  1. data/DEVELOPERS.TXT +4 -10
  2. data/NEWS +19 -27
  3. data/Rakefile +20 -19
  4. data/bin/passenger +3 -2
  5. data/bin/passenger-config +35 -5
  6. data/bin/passenger-install-apache2-module +12 -12
  7. data/bin/passenger-install-nginx-module +55 -38
  8. data/bin/passenger-memory-stats +3 -1
  9. data/bin/passenger-status +7 -35
  10. data/build/agents.rb +107 -21
  11. data/build/apache2.rb +11 -46
  12. data/build/basics.rb +61 -9
  13. data/build/common_library.rb +59 -142
  14. data/build/cxx_tests.rb +111 -110
  15. data/build/documentation.rb +33 -0
  16. data/build/misc.rb +30 -12
  17. data/build/nginx.rb +10 -39
  18. data/build/oxt_tests.rb +1 -0
  19. data/build/ruby_extension.rb +1 -5
  20. data/build/test_basics.rb +3 -2
  21. data/dev/copy_boost_headers.rb +2 -1
  22. data/doc/Architectural overview.html +49 -90
  23. data/doc/DebuggingAndStressTesting.txt.md +49 -0
  24. data/doc/Packaging.txt.md +254 -0
  25. data/doc/Security of user switching support.html +35 -66
  26. data/doc/Users guide Apache.html +588 -758
  27. data/doc/Users guide Apache.idmap.txt +253 -136
  28. data/doc/Users guide Apache.txt +154 -109
  29. data/doc/Users guide Nginx.html +544 -660
  30. data/doc/Users guide Nginx.idmap.txt +179 -91
  31. data/doc/Users guide Nginx.txt +192 -118
  32. data/doc/Users guide Standalone.html +65 -48
  33. data/doc/Users guide Standalone.idmap.txt +10 -2
  34. data/doc/Users guide Standalone.txt +4 -0
  35. data/doc/images/glyphicons-halflings-white.png +0 -0
  36. data/doc/images/glyphicons-halflings.png +0 -0
  37. data/doc/images/phusion_banner_small.png +0 -0
  38. data/doc/images/{smart-lv2.png → smart.png} +0 -0
  39. data/doc/images/{smart-lv2.svg → smart.svg} +0 -0
  40. data/doc/templates/bootstrap.min.css +397 -0
  41. data/doc/templates/markdown.html.erb +117 -0
  42. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +2 -1
  43. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +26 -48
  44. data/doc/users_guide_snippets/passenger_spawn_method.txt +18 -30
  45. data/doc/users_guide_snippets/support_information.txt +30 -0
  46. data/ext/apache2/Bucket.cpp +9 -26
  47. data/ext/apache2/Bucket.h +13 -10
  48. data/ext/apache2/Configuration.cpp +70 -58
  49. data/ext/apache2/Configuration.hpp +19 -47
  50. data/ext/apache2/DirectoryMapper.h +7 -7
  51. data/ext/apache2/Hooks.cpp +150 -313
  52. data/ext/boost/algorithm/string/detail/case_conv.hpp +4 -2
  53. data/ext/boost/algorithm/string/detail/find_format.hpp +20 -20
  54. data/ext/boost/algorithm/string/detail/find_format_all.hpp +23 -23
  55. data/ext/boost/algorithm/string/detail/find_format_store.hpp +2 -2
  56. data/ext/boost/algorithm/string/detail/formatter.hpp +25 -0
  57. data/ext/boost/algorithm/string/formatter.hpp +20 -3
  58. data/ext/boost/assert.hpp +85 -4
  59. data/ext/boost/bind/bind.hpp +1 -1
  60. data/ext/boost/concept/detail/backward_compatibility.hpp +1 -1
  61. data/ext/boost/concept_check.hpp +140 -64
  62. data/ext/boost/config.hpp +1 -1
  63. data/ext/boost/config/auto_link.hpp +8 -6
  64. data/ext/boost/config/compiler/borland.hpp +12 -2
  65. data/ext/boost/config/compiler/clang.hpp +89 -30
  66. data/ext/boost/config/compiler/codegear.hpp +3 -2
  67. data/ext/boost/config/compiler/common_edg.hpp +7 -5
  68. data/ext/boost/config/compiler/cray.hpp +61 -0
  69. data/ext/boost/config/compiler/digitalmars.hpp +9 -1
  70. data/ext/boost/config/compiler/gcc.hpp +33 -24
  71. data/ext/boost/config/compiler/gcc_xml.hpp +4 -0
  72. data/ext/boost/config/compiler/hp_acc.hpp +12 -1
  73. data/ext/boost/config/compiler/intel.hpp +78 -4
  74. data/ext/boost/config/compiler/metrowerks.hpp +4 -1
  75. data/ext/boost/config/compiler/mpw.hpp +4 -1
  76. data/ext/boost/config/compiler/nvcc.hpp +8 -66
  77. data/ext/boost/config/compiler/pathscale.hpp +80 -0
  78. data/ext/boost/config/compiler/pgi.hpp +5 -5
  79. data/ext/boost/config/compiler/sunpro_cc.hpp +4 -1
  80. data/ext/boost/config/compiler/vacpp.hpp +37 -13
  81. data/ext/boost/config/compiler/visualc.hpp +24 -11
  82. data/ext/boost/config/platform/bsd.hpp +1 -1
  83. data/ext/boost/config/platform/cray.hpp +18 -0
  84. data/ext/boost/config/platform/cygwin.hpp +10 -0
  85. data/ext/boost/config/platform/linux.hpp +5 -0
  86. data/ext/boost/config/platform/macos.hpp +5 -4
  87. data/ext/boost/config/platform/symbian.hpp +5 -2
  88. data/ext/boost/config/platform/vms.hpp +25 -0
  89. data/ext/boost/config/platform/win32.hpp +7 -1
  90. data/ext/boost/config/select_compiler_config.hpp +8 -25
  91. data/ext/boost/config/select_platform_config.hpp +8 -1
  92. data/ext/boost/config/select_stdlib_config.hpp +9 -1
  93. data/ext/boost/config/stdlib/dinkumware.hpp +6 -9
  94. data/ext/boost/config/stdlib/libcomo.hpp +1 -4
  95. data/ext/boost/config/stdlib/libcpp.hpp +36 -0
  96. data/ext/boost/config/stdlib/libstdcpp3.hpp +37 -11
  97. data/ext/boost/config/stdlib/modena.hpp +1 -4
  98. data/ext/boost/config/stdlib/msl.hpp +1 -4
  99. data/ext/boost/config/stdlib/roguewave.hpp +9 -6
  100. data/ext/boost/config/stdlib/sgi.hpp +12 -4
  101. data/ext/boost/config/stdlib/stlport.hpp +11 -4
  102. data/ext/boost/config/stdlib/vacpp.hpp +11 -4
  103. data/ext/boost/config/suffix.hpp +71 -6
  104. data/ext/boost/config/warning_disable.hpp +1 -1
  105. data/ext/boost/container/container_fwd.hpp +177 -0
  106. data/ext/boost/cstdint.hpp +17 -12
  107. data/ext/boost/current_function.hpp +2 -1
  108. data/ext/boost/date_time/c_time.hpp +17 -1
  109. data/ext/boost/date_time/compiler_config.hpp +13 -15
  110. data/ext/boost/date_time/date_formatting.hpp +7 -1
  111. data/ext/boost/date_time/filetime_functions.hpp +4 -4
  112. data/ext/boost/date_time/gregorian_calendar.ipp +2 -2
  113. data/ext/boost/date_time/strings_from_facet.hpp +3 -3
  114. data/ext/boost/date_time/time_facet.hpp +101 -101
  115. data/ext/boost/detail/endian.hpp +4 -2
  116. data/ext/boost/detail/fenv.hpp +74 -0
  117. data/ext/boost/detail/sp_typeinfo.hpp +6 -0
  118. data/ext/boost/exception/detail/clone_current_exception.hpp +47 -0
  119. data/ext/boost/exception/detail/exception_ptr.hpp +194 -122
  120. data/ext/boost/exception/detail/type_info.hpp +3 -3
  121. data/ext/boost/exception/diagnostic_information.hpp +37 -21
  122. data/ext/boost/exception/exception.hpp +21 -1
  123. data/ext/boost/exception/info.hpp +0 -1
  124. data/ext/boost/function.hpp +2 -2
  125. data/ext/boost/function/function_base.hpp +15 -9
  126. data/ext/boost/function/function_template.hpp +26 -48
  127. data/ext/boost/integer_fwd.hpp +0 -16
  128. data/ext/boost/integer_traits.hpp +2 -2
  129. data/ext/boost/iterator.hpp +1 -1
  130. data/ext/boost/iterator/iterator_adaptor.hpp +1 -7
  131. data/ext/boost/iterator/iterator_facade.hpp +13 -13
  132. data/ext/boost/iterator/transform_iterator.hpp +5 -20
  133. data/ext/boost/lexical_cast.hpp +1655 -673
  134. data/ext/boost/math/policies/policy.hpp +982 -0
  135. data/ext/boost/math/special_functions/detail/fp_traits.hpp +570 -0
  136. data/ext/boost/math/special_functions/detail/round_fwd.hpp +80 -0
  137. data/ext/boost/math/special_functions/fpclassify.hpp +533 -0
  138. data/ext/boost/math/special_functions/math_fwd.hpp +1070 -0
  139. data/ext/boost/math/special_functions/sign.hpp +145 -0
  140. data/ext/boost/math/tools/config.hpp +321 -0
  141. data/ext/boost/math/tools/promotion.hpp +150 -0
  142. data/ext/boost/math/tools/real_cast.hpp +29 -0
  143. data/ext/boost/math/tools/user.hpp +97 -0
  144. data/ext/boost/move/move.hpp +1222 -0
  145. data/ext/boost/mpl/O1_size.hpp +40 -0
  146. data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
  147. data/ext/boost/mpl/advance.hpp +76 -0
  148. data/ext/boost/mpl/advance_fwd.hpp +28 -0
  149. data/ext/boost/mpl/at.hpp +52 -0
  150. data/ext/boost/mpl/at_fwd.hpp +24 -0
  151. data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
  152. data/ext/boost/mpl/aux_/advance_backward.hpp +128 -0
  153. data/ext/boost/mpl/aux_/advance_forward.hpp +127 -0
  154. data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -0
  155. data/ext/boost/mpl/aux_/at_impl.hpp +45 -0
  156. data/ext/boost/mpl/aux_/begin_end_impl.hpp +101 -0
  157. data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
  158. data/ext/boost/mpl/aux_/comparison_op.hpp +83 -0
  159. data/ext/boost/mpl/aux_/config/forwarding.hpp +27 -0
  160. data/ext/boost/mpl/aux_/config/typeof.hpp +38 -0
  161. data/ext/boost/mpl/aux_/contains_impl.hpp +61 -0
  162. data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
  163. data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
  164. data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
  165. data/ext/boost/mpl/aux_/has_size.hpp +23 -0
  166. data/ext/boost/mpl/aux_/has_tag.hpp +23 -0
  167. data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
  168. data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
  169. data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
  170. data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
  171. data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
  172. data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
  173. data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
  174. data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
  175. data/ext/boost/mpl/aux_/msvc_type.hpp +62 -0
  176. data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +77 -0
  177. data/ext/boost/mpl/aux_/numeric_op.hpp +315 -0
  178. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
  179. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -0
  180. data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
  181. data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
  182. data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
  183. data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
  184. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
  185. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
  186. data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
  187. data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
  188. data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
  189. data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
  190. data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -0
  191. data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +146 -0
  192. data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
  193. data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
  194. data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
  195. data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
  196. data/ext/boost/mpl/aux_/push_back_impl.hpp +70 -0
  197. data/ext/boost/mpl/aux_/push_front_impl.hpp +71 -0
  198. data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
  199. data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
  200. data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +63 -0
  201. data/ext/boost/mpl/back_fwd.hpp +24 -0
  202. data/ext/boost/mpl/back_inserter.hpp +34 -0
  203. data/ext/boost/mpl/begin_end.hpp +57 -0
  204. data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
  205. data/ext/boost/mpl/clear.hpp +39 -0
  206. data/ext/boost/mpl/clear_fwd.hpp +24 -0
  207. data/ext/boost/mpl/comparison.hpp +24 -0
  208. data/ext/boost/mpl/contains.hpp +41 -0
  209. data/ext/boost/mpl/contains_fwd.hpp +25 -0
  210. data/ext/boost/mpl/deref.hpp +41 -0
  211. data/ext/boost/mpl/distance.hpp +78 -0
  212. data/ext/boost/mpl/distance_fwd.hpp +28 -0
  213. data/ext/boost/mpl/empty_fwd.hpp +24 -0
  214. data/ext/boost/mpl/equal_to.hpp +21 -0
  215. data/ext/boost/mpl/find.hpp +38 -0
  216. data/ext/boost/mpl/find_if.hpp +50 -0
  217. data/ext/boost/mpl/fold.hpp +48 -0
  218. data/ext/boost/mpl/front_fwd.hpp +24 -0
  219. data/ext/boost/mpl/front_inserter.hpp +33 -0
  220. data/ext/boost/mpl/greater.hpp +21 -0
  221. data/ext/boost/mpl/greater_equal.hpp +21 -0
  222. data/ext/boost/mpl/inserter.hpp +32 -0
  223. data/ext/boost/mpl/iter_fold.hpp +49 -0
  224. data/ext/boost/mpl/iter_fold_if.hpp +117 -0
  225. data/ext/boost/mpl/iterator_range.hpp +42 -0
  226. data/ext/boost/mpl/iterator_tags.hpp +27 -0
  227. data/ext/boost/mpl/less.hpp +21 -0
  228. data/ext/boost/mpl/less_equal.hpp +21 -0
  229. data/ext/boost/mpl/limits/list.hpp +21 -0
  230. data/ext/boost/mpl/limits/vector.hpp +21 -0
  231. data/ext/boost/mpl/list.hpp +57 -0
  232. data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
  233. data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
  234. data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
  235. data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
  236. data/ext/boost/mpl/list/aux_/front.hpp +33 -0
  237. data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
  238. data/ext/boost/mpl/list/aux_/item.hpp +55 -0
  239. data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
  240. data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
  241. data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
  242. data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
  243. data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
  244. data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
  245. data/ext/boost/mpl/list/aux_/size.hpp +33 -0
  246. data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
  247. data/ext/boost/mpl/list/list0.hpp +42 -0
  248. data/ext/boost/mpl/list/list10.hpp +43 -0
  249. data/ext/boost/mpl/list/list20.hpp +43 -0
  250. data/ext/boost/mpl/long.hpp +22 -0
  251. data/ext/boost/mpl/long_fwd.hpp +27 -0
  252. data/ext/boost/mpl/minus.hpp +21 -0
  253. data/ext/boost/mpl/multiplies.hpp +53 -0
  254. data/ext/boost/mpl/negate.hpp +81 -0
  255. data/ext/boost/mpl/not_equal_to.hpp +21 -0
  256. data/ext/boost/mpl/numeric_cast.hpp +41 -0
  257. data/ext/boost/mpl/pair.hpp +70 -0
  258. data/ext/boost/mpl/plus.hpp +21 -0
  259. data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
  260. data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
  261. data/ext/boost/mpl/prior.hpp +19 -0
  262. data/ext/boost/mpl/push_back.hpp +53 -0
  263. data/ext/boost/mpl/push_back_fwd.hpp +24 -0
  264. data/ext/boost/mpl/push_front.hpp +52 -0
  265. data/ext/boost/mpl/push_front_fwd.hpp +24 -0
  266. data/ext/boost/mpl/remove_if.hpp +83 -0
  267. data/ext/boost/mpl/reverse_fold.hpp +50 -0
  268. data/ext/boost/mpl/same_as.hpp +55 -0
  269. data/ext/boost/mpl/sequence_tag.hpp +124 -0
  270. data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
  271. data/ext/boost/mpl/size.hpp +42 -0
  272. data/ext/boost/mpl/size_fwd.hpp +24 -0
  273. data/ext/boost/mpl/tag.hpp +52 -0
  274. data/ext/boost/mpl/times.hpp +21 -0
  275. data/ext/boost/mpl/vector.hpp +57 -0
  276. data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
  277. data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
  278. data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
  279. data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
  280. data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
  281. data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
  282. data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
  283. data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
  284. data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
  285. data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
  286. data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
  287. data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
  288. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
  289. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
  290. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
  291. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
  292. data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
  293. data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
  294. data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
  295. data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
  296. data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
  297. data/ext/boost/mpl/vector/vector0.hpp +34 -0
  298. data/ext/boost/mpl/vector/vector10.hpp +45 -0
  299. data/ext/boost/mpl/vector/vector20.hpp +45 -0
  300. data/ext/boost/none.hpp +1 -1
  301. data/ext/boost/numeric/conversion/bounds.hpp +24 -0
  302. data/ext/boost/numeric/conversion/cast.hpp +61 -0
  303. data/ext/boost/numeric/conversion/conversion_traits.hpp +39 -0
  304. data/ext/boost/numeric/conversion/converter.hpp +68 -0
  305. data/ext/boost/numeric/conversion/converter_policies.hpp +186 -0
  306. data/ext/boost/numeric/conversion/detail/bounds.hpp +58 -0
  307. data/ext/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
  308. data/ext/boost/numeric/conversion/detail/converter.hpp +602 -0
  309. data/ext/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
  310. data/ext/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
  311. data/ext/boost/numeric/conversion/detail/meta.hpp +120 -0
  312. data/ext/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
  313. data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
  314. data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
  315. data/ext/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
  316. data/ext/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
  317. data/ext/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
  318. data/ext/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
  319. data/ext/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
  320. data/ext/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
  321. data/ext/boost/operators.hpp +3 -1
  322. data/ext/boost/optional/optional.hpp +146 -79
  323. data/ext/boost/optional/optional_fwd.hpp +8 -1
  324. data/ext/boost/preprocessor/cat.hpp +2 -2
  325. data/ext/boost/preprocessor/config/config.hpp +39 -4
  326. data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
  327. data/ext/boost/preprocessor/facilities/overload.hpp +25 -0
  328. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +3 -3
  329. data/ext/boost/preprocessor/iteration/iterate.hpp +3 -3
  330. data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
  331. data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
  332. data/ext/boost/preprocessor/seq/cat.hpp +5 -4
  333. data/ext/boost/preprocessor/seq/size.hpp +0 -1
  334. data/ext/boost/preprocessor/tuple/eat.hpp +83 -34
  335. data/ext/boost/preprocessor/tuple/elem.hpp +161 -355
  336. data/ext/boost/preprocessor/tuple/rem.hpp +110 -48
  337. data/ext/boost/preprocessor/tuple/to_list.hpp +90 -36
  338. data/ext/boost/preprocessor/variadic/elem.hpp +94 -0
  339. data/ext/boost/preprocessor/variadic/size.hpp +30 -0
  340. data/ext/boost/range/begin.hpp +17 -6
  341. data/ext/boost/range/concepts.hpp +37 -2
  342. data/ext/boost/range/detail/safe_bool.hpp +72 -0
  343. data/ext/boost/range/end.hpp +14 -9
  344. data/ext/boost/range/iterator_range_core.hpp +120 -12
  345. data/ext/boost/range/size.hpp +21 -5
  346. data/ext/boost/smart_ptr/detail/shared_count.hpp +88 -0
  347. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -0
  348. data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +142 -0
  349. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +9 -0
  350. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +10 -2
  351. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +5 -1
  352. data/ext/boost/smart_ptr/detail/spinlock.hpp +4 -1
  353. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +20 -3
  354. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +4 -0
  355. data/ext/boost/smart_ptr/make_shared.hpp +591 -22
  356. data/ext/boost/smart_ptr/shared_array.hpp +29 -1
  357. data/ext/boost/smart_ptr/shared_ptr.hpp +29 -13
  358. data/ext/boost/smart_ptr/weak_ptr.hpp +24 -12
  359. data/ext/boost/src/pthread/once.cpp +9 -7
  360. data/ext/boost/src/pthread/thread.cpp +32 -28
  361. data/ext/boost/src/pthread/timeconv.inl +4 -5
  362. data/ext/boost/src/tss_null.cpp +5 -1
  363. data/ext/boost/static_assert.hpp +8 -2
  364. data/ext/boost/thread/detail/config.hpp +19 -4
  365. data/ext/boost/thread/detail/move.hpp +11 -5
  366. data/ext/boost/thread/detail/thread.hpp +59 -43
  367. data/ext/boost/thread/exceptions.hpp +9 -9
  368. data/ext/boost/thread/future.hpp +150 -82
  369. data/ext/boost/thread/locks.hpp +101 -60
  370. data/ext/boost/thread/pthread/condition_variable.hpp +79 -32
  371. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +12 -3
  372. data/ext/boost/thread/pthread/mutex.hpp +17 -14
  373. data/ext/boost/thread/pthread/once.hpp +3 -4
  374. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +12 -2
  375. data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -19
  376. data/ext/boost/thread/pthread/shared_mutex.hpp +13 -13
  377. data/ext/boost/thread/pthread/thread_data.hpp +40 -12
  378. data/ext/boost/thread/thread_time.hpp +5 -0
  379. data/ext/boost/throw_exception.hpp +1 -1
  380. data/ext/boost/token_functions.hpp +34 -10
  381. data/ext/boost/type_traits/add_rvalue_reference.hpp +66 -0
  382. data/ext/boost/type_traits/alignment_of.hpp +1 -1
  383. data/ext/boost/type_traits/detail/bool_trait_def.hpp +26 -3
  384. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +3 -2
  385. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +1 -1
  386. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +6 -4
  387. data/ext/boost/type_traits/detail/type_trait_def.hpp +8 -2
  388. data/ext/boost/type_traits/function_traits.hpp +1 -1
  389. data/ext/boost/type_traits/has_nothrow_constructor.hpp +53 -0
  390. data/ext/boost/type_traits/has_nothrow_copy.hpp +19 -5
  391. data/ext/boost/type_traits/has_trivial_constructor.hpp +51 -0
  392. data/ext/boost/type_traits/has_trivial_copy.hpp +20 -5
  393. data/ext/boost/type_traits/has_trivial_destructor.hpp +12 -5
  394. data/ext/boost/type_traits/intrinsics.hpp +119 -71
  395. data/ext/boost/type_traits/is_const.hpp +5 -5
  396. data/ext/boost/type_traits/is_convertible.hpp +14 -13
  397. data/ext/boost/type_traits/is_enum.hpp +1 -1
  398. data/ext/boost/type_traits/is_floating_point.hpp +27 -0
  399. data/ext/boost/type_traits/is_function.hpp +3 -3
  400. data/ext/boost/type_traits/is_fundamental.hpp +1 -1
  401. data/ext/boost/type_traits/is_member_function_pointer.hpp +2 -2
  402. data/ext/boost/type_traits/is_member_pointer.hpp +2 -2
  403. data/ext/boost/type_traits/is_pod.hpp +11 -3
  404. data/ext/boost/type_traits/is_pointer.hpp +2 -2
  405. data/ext/boost/type_traits/is_signed.hpp +8 -3
  406. data/ext/boost/type_traits/is_union.hpp +8 -0
  407. data/ext/boost/type_traits/is_unsigned.hpp +9 -4
  408. data/ext/boost/type_traits/is_volatile.hpp +5 -5
  409. data/ext/boost/type_traits/remove_cv.hpp +4 -3
  410. data/ext/boost/type_traits/remove_pointer.hpp +51 -2
  411. data/ext/boost/type_traits/remove_reference.hpp +2 -2
  412. data/ext/boost/type_traits/type_with_alignment.hpp +8 -2
  413. data/ext/boost/utility/declval.hpp +44 -0
  414. data/ext/boost/utility/detail/in_place_factory_prefix.hpp +36 -0
  415. data/ext/boost/utility/detail/in_place_factory_suffix.hpp +23 -0
  416. data/ext/boost/utility/detail/result_of_iterate.hpp +142 -0
  417. data/ext/boost/utility/in_place_factory.hpp +88 -0
  418. data/ext/boost/utility/result_of.hpp +103 -0
  419. data/ext/boost/utility/swap.hpp +55 -0
  420. data/ext/common/AnsiColorConstants.h +36 -0
  421. data/ext/common/ApplicationPool2/Common.h +87 -0
  422. data/ext/common/ApplicationPool2/ComponentInfo.h +53 -0
  423. data/ext/common/ApplicationPool2/Group.h +648 -0
  424. data/ext/common/ApplicationPool2/Implementation.cpp +580 -0
  425. data/ext/common/ApplicationPool2/Options.h +576 -0
  426. data/ext/common/ApplicationPool2/PipeWatcher.h +61 -0
  427. data/ext/common/ApplicationPool2/Pool.h +1181 -0
  428. data/ext/common/ApplicationPool2/Process.h +425 -0
  429. data/ext/common/ApplicationPool2/README.md +96 -0
  430. data/ext/common/ApplicationPool2/Session.h +158 -0
  431. data/ext/common/ApplicationPool2/Socket.h +246 -0
  432. data/ext/common/ApplicationPool2/Spawner.h +2212 -0
  433. data/ext/common/ApplicationPool2/SuperGroup.h +749 -0
  434. data/ext/common/BackgroundEventLoop.cpp +129 -0
  435. data/ext/common/BackgroundEventLoop.h +61 -0
  436. data/ext/common/Constants.h +3 -1
  437. data/ext/common/EventedBufferedInput.h +331 -0
  438. data/ext/common/EventedMessageServer.h +17 -34
  439. data/ext/common/EventedServer.h +2 -2
  440. data/ext/common/Exceptions.h +71 -19
  441. data/ext/common/FileDescriptor.h +8 -6
  442. data/ext/common/HttpConstants.h +167 -0
  443. data/ext/common/IniFile.h +24 -0
  444. data/ext/common/Logging.h +62 -849
  445. data/ext/common/MessageReadersWriters.h +19 -0
  446. data/ext/common/MessageServer.h +11 -14
  447. data/ext/common/MultiLibeio.cpp +198 -0
  448. data/ext/common/MultiLibeio.h +67 -0
  449. data/ext/common/ResourceLocator.h +24 -41
  450. data/ext/common/SafeLibev.h +186 -14
  451. data/ext/common/StaticString.h +23 -3
  452. data/ext/common/UnionStation.h +972 -0
  453. data/ext/common/Utils.cpp +168 -24
  454. data/ext/common/Utils.h +25 -3
  455. data/ext/common/Utils/CachedFileStat.hpp +4 -3
  456. data/ext/common/Utils/FileChangeChecker.h +2 -2
  457. data/ext/common/Utils/HashMap.h +50 -0
  458. data/ext/common/Utils/IOUtils.cpp +229 -68
  459. data/ext/common/Utils/IOUtils.h +134 -3
  460. data/ext/common/Utils/Lock.h +28 -0
  461. data/ext/common/Utils/MemoryBarrier.h +52 -0
  462. data/ext/common/Utils/PriorityQueue.h +54 -0
  463. data/ext/common/Utils/ProcessMetricsCollector.h +9 -11
  464. data/ext/common/Utils/ScopeGuard.h +50 -1
  465. data/ext/common/Utils/SmallVector.h +653 -0
  466. data/ext/common/Utils/StrIntUtils.cpp +26 -2
  467. data/ext/common/Utils/StrIntUtils.h +18 -2
  468. data/ext/common/Utils/StringMap.h +125 -8
  469. data/ext/common/Utils/Template.h +212 -0
  470. data/ext/common/Utils/fib.c +699 -0
  471. data/ext/common/Utils/fib.h +101 -0
  472. data/ext/common/Utils/fibpriv.h +67 -0
  473. data/ext/common/Utils/json-forwards.h +249 -0
  474. data/ext/common/Utils/json.h +1855 -0
  475. data/ext/common/Utils/jsoncpp.cpp +4230 -0
  476. data/ext/common/agents/Base.cpp +1126 -0
  477. data/ext/common/{AgentBase.h → agents/Base.h} +5 -1
  478. data/ext/common/agents/EnvPrinter.c +16 -0
  479. data/ext/common/agents/HelperAgent/AgentOptions.h +81 -0
  480. data/ext/common/{HelperAgent → agents/HelperAgent}/BacktracesServer.h +3 -2
  481. data/ext/common/agents/HelperAgent/FileBackedPipe.h +732 -0
  482. data/ext/common/agents/HelperAgent/Main.cpp +497 -0
  483. data/ext/common/agents/HelperAgent/RequestHandler.cpp +283 -0
  484. data/ext/common/agents/HelperAgent/RequestHandler.h +2139 -0
  485. data/ext/common/agents/HelperAgent/ScgiRequestParser.h +451 -0
  486. data/ext/common/{LoggingAgent → agents/LoggingAgent}/DataStoreId.h +1 -1
  487. data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.cpp +1 -1
  488. data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.h +0 -0
  489. data/ext/common/{LoggingAgent → agents/LoggingAgent}/LoggingServer.h +18 -16
  490. data/ext/common/{LoggingAgent → agents/LoggingAgent}/Main.cpp +15 -13
  491. data/ext/common/{LoggingAgent → agents/LoggingAgent}/RemoteSender.h +6 -6
  492. data/ext/common/agents/SpawnPreparer.cpp +127 -0
  493. data/ext/common/{Watchdog.cpp → agents/Watchdog/Main.cpp} +63 -25
  494. data/ext/libeio/Changes +72 -0
  495. data/ext/{google/COPYING → libeio/LICENSE} +17 -9
  496. data/ext/libeio/Makefile.am +15 -0
  497. data/ext/libeio/Makefile.in +694 -0
  498. data/ext/libeio/aclocal.m4 +9418 -0
  499. data/ext/libeio/autogen.sh +3 -0
  500. data/ext/libeio/config.guess +1501 -0
  501. data/ext/libeio/config.h.in +136 -0
  502. data/ext/libeio/config.sub +1705 -0
  503. data/ext/libeio/configure +14822 -0
  504. data/ext/libeio/configure.ac +22 -0
  505. data/ext/libeio/demo.c +194 -0
  506. data/ext/libeio/ecb.h +457 -0
  507. data/ext/libeio/eio.c +2816 -0
  508. data/ext/libeio/eio.h +411 -0
  509. data/ext/libeio/install-sh +520 -0
  510. data/ext/libeio/libeio.m4 +211 -0
  511. data/ext/libeio/ltmain.sh +9636 -0
  512. data/ext/libeio/missing +376 -0
  513. data/ext/libeio/xthread.h +166 -0
  514. data/ext/libev/Changes +125 -7
  515. data/ext/libev/Makefile.am +5 -3
  516. data/ext/libev/Makefile.in +209 -120
  517. data/ext/libev/aclocal.m4 +6027 -4619
  518. data/ext/libev/autogen.sh +1 -4
  519. data/ext/libev/config.h.in +11 -7
  520. data/ext/libev/configure +7312 -14993
  521. data/ext/libev/configure.ac +12 -5
  522. data/ext/libev/depcomp +630 -0
  523. data/ext/libev/ev++.h +48 -32
  524. data/ext/libev/ev.c +1173 -391
  525. data/ext/libev/ev.h +315 -181
  526. data/ext/libev/ev_epoll.c +66 -15
  527. data/ext/libev/ev_kqueue.c +20 -18
  528. data/ext/libev/ev_poll.c +27 -23
  529. data/ext/libev/ev_port.c +39 -19
  530. data/ext/libev/ev_select.c +23 -17
  531. data/ext/libev/ev_vars.h +25 -8
  532. data/ext/libev/ev_win32.c +6 -6
  533. data/ext/libev/ev_wrap.h +22 -2
  534. data/ext/libev/event.c +18 -17
  535. data/ext/libev/event.h +16 -4
  536. data/ext/libev/libev.m4 +10 -6
  537. data/ext/libev/ltmain.sh +7353 -5811
  538. data/ext/nginx/Configuration.c +74 -42
  539. data/ext/nginx/Configuration.h +3 -5
  540. data/ext/nginx/ContentHandler.c +26 -83
  541. data/ext/nginx/ContentHandler.h +1 -1
  542. data/ext/nginx/config +13 -9
  543. data/ext/nginx/ngx_http_passenger_module.c +3 -7
  544. data/ext/oxt/detail/backtrace_enabled.hpp +5 -102
  545. data/ext/oxt/detail/context.hpp +90 -0
  546. data/ext/oxt/detail/spin_lock_darwin.hpp +4 -0
  547. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +4 -0
  548. data/ext/oxt/detail/spin_lock_pthreads.hpp +14 -0
  549. data/ext/oxt/detail/tracable_exception_enabled.hpp +2 -2
  550. data/ext/oxt/dynamic_thread_group.hpp +27 -1
  551. data/ext/oxt/implementation.cpp +415 -0
  552. data/ext/oxt/{thread.cpp → initialize.hpp} +13 -6
  553. data/ext/oxt/macros.hpp +32 -1
  554. data/ext/oxt/spin_lock.hpp +6 -11
  555. data/ext/oxt/system_calls.cpp +204 -16
  556. data/ext/oxt/system_calls.hpp +85 -45
  557. data/ext/oxt/thread.hpp +13 -117
  558. data/ext/ruby/passenger_native_support.c +82 -237
  559. data/helper-scripts/backtrace-sanitizer.rb +114 -0
  560. data/helper-scripts/classic-rails-loader.rb +135 -0
  561. data/helper-scripts/classic-rails-preloader.rb +161 -0
  562. data/helper-scripts/node-loader.js +314 -0
  563. data/helper-scripts/rack-loader.rb +104 -0
  564. data/helper-scripts/rack-preloader.rb +132 -0
  565. data/helper-scripts/wsgi-loader.py +231 -0
  566. data/helper-scripts/wsgi-preloader.py +1 -0
  567. data/lib/phusion_passenger.rb +159 -61
  568. data/lib/phusion_passenger/abstract_installer.rb +182 -87
  569. data/lib/phusion_passenger/admin_tools/server_instance.rb +25 -19
  570. data/lib/phusion_passenger/analytics_logger.rb +5 -4
  571. data/lib/phusion_passenger/classic_rails/{request_handler.rb → thread_handler_extension.rb} +4 -40
  572. data/lib/phusion_passenger/classic_rails_extensions/init.rb +5 -3
  573. data/lib/phusion_passenger/common_library.rb +441 -0
  574. data/lib/phusion_passenger/console_text_template.rb +4 -16
  575. data/lib/phusion_passenger/constants.rb +1 -8
  576. data/lib/phusion_passenger/debug_logging.rb +5 -2
  577. data/lib/phusion_passenger/dependencies.rb +51 -13
  578. data/lib/phusion_passenger/loader_shared_helpers.rb +318 -0
  579. data/lib/phusion_passenger/message_channel.rb +3 -47
  580. data/lib/phusion_passenger/message_client.rb +2 -2
  581. data/lib/phusion_passenger/native_support.rb +36 -15
  582. data/lib/phusion_passenger/packaging.rb +8 -11
  583. data/lib/phusion_passenger/platform_info.rb +25 -17
  584. data/lib/phusion_passenger/platform_info/apache.rb +10 -7
  585. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +10 -30
  586. data/lib/phusion_passenger/platform_info/compiler.rb +93 -34
  587. data/lib/phusion_passenger/platform_info/ruby.rb +37 -97
  588. data/lib/phusion_passenger/preloader_shared_helpers.rb +121 -0
  589. data/lib/phusion_passenger/public_api.rb +1 -4
  590. data/lib/phusion_passenger/rack/{request_handler.rb → thread_handler_extension.rb} +14 -63
  591. data/lib/phusion_passenger/rails3_extensions/init.rb +9 -8
  592. data/lib/phusion_passenger/request_handler.rb +500 -0
  593. data/lib/phusion_passenger/request_handler/thread_handler.rb +360 -0
  594. data/lib/phusion_passenger/ruby_core_enhancements.rb +142 -0
  595. data/lib/phusion_passenger/standalone/command.rb +36 -15
  596. data/lib/phusion_passenger/standalone/package_runtime_command.rb +16 -8
  597. data/lib/phusion_passenger/standalone/runtime_installer.rb +169 -72
  598. data/lib/phusion_passenger/standalone/start_command.rb +44 -39
  599. data/lib/phusion_passenger/standalone/utils.rb +5 -5
  600. data/lib/phusion_passenger/utils.rb +35 -914
  601. data/lib/phusion_passenger/utils/ansi_colors.rb +59 -0
  602. data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
  603. data/lib/phusion_passenger/utils/robust_interruption.rb +134 -0
  604. data/lib/phusion_passenger/utils/tee_input.rb +174 -0
  605. data/lib/phusion_passenger/utils/tmpio.rb +33 -0
  606. data/lib/phusion_passenger/utils/unseekable_socket.rb +6 -0
  607. data/resources/mime.types +5 -1
  608. data/{lib/phusion_passenger/templates → resources}/standalone_default_root/index.html +0 -0
  609. data/{lib/phusion_passenger → resources}/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
  610. data/{lib/phusion_passenger → resources}/templates/apache2/config_snippets.txt.erb +0 -0
  611. data/{lib/phusion_passenger → resources}/templates/apache2/deployment_example.txt.erb +0 -0
  612. data/{lib/phusion_passenger → resources}/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -0
  613. data/{lib/phusion_passenger → resources}/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
  614. data/{lib/phusion_passenger → resources}/templates/apache2/run_installer_as_root.txt.erb +0 -0
  615. data/{lib/phusion_passenger → resources}/templates/apache2/welcome.txt.erb +0 -0
  616. data/{lib/phusion_passenger → resources}/templates/error_layout.css +6 -0
  617. data/resources/templates/error_layout.html.template +89 -0
  618. data/resources/templates/general_error.html.template +1 -0
  619. data/resources/templates/general_error_with_html.html.template +1 -0
  620. data/{lib/phusion_passenger → resources}/templates/nginx/ask_for_extra_configure_flags.txt.erb +0 -0
  621. data/{lib/phusion_passenger → resources}/templates/nginx/cannot_write_to_dir.txt.erb +0 -0
  622. data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets.txt.erb +0 -0
  623. data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets_inserted.txt.erb +0 -0
  624. data/{lib/phusion_passenger → resources}/templates/nginx/confirm_extra_configure_flags.txt.erb +0 -0
  625. data/{lib/phusion_passenger → resources}/templates/nginx/deployment_example.txt.erb +0 -0
  626. data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +8 -0
  627. data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_downloaded.txt.erb +0 -0
  628. data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_extracted.txt.erb +0 -0
  629. data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
  630. data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
  631. data/{lib/phusion_passenger → resources}/templates/nginx/query_download_and_install.txt.erb +0 -0
  632. data/{lib/phusion_passenger → resources}/templates/nginx/run_installer_as_root.txt.erb +0 -0
  633. data/{lib/phusion_passenger → resources}/templates/nginx/welcome.txt.erb +0 -0
  634. data/{lib/phusion_passenger → resources}/templates/standalone/cannot_write_to_dir.txt.erb +0 -0
  635. data/{lib/phusion_passenger → resources}/templates/standalone/config.erb +26 -5
  636. data/{lib/phusion_passenger → resources}/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
  637. data/{lib/phusion_passenger → resources}/templates/standalone/run_installer_as_root.txt.erb +0 -0
  638. data/{lib/phusion_passenger → resources}/templates/standalone/welcome.txt.erb +0 -0
  639. data/resources/templates/undisclosed_error.html.template +25 -0
  640. data/test/config.json.example +42 -0
  641. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +86 -0
  642. data/test/cxx/ApplicationPool2/OptionsTest.cpp +44 -0
  643. data/test/cxx/ApplicationPool2/PoolTest.cpp +1234 -0
  644. data/test/cxx/ApplicationPool2/ProcessTest.cpp +131 -0
  645. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +229 -0
  646. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +744 -0
  647. data/test/cxx/BufferedIOTest.cpp +7 -7
  648. data/test/cxx/CxxTestMain.cpp +65 -2
  649. data/test/cxx/FileBackedPipeTest.cpp +626 -0
  650. data/test/cxx/FileChangeCheckerTest.cpp +20 -18
  651. data/test/cxx/FilterSupportTest.cpp +5 -5
  652. data/test/cxx/IOUtilsTest.cpp +11 -4
  653. data/test/cxx/MessageReadersWritersTest.cpp +1 -1
  654. data/test/cxx/MessageServerTest.cpp +31 -30
  655. data/test/cxx/RequestHandlerTest.cpp +777 -0
  656. data/test/cxx/ScgiRequestParserTest.cpp +36 -16
  657. data/test/cxx/ServerInstanceDirTest.cpp +1 -1
  658. data/test/cxx/StringMapTest.cpp +61 -0
  659. data/test/cxx/TemplateTest.cpp +118 -0
  660. data/test/cxx/TestSupport.cpp +25 -68
  661. data/test/cxx/TestSupport.h +81 -41
  662. data/test/cxx/{LoggingTest.cpp → UnionStationTest.cpp} +79 -74
  663. data/test/cxx/UtilsTest.cpp +59 -5
  664. data/test/integration_tests/apache2_tests.rb +2 -2
  665. data/test/integration_tests/nginx_tests.rb +1 -1
  666. data/test/integration_tests/spec_helper.rb +7 -5
  667. data/test/oxt/oxt_test_main.cpp +2 -0
  668. data/test/oxt/syscall_interruption_test.cpp +1 -0
  669. data/test/ruby/classic_rails/loader_spec.rb +48 -0
  670. data/test/ruby/classic_rails/preloader_spec.rb +54 -0
  671. data/test/ruby/rack/loader_spec.rb +62 -0
  672. data/test/ruby/rack/preloader_spec.rb +74 -0
  673. data/test/ruby/{abstract_request_handler_spec.rb → request_handler_spec.rb} +31 -68
  674. data/test/ruby/shared/loader_spec.rb +241 -0
  675. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +141 -182
  676. data/test/ruby/shared/ruby_loader_spec.rb +55 -0
  677. data/test/ruby/spec_helper.rb +8 -53
  678. data/test/ruby/utils/file_system_watcher_spec.rb +9 -1
  679. data/test/ruby/utils_spec.rb +10 -683
  680. data/test/stub/rack/config.ru +28 -3
  681. data/test/stub/rack/start.rb +47 -0
  682. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/Rakefile +0 -0
  683. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/application_controller.rb +0 -2
  684. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_1.rb +0 -0
  685. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_2.rb +0 -0
  686. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/foo_controller.rb +0 -0
  687. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/helpers/application_helper.rb +0 -0
  688. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/boot.rb +0 -0
  689. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/database.yml +3 -3
  690. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environment.rb +5 -2
  691. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/development.rb +0 -0
  692. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/production.rb +0 -0
  693. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/staging.rb +0 -0
  694. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/inflections.rb +0 -0
  695. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/mime_types.rb +0 -0
  696. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/routes.rb +1 -0
  697. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/about +0 -0
  698. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/console +0 -0
  699. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/dbconsole +0 -0
  700. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/destroy +0 -0
  701. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/generate +0 -0
  702. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/benchmarker +0 -0
  703. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/profiler +0 -0
  704. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/request +0 -0
  705. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/plugin +0 -0
  706. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/inspector +0 -0
  707. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/reaper +0 -0
  708. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/spawner +0 -0
  709. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/runner +0 -0
  710. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/server +0 -0
  711. data/test/stub/{rails_apps/3.0/empty → rails3.0}/Gemfile +0 -0
  712. data/test/stub/rails3.0/Gemfile.lock +80 -0
  713. data/test/stub/{rails_apps/3.0/empty → rails3.0}/Rakefile +0 -0
  714. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/controllers/application_controller.rb +0 -0
  715. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/helpers/application_helper.rb +0 -0
  716. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/views/layouts/application.html.erb +0 -0
  717. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config.ru +0 -0
  718. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/application.rb +0 -0
  719. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/boot.rb +0 -0
  720. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/database.yml +0 -0
  721. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environment.rb +0 -0
  722. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/development.rb +0 -0
  723. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/production.rb +0 -0
  724. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/test.rb +0 -0
  725. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/backtrace_silencers.rb +0 -0
  726. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/inflections.rb +0 -0
  727. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/mime_types.rb +0 -0
  728. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/passenger.rb +0 -0
  729. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/secret_token.rb +0 -0
  730. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/session_store.rb +0 -0
  731. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/locales/en.yml +0 -0
  732. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/routes.rb +0 -0
  733. data/test/stub/{rails_apps/3.0/empty → rails3.0}/db/seeds.rb +0 -0
  734. data/test/stub/{rails_apps/3.0/empty → rails3.0}/doc/README_FOR_APP +0 -0
  735. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/404.html +0 -0
  736. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/422.html +0 -0
  737. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/500.html +0 -0
  738. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/favicon.ico +0 -0
  739. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/index.html +0 -0
  740. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/robots.txt +0 -0
  741. data/test/stub/{rails_apps/3.0/empty → rails3.0}/script/rails +0 -0
  742. data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/performance/browsing_test.rb +0 -0
  743. data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/test_helper.rb +0 -0
  744. data/test/stub/start_error.pl +24 -0
  745. data/test/stub/wsgi/passenger_wsgi.py +71 -3
  746. data/test/support/apache2_controller.rb +2 -2
  747. data/test/support/placebo-preloader.rb +88 -0
  748. data/test/support/test_helper.rb +1 -14
  749. data/test/tut/tut.h +11 -4
  750. metadata +590 -326
  751. data.tar.gz.asc +0 -12
  752. data/PACKAGING.TXT +0 -25
  753. data/build/config.rb +0 -46
  754. data/ext/apache2/HelperAgent.cpp +0 -364
  755. data/ext/boost/call_traits.hpp +0 -24
  756. data/ext/boost/detail/call_traits.hpp +0 -164
  757. data/ext/common/AbstractSpawnManager.h +0 -110
  758. data/ext/common/AgentBase.cpp +0 -432
  759. data/ext/common/ApplicationPool/Client.h +0 -788
  760. data/ext/common/ApplicationPool/Interface.h +0 -295
  761. data/ext/common/ApplicationPool/Pool.h +0 -1327
  762. data/ext/common/ApplicationPool/Server.h +0 -479
  763. data/ext/common/MessageChannel.h +0 -494
  764. data/ext/common/PoolOptions.h +0 -518
  765. data/ext/common/Process.h +0 -253
  766. data/ext/common/Session.h +0 -436
  767. data/ext/common/SpawnManager.h +0 -611
  768. data/ext/google/ChangeLog +0 -167
  769. data/ext/google/dense_hash_map +0 -310
  770. data/ext/google/dense_hash_set +0 -287
  771. data/ext/google/sparse_hash_map +0 -294
  772. data/ext/google/sparse_hash_set +0 -275
  773. data/ext/google/sparsehash/densehashtable.h +0 -1062
  774. data/ext/google/sparsehash/sparseconfig.h +0 -55
  775. data/ext/google/sparsehash/sparsehashtable.h +0 -1015
  776. data/ext/google/sparsetable +0 -1468
  777. data/ext/google/type_traits.h +0 -250
  778. data/ext/nginx/HelperAgent.cpp +0 -1355
  779. data/ext/nginx/ScgiRequestParser.h +0 -375
  780. data/ext/oxt/backtrace.cpp +0 -185
  781. data/ext/oxt/tracable_exception.cpp +0 -89
  782. data/helper-scripts/passenger-spawn-server +0 -106
  783. data/lib/phusion_passenger/abstract_request_handler.rb +0 -766
  784. data/lib/phusion_passenger/abstract_server.rb +0 -372
  785. data/lib/phusion_passenger/abstract_server_collection.rb +0 -335
  786. data/lib/phusion_passenger/app_process.rb +0 -174
  787. data/lib/phusion_passenger/classic_rails/application_spawner.rb +0 -344
  788. data/lib/phusion_passenger/classic_rails/framework_spawner.rb +0 -311
  789. data/lib/phusion_passenger/exceptions.rb +0 -103
  790. data/lib/phusion_passenger/html_template.rb +0 -107
  791. data/lib/phusion_passenger/rack/application_spawner.rb +0 -231
  792. data/lib/phusion_passenger/spawn_manager.rb +0 -359
  793. data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +0 -38
  794. data/lib/phusion_passenger/templates/app_init_error.html.erb +0 -64
  795. data/lib/phusion_passenger/templates/database_error.html.erb +0 -66
  796. data/lib/phusion_passenger/templates/error_layout.html.erb +0 -39
  797. data/lib/phusion_passenger/templates/framework_init_error.html.erb +0 -39
  798. data/lib/phusion_passenger/templates/general_error.html.erb +0 -22
  799. data/lib/phusion_passenger/templates/load_error.html.erb +0 -46
  800. data/lib/phusion_passenger/templates/version_not_found.html.erb +0 -34
  801. data/lib/phusion_passenger/utils/rewindable_input.rb +0 -125
  802. data/lib/phusion_passenger/wsgi/application_spawner.rb +0 -108
  803. data/test/config.yml.example +0 -41
  804. data/test/cxx/ApplicationPool_PoolTest.cpp +0 -33
  805. data/test/cxx/ApplicationPool_PoolTestCases.cpp +0 -1029
  806. data/test/cxx/ApplicationPool_ServerTest.cpp +0 -308
  807. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +0 -80
  808. data/test/cxx/MessageChannelTest.cpp +0 -557
  809. data/test/cxx/PoolOptionsTest.cpp +0 -116
  810. data/test/cxx/SpawnManagerTest.cpp +0 -161
  811. data/test/ruby/abstract_server_collection_spec.rb +0 -247
  812. data/test/ruby/abstract_server_spec.rb +0 -61
  813. data/test/ruby/app_process_spec.rb +0 -43
  814. data/test/ruby/classic_rails/application_spawner_spec.rb +0 -89
  815. data/test/ruby/classic_rails/framework_spawner_spec.rb +0 -92
  816. data/test/ruby/rack/application_spawner_spec.rb +0 -116
  817. data/test/ruby/shared/abstract_server_spec.rb +0 -23
  818. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +0 -38
  819. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +0 -19
  820. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +0 -15
  821. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +0 -27
  822. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +0 -29
  823. data/test/ruby/shared/spawners/reload_all_spec.rb +0 -36
  824. data/test/ruby/shared/spawners/reload_single_spec.rb +0 -52
  825. data/test/ruby/shared/spawners/spawn_server_spec.rb +0 -28
  826. data/test/ruby/shared/spawners/spawner_spec.rb +0 -273
  827. data/test/ruby/shared/utils/pseudo_io_spec.rb +0 -60
  828. data/test/ruby/spawn_manager_spec.rb +0 -134
  829. data/test/ruby/wsgi/application_spawner_spec.rb +0 -50
  830. data/test/stub/message_channel.rb +0 -11
  831. data/test/stub/message_channel_2.rb +0 -12
  832. data/test/stub/message_channel_3.rb +0 -19
  833. data/test/stub/rails_apps/3.0/empty/Gemfile.lock +0 -73
  834. data/test/stub/spawn_server.rb +0 -22
  835. metadata.gz.asc +0 -12
@@ -0,0 +1,136 @@
1
+ /* config.h.in. Generated from configure.ac by autoheader. */
2
+
3
+ /* Define to 1 if you have the <dlfcn.h> header file. */
4
+ #undef HAVE_DLFCN_H
5
+
6
+ /* fallocate(2) is available */
7
+ #undef HAVE_FALLOCATE
8
+
9
+ /* fdatasync(2) is available */
10
+ #undef HAVE_FDATASYNC
11
+
12
+ /* futimes(2) is available */
13
+ #undef HAVE_FUTIMES
14
+
15
+ /* Define to 1 if you have the <inttypes.h> header file. */
16
+ #undef HAVE_INTTYPES_H
17
+
18
+ /* Define to 1 if you have the <memory.h> header file. */
19
+ #undef HAVE_MEMORY_H
20
+
21
+ /* posix_fadvise(2) is available */
22
+ #undef HAVE_POSIX_FADVISE
23
+
24
+ /* posix_madvise(2) is available */
25
+ #undef HAVE_POSIX_MADVISE
26
+
27
+ /* prctl(PR_SET_NAME) is available */
28
+ #undef HAVE_PRCTL_SET_NAME
29
+
30
+ /* pread(2) and pwrite(2) are available */
31
+ #undef HAVE_PREADWRITE
32
+
33
+ /* readahead(2) is available (linux) */
34
+ #undef HAVE_READAHEAD
35
+
36
+ /* sendfile(2) is available and supported */
37
+ #undef HAVE_SENDFILE
38
+
39
+ /* Define to 1 if you have the <stdint.h> header file. */
40
+ #undef HAVE_STDINT_H
41
+
42
+ /* Define to 1 if you have the <stdlib.h> header file. */
43
+ #undef HAVE_STDLIB_H
44
+
45
+ /* Define to 1 if you have the <strings.h> header file. */
46
+ #undef HAVE_STRINGS_H
47
+
48
+ /* Define to 1 if you have the <string.h> header file. */
49
+ #undef HAVE_STRING_H
50
+
51
+ /* sync_file_range(2) is available */
52
+ #undef HAVE_SYNC_FILE_RANGE
53
+
54
+ /* Define to 1 if you have the <sys/prctl.h> header file. */
55
+ #undef HAVE_SYS_PRCTL_H
56
+
57
+ /* Define to 1 if you have the <sys/stat.h> header file. */
58
+ #undef HAVE_SYS_STAT_H
59
+
60
+ /* syscall(__NR_syncfs) is available */
61
+ #undef HAVE_SYS_SYNCFS
62
+
63
+ /* Define to 1 if you have the <sys/syscall.h> header file. */
64
+ #undef HAVE_SYS_SYSCALL_H
65
+
66
+ /* Define to 1 if you have the <sys/types.h> header file. */
67
+ #undef HAVE_SYS_TYPES_H
68
+
69
+ /* Define to 1 if you have the <unistd.h> header file. */
70
+ #undef HAVE_UNISTD_H
71
+
72
+ /* utimes(2) is available */
73
+ #undef HAVE_UTIMES
74
+
75
+ /* Define to the sub-directory in which libtool stores uninstalled libraries.
76
+ */
77
+ #undef LT_OBJDIR
78
+
79
+ /* Name of package */
80
+ #undef PACKAGE
81
+
82
+ /* Define to the address where bug reports for this package should be sent. */
83
+ #undef PACKAGE_BUGREPORT
84
+
85
+ /* Define to the full name of this package. */
86
+ #undef PACKAGE_NAME
87
+
88
+ /* Define to the full name and version of this package. */
89
+ #undef PACKAGE_STRING
90
+
91
+ /* Define to the one symbol short name of this package. */
92
+ #undef PACKAGE_TARNAME
93
+
94
+ /* Define to the home page for this package. */
95
+ #undef PACKAGE_URL
96
+
97
+ /* Define to the version of this package. */
98
+ #undef PACKAGE_VERSION
99
+
100
+ /* Define to 1 if you have the ANSI C header files. */
101
+ #undef STDC_HEADERS
102
+
103
+ /* Enable extensions on AIX 3, Interix. */
104
+ #ifndef _ALL_SOURCE
105
+ # undef _ALL_SOURCE
106
+ #endif
107
+ /* Enable GNU extensions on systems that have them. */
108
+ #ifndef _GNU_SOURCE
109
+ # undef _GNU_SOURCE
110
+ #endif
111
+ /* Enable threading extensions on Solaris. */
112
+ #ifndef _POSIX_PTHREAD_SEMANTICS
113
+ # undef _POSIX_PTHREAD_SEMANTICS
114
+ #endif
115
+ /* Enable extensions on HP NonStop. */
116
+ #ifndef _TANDEM_SOURCE
117
+ # undef _TANDEM_SOURCE
118
+ #endif
119
+ /* Enable general extensions on Solaris. */
120
+ #ifndef __EXTENSIONS__
121
+ # undef __EXTENSIONS__
122
+ #endif
123
+
124
+
125
+ /* Version number of package */
126
+ #undef VERSION
127
+
128
+ /* Define to 1 if on MINIX. */
129
+ #undef _MINIX
130
+
131
+ /* Define to 2 if the system does not provide POSIX.1 features except with
132
+ this defined. */
133
+ #undef _POSIX_1_SOURCE
134
+
135
+ /* Define to 1 if you need to in order for `stat' and other things to work. */
136
+ #undef _POSIX_SOURCE
@@ -0,0 +1,1705 @@
1
+ #! /bin/sh
2
+ # Configuration validation subroutine script.
3
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
+ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5
+ # Free Software Foundation, Inc.
6
+
7
+ timestamp='2009-11-20'
8
+
9
+ # This file is (in principle) common to ALL GNU software.
10
+ # The presence of a machine in this file suggests that SOME GNU software
11
+ # can handle that machine. It does not imply ALL GNU software can.
12
+ #
13
+ # This file is free software; you can redistribute it and/or modify
14
+ # it under the terms of the GNU General Public License as published by
15
+ # the Free Software Foundation; either version 2 of the License, or
16
+ # (at your option) any later version.
17
+ #
18
+ # This program is distributed in the hope that it will be useful,
19
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
+ # GNU General Public License for more details.
22
+ #
23
+ # You should have received a copy of the GNU General Public License
24
+ # along with this program; if not, write to the Free Software
25
+ # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
26
+ # 02110-1301, USA.
27
+ #
28
+ # As a special exception to the GNU General Public License, if you
29
+ # distribute this file as part of a program that contains a
30
+ # configuration script generated by Autoconf, you may include it under
31
+ # the same distribution terms that you use for the rest of that program.
32
+
33
+
34
+ # Please send patches to <config-patches@gnu.org>. Submit a context
35
+ # diff and a properly formatted GNU ChangeLog entry.
36
+ #
37
+ # Configuration subroutine to validate and canonicalize a configuration type.
38
+ # Supply the specified configuration type as an argument.
39
+ # If it is invalid, we print an error message on stderr and exit with code 1.
40
+ # Otherwise, we print the canonical config type on stdout and succeed.
41
+
42
+ # You can get the latest version of this script from:
43
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44
+
45
+ # This file is supposed to be the same for all GNU packages
46
+ # and recognize all the CPU types, system types and aliases
47
+ # that are meaningful with *any* GNU software.
48
+ # Each package is responsible for reporting which valid configurations
49
+ # it does not support. The user should be able to distinguish
50
+ # a failure to support a valid configuration from a meaningless
51
+ # configuration.
52
+
53
+ # The goal of this file is to map all the various variations of a given
54
+ # machine specification into a single specification in the form:
55
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
56
+ # or in some cases, the newer four-part form:
57
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
58
+ # It is wrong to echo any other type of specification.
59
+
60
+ me=`echo "$0" | sed -e 's,.*/,,'`
61
+
62
+ usage="\
63
+ Usage: $0 [OPTION] CPU-MFR-OPSYS
64
+ $0 [OPTION] ALIAS
65
+
66
+ Canonicalize a configuration name.
67
+
68
+ Operation modes:
69
+ -h, --help print this help, then exit
70
+ -t, --time-stamp print date of last modification, then exit
71
+ -v, --version print version number, then exit
72
+
73
+ Report bugs and patches to <config-patches@gnu.org>."
74
+
75
+ version="\
76
+ GNU config.sub ($timestamp)
77
+
78
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
79
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
80
+
81
+ This is free software; see the source for copying conditions. There is NO
82
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
83
+
84
+ help="
85
+ Try \`$me --help' for more information."
86
+
87
+ # Parse command line
88
+ while test $# -gt 0 ; do
89
+ case $1 in
90
+ --time-stamp | --time* | -t )
91
+ echo "$timestamp" ; exit ;;
92
+ --version | -v )
93
+ echo "$version" ; exit ;;
94
+ --help | --h* | -h )
95
+ echo "$usage"; exit ;;
96
+ -- ) # Stop option processing
97
+ shift; break ;;
98
+ - ) # Use stdin as input.
99
+ break ;;
100
+ -* )
101
+ echo "$me: invalid option $1$help"
102
+ exit 1 ;;
103
+
104
+ *local*)
105
+ # First pass through any local machine types.
106
+ echo $1
107
+ exit ;;
108
+
109
+ * )
110
+ break ;;
111
+ esac
112
+ done
113
+
114
+ case $# in
115
+ 0) echo "$me: missing argument$help" >&2
116
+ exit 1;;
117
+ 1) ;;
118
+ *) echo "$me: too many arguments$help" >&2
119
+ exit 1;;
120
+ esac
121
+
122
+ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
123
+ # Here we must recognize all the valid KERNEL-OS combinations.
124
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
125
+ case $maybe_os in
126
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
127
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
128
+ kopensolaris*-gnu* | \
129
+ storm-chaos* | os2-emx* | rtmk-nova*)
130
+ os=-$maybe_os
131
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
132
+ ;;
133
+ *)
134
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
135
+ if [ $basic_machine != $1 ]
136
+ then os=`echo $1 | sed 's/.*-/-/'`
137
+ else os=; fi
138
+ ;;
139
+ esac
140
+
141
+ ### Let's recognize common machines as not being operating systems so
142
+ ### that things like config.sub decstation-3100 work. We also
143
+ ### recognize some manufacturers as not being operating systems, so we
144
+ ### can provide default operating systems below.
145
+ case $os in
146
+ -sun*os*)
147
+ # Prevent following clause from handling this invalid input.
148
+ ;;
149
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
150
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
151
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
152
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
153
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
154
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
155
+ -apple | -axis | -knuth | -cray | -microblaze)
156
+ os=
157
+ basic_machine=$1
158
+ ;;
159
+ -bluegene*)
160
+ os=-cnk
161
+ ;;
162
+ -sim | -cisco | -oki | -wec | -winbond)
163
+ os=
164
+ basic_machine=$1
165
+ ;;
166
+ -scout)
167
+ ;;
168
+ -wrs)
169
+ os=-vxworks
170
+ basic_machine=$1
171
+ ;;
172
+ -chorusos*)
173
+ os=-chorusos
174
+ basic_machine=$1
175
+ ;;
176
+ -chorusrdb)
177
+ os=-chorusrdb
178
+ basic_machine=$1
179
+ ;;
180
+ -hiux*)
181
+ os=-hiuxwe2
182
+ ;;
183
+ -sco6)
184
+ os=-sco5v6
185
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
186
+ ;;
187
+ -sco5)
188
+ os=-sco3.2v5
189
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
190
+ ;;
191
+ -sco4)
192
+ os=-sco3.2v4
193
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
194
+ ;;
195
+ -sco3.2.[4-9]*)
196
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
197
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
198
+ ;;
199
+ -sco3.2v[4-9]*)
200
+ # Don't forget version if it is 3.2v4 or newer.
201
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202
+ ;;
203
+ -sco5v6*)
204
+ # Don't forget version if it is 3.2v4 or newer.
205
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
206
+ ;;
207
+ -sco*)
208
+ os=-sco3.2v2
209
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210
+ ;;
211
+ -udk*)
212
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
213
+ ;;
214
+ -isc)
215
+ os=-isc2.2
216
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
217
+ ;;
218
+ -clix*)
219
+ basic_machine=clipper-intergraph
220
+ ;;
221
+ -isc*)
222
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
223
+ ;;
224
+ -lynx*)
225
+ os=-lynxos
226
+ ;;
227
+ -ptx*)
228
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
229
+ ;;
230
+ -windowsnt*)
231
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
232
+ ;;
233
+ -psos*)
234
+ os=-psos
235
+ ;;
236
+ -mint | -mint[0-9]*)
237
+ basic_machine=m68k-atari
238
+ os=-mint
239
+ ;;
240
+ esac
241
+
242
+ # Decode aliases for certain CPU-COMPANY combinations.
243
+ case $basic_machine in
244
+ # Recognize the basic CPU types without company name.
245
+ # Some are omitted here because they have special meanings below.
246
+ 1750a | 580 \
247
+ | a29k \
248
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
249
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
250
+ | am33_2.0 \
251
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
252
+ | bfin \
253
+ | c4x | clipper \
254
+ | d10v | d30v | dlx | dsp16xx \
255
+ | fido | fr30 | frv \
256
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
257
+ | i370 | i860 | i960 | ia64 \
258
+ | ip2k | iq2000 \
259
+ | lm32 \
260
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
261
+ | maxq | mb | microblaze | mcore | mep | metag \
262
+ | mips | mipsbe | mipseb | mipsel | mipsle \
263
+ | mips16 \
264
+ | mips64 | mips64el \
265
+ | mips64octeon | mips64octeonel \
266
+ | mips64orion | mips64orionel \
267
+ | mips64r5900 | mips64r5900el \
268
+ | mips64vr | mips64vrel \
269
+ | mips64vr4100 | mips64vr4100el \
270
+ | mips64vr4300 | mips64vr4300el \
271
+ | mips64vr5000 | mips64vr5000el \
272
+ | mips64vr5900 | mips64vr5900el \
273
+ | mipsisa32 | mipsisa32el \
274
+ | mipsisa32r2 | mipsisa32r2el \
275
+ | mipsisa64 | mipsisa64el \
276
+ | mipsisa64r2 | mipsisa64r2el \
277
+ | mipsisa64sb1 | mipsisa64sb1el \
278
+ | mipsisa64sr71k | mipsisa64sr71kel \
279
+ | mipstx39 | mipstx39el \
280
+ | mn10200 | mn10300 \
281
+ | moxie \
282
+ | mt \
283
+ | msp430 \
284
+ | nios | nios2 \
285
+ | ns16k | ns32k \
286
+ | or32 \
287
+ | pdp10 | pdp11 | pj | pjl \
288
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
289
+ | pyramid \
290
+ | rx \
291
+ | score \
292
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
293
+ | sh64 | sh64le \
294
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
295
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
296
+ | spu | strongarm \
297
+ | tahoe | thumb | tic4x | tic80 | tron \
298
+ | ubicom32 \
299
+ | v850 | v850e \
300
+ | we32k \
301
+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
302
+ | z8k | z80)
303
+ basic_machine=$basic_machine-unknown
304
+ ;;
305
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
306
+ # Motorola 68HC11/12.
307
+ basic_machine=$basic_machine-unknown
308
+ os=-none
309
+ ;;
310
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
311
+ ;;
312
+ ms1)
313
+ basic_machine=mt-unknown
314
+ ;;
315
+
316
+ # We use `pc' rather than `unknown'
317
+ # because (1) that's what they normally are, and
318
+ # (2) the word "unknown" tends to confuse beginning users.
319
+ i*86 | x86_64)
320
+ basic_machine=$basic_machine-pc
321
+ ;;
322
+ # Object if more than one company name word.
323
+ *-*-*)
324
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
325
+ exit 1
326
+ ;;
327
+ # Recognize the basic CPU types with company name.
328
+ 580-* \
329
+ | a29k-* \
330
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
331
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
332
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
333
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
334
+ | avr-* | avr32-* \
335
+ | bfin-* | bs2000-* \
336
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
337
+ | clipper-* | craynv-* | cydra-* \
338
+ | d10v-* | d30v-* | dlx-* \
339
+ | elxsi-* \
340
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
341
+ | h8300-* | h8500-* \
342
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
343
+ | i*86-* | i860-* | i960-* | ia64-* \
344
+ | ip2k-* | iq2000-* \
345
+ | lm32-* \
346
+ | m32c-* | m32r-* | m32rle-* \
347
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
348
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
349
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
350
+ | mips16-* \
351
+ | mips64-* | mips64el-* \
352
+ | mips64octeon-* | mips64octeonel-* \
353
+ | mips64orion-* | mips64orionel-* \
354
+ | mips64r5900-* | mips64r5900el-* \
355
+ | mips64vr-* | mips64vrel-* \
356
+ | mips64vr4100-* | mips64vr4100el-* \
357
+ | mips64vr4300-* | mips64vr4300el-* \
358
+ | mips64vr5000-* | mips64vr5000el-* \
359
+ | mips64vr5900-* | mips64vr5900el-* \
360
+ | mipsisa32-* | mipsisa32el-* \
361
+ | mipsisa32r2-* | mipsisa32r2el-* \
362
+ | mipsisa64-* | mipsisa64el-* \
363
+ | mipsisa64r2-* | mipsisa64r2el-* \
364
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
365
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
366
+ | mipstx39-* | mipstx39el-* \
367
+ | mmix-* \
368
+ | mt-* \
369
+ | msp430-* \
370
+ | nios-* | nios2-* \
371
+ | none-* | np1-* | ns16k-* | ns32k-* \
372
+ | orion-* \
373
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
374
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
375
+ | pyramid-* \
376
+ | romp-* | rs6000-* | rx-* \
377
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
378
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
379
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
380
+ | sparclite-* \
381
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
382
+ | tahoe-* | thumb-* \
383
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
384
+ | tron-* \
385
+ | ubicom32-* \
386
+ | v850-* | v850e-* | vax-* \
387
+ | we32k-* \
388
+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
389
+ | xstormy16-* | xtensa*-* \
390
+ | ymp-* \
391
+ | z8k-* | z80-*)
392
+ ;;
393
+ # Recognize the basic CPU types without company name, with glob match.
394
+ xtensa*)
395
+ basic_machine=$basic_machine-unknown
396
+ ;;
397
+ # Recognize the various machine names and aliases which stand
398
+ # for a CPU type and a company and sometimes even an OS.
399
+ 386bsd)
400
+ basic_machine=i386-unknown
401
+ os=-bsd
402
+ ;;
403
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
404
+ basic_machine=m68000-att
405
+ ;;
406
+ 3b*)
407
+ basic_machine=we32k-att
408
+ ;;
409
+ a29khif)
410
+ basic_machine=a29k-amd
411
+ os=-udi
412
+ ;;
413
+ abacus)
414
+ basic_machine=abacus-unknown
415
+ ;;
416
+ adobe68k)
417
+ basic_machine=m68010-adobe
418
+ os=-scout
419
+ ;;
420
+ alliant | fx80)
421
+ basic_machine=fx80-alliant
422
+ ;;
423
+ altos | altos3068)
424
+ basic_machine=m68k-altos
425
+ ;;
426
+ am29k)
427
+ basic_machine=a29k-none
428
+ os=-bsd
429
+ ;;
430
+ amd64)
431
+ basic_machine=x86_64-pc
432
+ ;;
433
+ amd64-*)
434
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
435
+ ;;
436
+ amdahl)
437
+ basic_machine=580-amdahl
438
+ os=-sysv
439
+ ;;
440
+ amiga | amiga-*)
441
+ basic_machine=m68k-unknown
442
+ ;;
443
+ amigaos | amigados)
444
+ basic_machine=m68k-unknown
445
+ os=-amigaos
446
+ ;;
447
+ amigaunix | amix)
448
+ basic_machine=m68k-unknown
449
+ os=-sysv4
450
+ ;;
451
+ apollo68)
452
+ basic_machine=m68k-apollo
453
+ os=-sysv
454
+ ;;
455
+ apollo68bsd)
456
+ basic_machine=m68k-apollo
457
+ os=-bsd
458
+ ;;
459
+ aros)
460
+ basic_machine=i386-pc
461
+ os=-aros
462
+ ;;
463
+ aux)
464
+ basic_machine=m68k-apple
465
+ os=-aux
466
+ ;;
467
+ balance)
468
+ basic_machine=ns32k-sequent
469
+ os=-dynix
470
+ ;;
471
+ blackfin)
472
+ basic_machine=bfin-unknown
473
+ os=-linux
474
+ ;;
475
+ blackfin-*)
476
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
477
+ os=-linux
478
+ ;;
479
+ bluegene*)
480
+ basic_machine=powerpc-ibm
481
+ os=-cnk
482
+ ;;
483
+ c90)
484
+ basic_machine=c90-cray
485
+ os=-unicos
486
+ ;;
487
+ cegcc)
488
+ basic_machine=arm-unknown
489
+ os=-cegcc
490
+ ;;
491
+ convex-c1)
492
+ basic_machine=c1-convex
493
+ os=-bsd
494
+ ;;
495
+ convex-c2)
496
+ basic_machine=c2-convex
497
+ os=-bsd
498
+ ;;
499
+ convex-c32)
500
+ basic_machine=c32-convex
501
+ os=-bsd
502
+ ;;
503
+ convex-c34)
504
+ basic_machine=c34-convex
505
+ os=-bsd
506
+ ;;
507
+ convex-c38)
508
+ basic_machine=c38-convex
509
+ os=-bsd
510
+ ;;
511
+ cray | j90)
512
+ basic_machine=j90-cray
513
+ os=-unicos
514
+ ;;
515
+ craynv)
516
+ basic_machine=craynv-cray
517
+ os=-unicosmp
518
+ ;;
519
+ cr16)
520
+ basic_machine=cr16-unknown
521
+ os=-elf
522
+ ;;
523
+ crds | unos)
524
+ basic_machine=m68k-crds
525
+ ;;
526
+ crisv32 | crisv32-* | etraxfs*)
527
+ basic_machine=crisv32-axis
528
+ ;;
529
+ cris | cris-* | etrax*)
530
+ basic_machine=cris-axis
531
+ ;;
532
+ crx)
533
+ basic_machine=crx-unknown
534
+ os=-elf
535
+ ;;
536
+ da30 | da30-*)
537
+ basic_machine=m68k-da30
538
+ ;;
539
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
540
+ basic_machine=mips-dec
541
+ ;;
542
+ decsystem10* | dec10*)
543
+ basic_machine=pdp10-dec
544
+ os=-tops10
545
+ ;;
546
+ decsystem20* | dec20*)
547
+ basic_machine=pdp10-dec
548
+ os=-tops20
549
+ ;;
550
+ delta | 3300 | motorola-3300 | motorola-delta \
551
+ | 3300-motorola | delta-motorola)
552
+ basic_machine=m68k-motorola
553
+ ;;
554
+ delta88)
555
+ basic_machine=m88k-motorola
556
+ os=-sysv3
557
+ ;;
558
+ dicos)
559
+ basic_machine=i686-pc
560
+ os=-dicos
561
+ ;;
562
+ djgpp)
563
+ basic_machine=i586-pc
564
+ os=-msdosdjgpp
565
+ ;;
566
+ dpx20 | dpx20-*)
567
+ basic_machine=rs6000-bull
568
+ os=-bosx
569
+ ;;
570
+ dpx2* | dpx2*-bull)
571
+ basic_machine=m68k-bull
572
+ os=-sysv3
573
+ ;;
574
+ ebmon29k)
575
+ basic_machine=a29k-amd
576
+ os=-ebmon
577
+ ;;
578
+ elxsi)
579
+ basic_machine=elxsi-elxsi
580
+ os=-bsd
581
+ ;;
582
+ encore | umax | mmax)
583
+ basic_machine=ns32k-encore
584
+ ;;
585
+ es1800 | OSE68k | ose68k | ose | OSE)
586
+ basic_machine=m68k-ericsson
587
+ os=-ose
588
+ ;;
589
+ fx2800)
590
+ basic_machine=i860-alliant
591
+ ;;
592
+ genix)
593
+ basic_machine=ns32k-ns
594
+ ;;
595
+ gmicro)
596
+ basic_machine=tron-gmicro
597
+ os=-sysv
598
+ ;;
599
+ go32)
600
+ basic_machine=i386-pc
601
+ os=-go32
602
+ ;;
603
+ h3050r* | hiux*)
604
+ basic_machine=hppa1.1-hitachi
605
+ os=-hiuxwe2
606
+ ;;
607
+ h8300hms)
608
+ basic_machine=h8300-hitachi
609
+ os=-hms
610
+ ;;
611
+ h8300xray)
612
+ basic_machine=h8300-hitachi
613
+ os=-xray
614
+ ;;
615
+ h8500hms)
616
+ basic_machine=h8500-hitachi
617
+ os=-hms
618
+ ;;
619
+ harris)
620
+ basic_machine=m88k-harris
621
+ os=-sysv3
622
+ ;;
623
+ hp300-*)
624
+ basic_machine=m68k-hp
625
+ ;;
626
+ hp300bsd)
627
+ basic_machine=m68k-hp
628
+ os=-bsd
629
+ ;;
630
+ hp300hpux)
631
+ basic_machine=m68k-hp
632
+ os=-hpux
633
+ ;;
634
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
635
+ basic_machine=hppa1.0-hp
636
+ ;;
637
+ hp9k2[0-9][0-9] | hp9k31[0-9])
638
+ basic_machine=m68000-hp
639
+ ;;
640
+ hp9k3[2-9][0-9])
641
+ basic_machine=m68k-hp
642
+ ;;
643
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
644
+ basic_machine=hppa1.0-hp
645
+ ;;
646
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
647
+ basic_machine=hppa1.1-hp
648
+ ;;
649
+ hp9k78[0-9] | hp78[0-9])
650
+ # FIXME: really hppa2.0-hp
651
+ basic_machine=hppa1.1-hp
652
+ ;;
653
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
654
+ # FIXME: really hppa2.0-hp
655
+ basic_machine=hppa1.1-hp
656
+ ;;
657
+ hp9k8[0-9][13679] | hp8[0-9][13679])
658
+ basic_machine=hppa1.1-hp
659
+ ;;
660
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
661
+ basic_machine=hppa1.0-hp
662
+ ;;
663
+ hppa-next)
664
+ os=-nextstep3
665
+ ;;
666
+ hppaosf)
667
+ basic_machine=hppa1.1-hp
668
+ os=-osf
669
+ ;;
670
+ hppro)
671
+ basic_machine=hppa1.1-hp
672
+ os=-proelf
673
+ ;;
674
+ i370-ibm* | ibm*)
675
+ basic_machine=i370-ibm
676
+ ;;
677
+ # I'm not sure what "Sysv32" means. Should this be sysv3.2?
678
+ i*86v32)
679
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
680
+ os=-sysv32
681
+ ;;
682
+ i*86v4*)
683
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
684
+ os=-sysv4
685
+ ;;
686
+ i*86v)
687
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
688
+ os=-sysv
689
+ ;;
690
+ i*86sol2)
691
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
692
+ os=-solaris2
693
+ ;;
694
+ i386mach)
695
+ basic_machine=i386-mach
696
+ os=-mach
697
+ ;;
698
+ i386-vsta | vsta)
699
+ basic_machine=i386-unknown
700
+ os=-vsta
701
+ ;;
702
+ iris | iris4d)
703
+ basic_machine=mips-sgi
704
+ case $os in
705
+ -irix*)
706
+ ;;
707
+ *)
708
+ os=-irix4
709
+ ;;
710
+ esac
711
+ ;;
712
+ isi68 | isi)
713
+ basic_machine=m68k-isi
714
+ os=-sysv
715
+ ;;
716
+ m68knommu)
717
+ basic_machine=m68k-unknown
718
+ os=-linux
719
+ ;;
720
+ m68knommu-*)
721
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
722
+ os=-linux
723
+ ;;
724
+ m88k-omron*)
725
+ basic_machine=m88k-omron
726
+ ;;
727
+ magnum | m3230)
728
+ basic_machine=mips-mips
729
+ os=-sysv
730
+ ;;
731
+ merlin)
732
+ basic_machine=ns32k-utek
733
+ os=-sysv
734
+ ;;
735
+ microblaze)
736
+ basic_machine=microblaze-xilinx
737
+ ;;
738
+ mingw32)
739
+ basic_machine=i386-pc
740
+ os=-mingw32
741
+ ;;
742
+ mingw32ce)
743
+ basic_machine=arm-unknown
744
+ os=-mingw32ce
745
+ ;;
746
+ miniframe)
747
+ basic_machine=m68000-convergent
748
+ ;;
749
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
750
+ basic_machine=m68k-atari
751
+ os=-mint
752
+ ;;
753
+ mips3*-*)
754
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
755
+ ;;
756
+ mips3*)
757
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
758
+ ;;
759
+ monitor)
760
+ basic_machine=m68k-rom68k
761
+ os=-coff
762
+ ;;
763
+ morphos)
764
+ basic_machine=powerpc-unknown
765
+ os=-morphos
766
+ ;;
767
+ msdos)
768
+ basic_machine=i386-pc
769
+ os=-msdos
770
+ ;;
771
+ ms1-*)
772
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
773
+ ;;
774
+ mvs)
775
+ basic_machine=i370-ibm
776
+ os=-mvs
777
+ ;;
778
+ ncr3000)
779
+ basic_machine=i486-ncr
780
+ os=-sysv4
781
+ ;;
782
+ netbsd386)
783
+ basic_machine=i386-unknown
784
+ os=-netbsd
785
+ ;;
786
+ netwinder)
787
+ basic_machine=armv4l-rebel
788
+ os=-linux
789
+ ;;
790
+ news | news700 | news800 | news900)
791
+ basic_machine=m68k-sony
792
+ os=-newsos
793
+ ;;
794
+ news1000)
795
+ basic_machine=m68030-sony
796
+ os=-newsos
797
+ ;;
798
+ news-3600 | risc-news)
799
+ basic_machine=mips-sony
800
+ os=-newsos
801
+ ;;
802
+ necv70)
803
+ basic_machine=v70-nec
804
+ os=-sysv
805
+ ;;
806
+ next | m*-next )
807
+ basic_machine=m68k-next
808
+ case $os in
809
+ -nextstep* )
810
+ ;;
811
+ -ns2*)
812
+ os=-nextstep2
813
+ ;;
814
+ *)
815
+ os=-nextstep3
816
+ ;;
817
+ esac
818
+ ;;
819
+ nh3000)
820
+ basic_machine=m68k-harris
821
+ os=-cxux
822
+ ;;
823
+ nh[45]000)
824
+ basic_machine=m88k-harris
825
+ os=-cxux
826
+ ;;
827
+ nindy960)
828
+ basic_machine=i960-intel
829
+ os=-nindy
830
+ ;;
831
+ mon960)
832
+ basic_machine=i960-intel
833
+ os=-mon960
834
+ ;;
835
+ nonstopux)
836
+ basic_machine=mips-compaq
837
+ os=-nonstopux
838
+ ;;
839
+ np1)
840
+ basic_machine=np1-gould
841
+ ;;
842
+ nsr-tandem)
843
+ basic_machine=nsr-tandem
844
+ ;;
845
+ op50n-* | op60c-*)
846
+ basic_machine=hppa1.1-oki
847
+ os=-proelf
848
+ ;;
849
+ openrisc | openrisc-*)
850
+ basic_machine=or32-unknown
851
+ ;;
852
+ os400)
853
+ basic_machine=powerpc-ibm
854
+ os=-os400
855
+ ;;
856
+ OSE68000 | ose68000)
857
+ basic_machine=m68000-ericsson
858
+ os=-ose
859
+ ;;
860
+ os68k)
861
+ basic_machine=m68k-none
862
+ os=-os68k
863
+ ;;
864
+ pa-hitachi)
865
+ basic_machine=hppa1.1-hitachi
866
+ os=-hiuxwe2
867
+ ;;
868
+ paragon)
869
+ basic_machine=i860-intel
870
+ os=-osf
871
+ ;;
872
+ parisc)
873
+ basic_machine=hppa-unknown
874
+ os=-linux
875
+ ;;
876
+ parisc-*)
877
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
878
+ os=-linux
879
+ ;;
880
+ pbd)
881
+ basic_machine=sparc-tti
882
+ ;;
883
+ pbb)
884
+ basic_machine=m68k-tti
885
+ ;;
886
+ pc532 | pc532-*)
887
+ basic_machine=ns32k-pc532
888
+ ;;
889
+ pc98)
890
+ basic_machine=i386-pc
891
+ ;;
892
+ pc98-*)
893
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
894
+ ;;
895
+ pentium | p5 | k5 | k6 | nexgen | viac3)
896
+ basic_machine=i586-pc
897
+ ;;
898
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
899
+ basic_machine=i686-pc
900
+ ;;
901
+ pentiumii | pentium2 | pentiumiii | pentium3)
902
+ basic_machine=i686-pc
903
+ ;;
904
+ pentium4)
905
+ basic_machine=i786-pc
906
+ ;;
907
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
908
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
909
+ ;;
910
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
911
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
912
+ ;;
913
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
914
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
915
+ ;;
916
+ pentium4-*)
917
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
918
+ ;;
919
+ pn)
920
+ basic_machine=pn-gould
921
+ ;;
922
+ power) basic_machine=power-ibm
923
+ ;;
924
+ ppc) basic_machine=powerpc-unknown
925
+ ;;
926
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
927
+ ;;
928
+ ppcle | powerpclittle | ppc-le | powerpc-little)
929
+ basic_machine=powerpcle-unknown
930
+ ;;
931
+ ppcle-* | powerpclittle-*)
932
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
933
+ ;;
934
+ ppc64) basic_machine=powerpc64-unknown
935
+ ;;
936
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
937
+ ;;
938
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
939
+ basic_machine=powerpc64le-unknown
940
+ ;;
941
+ ppc64le-* | powerpc64little-*)
942
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
943
+ ;;
944
+ ps2)
945
+ basic_machine=i386-ibm
946
+ ;;
947
+ pw32)
948
+ basic_machine=i586-unknown
949
+ os=-pw32
950
+ ;;
951
+ rdos)
952
+ basic_machine=i386-pc
953
+ os=-rdos
954
+ ;;
955
+ rom68k)
956
+ basic_machine=m68k-rom68k
957
+ os=-coff
958
+ ;;
959
+ rm[46]00)
960
+ basic_machine=mips-siemens
961
+ ;;
962
+ rtpc | rtpc-*)
963
+ basic_machine=romp-ibm
964
+ ;;
965
+ s390 | s390-*)
966
+ basic_machine=s390-ibm
967
+ ;;
968
+ s390x | s390x-*)
969
+ basic_machine=s390x-ibm
970
+ ;;
971
+ sa29200)
972
+ basic_machine=a29k-amd
973
+ os=-udi
974
+ ;;
975
+ sb1)
976
+ basic_machine=mipsisa64sb1-unknown
977
+ ;;
978
+ sb1el)
979
+ basic_machine=mipsisa64sb1el-unknown
980
+ ;;
981
+ sde)
982
+ basic_machine=mipsisa32-sde
983
+ os=-elf
984
+ ;;
985
+ sei)
986
+ basic_machine=mips-sei
987
+ os=-seiux
988
+ ;;
989
+ sequent)
990
+ basic_machine=i386-sequent
991
+ ;;
992
+ sh)
993
+ basic_machine=sh-hitachi
994
+ os=-hms
995
+ ;;
996
+ sh5el)
997
+ basic_machine=sh5le-unknown
998
+ ;;
999
+ sh64)
1000
+ basic_machine=sh64-unknown
1001
+ ;;
1002
+ sparclite-wrs | simso-wrs)
1003
+ basic_machine=sparclite-wrs
1004
+ os=-vxworks
1005
+ ;;
1006
+ sps7)
1007
+ basic_machine=m68k-bull
1008
+ os=-sysv2
1009
+ ;;
1010
+ spur)
1011
+ basic_machine=spur-unknown
1012
+ ;;
1013
+ st2000)
1014
+ basic_machine=m68k-tandem
1015
+ ;;
1016
+ stratus)
1017
+ basic_machine=i860-stratus
1018
+ os=-sysv4
1019
+ ;;
1020
+ sun2)
1021
+ basic_machine=m68000-sun
1022
+ ;;
1023
+ sun2os3)
1024
+ basic_machine=m68000-sun
1025
+ os=-sunos3
1026
+ ;;
1027
+ sun2os4)
1028
+ basic_machine=m68000-sun
1029
+ os=-sunos4
1030
+ ;;
1031
+ sun3os3)
1032
+ basic_machine=m68k-sun
1033
+ os=-sunos3
1034
+ ;;
1035
+ sun3os4)
1036
+ basic_machine=m68k-sun
1037
+ os=-sunos4
1038
+ ;;
1039
+ sun4os3)
1040
+ basic_machine=sparc-sun
1041
+ os=-sunos3
1042
+ ;;
1043
+ sun4os4)
1044
+ basic_machine=sparc-sun
1045
+ os=-sunos4
1046
+ ;;
1047
+ sun4sol2)
1048
+ basic_machine=sparc-sun
1049
+ os=-solaris2
1050
+ ;;
1051
+ sun3 | sun3-*)
1052
+ basic_machine=m68k-sun
1053
+ ;;
1054
+ sun4)
1055
+ basic_machine=sparc-sun
1056
+ ;;
1057
+ sun386 | sun386i | roadrunner)
1058
+ basic_machine=i386-sun
1059
+ ;;
1060
+ sv1)
1061
+ basic_machine=sv1-cray
1062
+ os=-unicos
1063
+ ;;
1064
+ symmetry)
1065
+ basic_machine=i386-sequent
1066
+ os=-dynix
1067
+ ;;
1068
+ t3e)
1069
+ basic_machine=alphaev5-cray
1070
+ os=-unicos
1071
+ ;;
1072
+ t90)
1073
+ basic_machine=t90-cray
1074
+ os=-unicos
1075
+ ;;
1076
+ tic54x | c54x*)
1077
+ basic_machine=tic54x-unknown
1078
+ os=-coff
1079
+ ;;
1080
+ tic55x | c55x*)
1081
+ basic_machine=tic55x-unknown
1082
+ os=-coff
1083
+ ;;
1084
+ tic6x | c6x*)
1085
+ basic_machine=tic6x-unknown
1086
+ os=-coff
1087
+ ;;
1088
+ tile*)
1089
+ basic_machine=tile-unknown
1090
+ os=-linux-gnu
1091
+ ;;
1092
+ tx39)
1093
+ basic_machine=mipstx39-unknown
1094
+ ;;
1095
+ tx39el)
1096
+ basic_machine=mipstx39el-unknown
1097
+ ;;
1098
+ toad1)
1099
+ basic_machine=pdp10-xkl
1100
+ os=-tops20
1101
+ ;;
1102
+ tower | tower-32)
1103
+ basic_machine=m68k-ncr
1104
+ ;;
1105
+ tpf)
1106
+ basic_machine=s390x-ibm
1107
+ os=-tpf
1108
+ ;;
1109
+ udi29k)
1110
+ basic_machine=a29k-amd
1111
+ os=-udi
1112
+ ;;
1113
+ ultra3)
1114
+ basic_machine=a29k-nyu
1115
+ os=-sym1
1116
+ ;;
1117
+ v810 | necv810)
1118
+ basic_machine=v810-nec
1119
+ os=-none
1120
+ ;;
1121
+ vaxv)
1122
+ basic_machine=vax-dec
1123
+ os=-sysv
1124
+ ;;
1125
+ vms)
1126
+ basic_machine=vax-dec
1127
+ os=-vms
1128
+ ;;
1129
+ vpp*|vx|vx-*)
1130
+ basic_machine=f301-fujitsu
1131
+ ;;
1132
+ vxworks960)
1133
+ basic_machine=i960-wrs
1134
+ os=-vxworks
1135
+ ;;
1136
+ vxworks68)
1137
+ basic_machine=m68k-wrs
1138
+ os=-vxworks
1139
+ ;;
1140
+ vxworks29k)
1141
+ basic_machine=a29k-wrs
1142
+ os=-vxworks
1143
+ ;;
1144
+ w65*)
1145
+ basic_machine=w65-wdc
1146
+ os=-none
1147
+ ;;
1148
+ w89k-*)
1149
+ basic_machine=hppa1.1-winbond
1150
+ os=-proelf
1151
+ ;;
1152
+ xbox)
1153
+ basic_machine=i686-pc
1154
+ os=-mingw32
1155
+ ;;
1156
+ xps | xps100)
1157
+ basic_machine=xps100-honeywell
1158
+ ;;
1159
+ ymp)
1160
+ basic_machine=ymp-cray
1161
+ os=-unicos
1162
+ ;;
1163
+ z8k-*-coff)
1164
+ basic_machine=z8k-unknown
1165
+ os=-sim
1166
+ ;;
1167
+ z80-*-coff)
1168
+ basic_machine=z80-unknown
1169
+ os=-sim
1170
+ ;;
1171
+ none)
1172
+ basic_machine=none-none
1173
+ os=-none
1174
+ ;;
1175
+
1176
+ # Here we handle the default manufacturer of certain CPU types. It is in
1177
+ # some cases the only manufacturer, in others, it is the most popular.
1178
+ w89k)
1179
+ basic_machine=hppa1.1-winbond
1180
+ ;;
1181
+ op50n)
1182
+ basic_machine=hppa1.1-oki
1183
+ ;;
1184
+ op60c)
1185
+ basic_machine=hppa1.1-oki
1186
+ ;;
1187
+ romp)
1188
+ basic_machine=romp-ibm
1189
+ ;;
1190
+ mmix)
1191
+ basic_machine=mmix-knuth
1192
+ ;;
1193
+ rs6000)
1194
+ basic_machine=rs6000-ibm
1195
+ ;;
1196
+ vax)
1197
+ basic_machine=vax-dec
1198
+ ;;
1199
+ pdp10)
1200
+ # there are many clones, so DEC is not a safe bet
1201
+ basic_machine=pdp10-unknown
1202
+ ;;
1203
+ pdp11)
1204
+ basic_machine=pdp11-dec
1205
+ ;;
1206
+ we32k)
1207
+ basic_machine=we32k-att
1208
+ ;;
1209
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1210
+ basic_machine=sh-unknown
1211
+ ;;
1212
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1213
+ basic_machine=sparc-sun
1214
+ ;;
1215
+ cydra)
1216
+ basic_machine=cydra-cydrome
1217
+ ;;
1218
+ orion)
1219
+ basic_machine=orion-highlevel
1220
+ ;;
1221
+ orion105)
1222
+ basic_machine=clipper-highlevel
1223
+ ;;
1224
+ mac | mpw | mac-mpw)
1225
+ basic_machine=m68k-apple
1226
+ ;;
1227
+ pmac | pmac-mpw)
1228
+ basic_machine=powerpc-apple
1229
+ ;;
1230
+ *-unknown)
1231
+ # Make sure to match an already-canonicalized machine name.
1232
+ ;;
1233
+ *)
1234
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1235
+ exit 1
1236
+ ;;
1237
+ esac
1238
+
1239
+ # Here we canonicalize certain aliases for manufacturers.
1240
+ case $basic_machine in
1241
+ *-digital*)
1242
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1243
+ ;;
1244
+ *-commodore*)
1245
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1246
+ ;;
1247
+ *)
1248
+ ;;
1249
+ esac
1250
+
1251
+ # Decode manufacturer-specific aliases for certain operating systems.
1252
+
1253
+ if [ x"$os" != x"" ]
1254
+ then
1255
+ case $os in
1256
+ # First match some system type aliases
1257
+ # that might get confused with valid system types.
1258
+ # -solaris* is a basic system type, with this one exception.
1259
+ -auroraux)
1260
+ os=-auroraux
1261
+ ;;
1262
+ -solaris1 | -solaris1.*)
1263
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
1264
+ ;;
1265
+ -solaris)
1266
+ os=-solaris2
1267
+ ;;
1268
+ -svr4*)
1269
+ os=-sysv4
1270
+ ;;
1271
+ -unixware*)
1272
+ os=-sysv4.2uw
1273
+ ;;
1274
+ -gnu/linux*)
1275
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1276
+ ;;
1277
+ # First accept the basic system types.
1278
+ # The portable systems comes first.
1279
+ # Each alternative MUST END IN A *, to match a version number.
1280
+ # -sysv* is not here because it comes later, after sysvr4.
1281
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1282
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1283
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1284
+ | -sym* | -kopensolaris* \
1285
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1286
+ | -aos* | -aros* \
1287
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1288
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1289
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1290
+ | -openbsd* | -solidbsd* \
1291
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1292
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1293
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1294
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1295
+ | -chorusos* | -chorusrdb* | -cegcc* \
1296
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1297
+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1298
+ | -uxpv* | -beos* | -mpeix* | -udk* \
1299
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1300
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1301
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1302
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1303
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1304
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1305
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1306
+ # Remember, each alternative MUST END IN *, to match a version number.
1307
+ ;;
1308
+ -qnx*)
1309
+ case $basic_machine in
1310
+ x86-* | i*86-*)
1311
+ ;;
1312
+ *)
1313
+ os=-nto$os
1314
+ ;;
1315
+ esac
1316
+ ;;
1317
+ -nto-qnx*)
1318
+ ;;
1319
+ -nto*)
1320
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
1321
+ ;;
1322
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1323
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1324
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1325
+ ;;
1326
+ -mac*)
1327
+ os=`echo $os | sed -e 's|mac|macos|'`
1328
+ ;;
1329
+ -linux-dietlibc)
1330
+ os=-linux-dietlibc
1331
+ ;;
1332
+ -linux*)
1333
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
1334
+ ;;
1335
+ -sunos5*)
1336
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
1337
+ ;;
1338
+ -sunos6*)
1339
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
1340
+ ;;
1341
+ -opened*)
1342
+ os=-openedition
1343
+ ;;
1344
+ -os400*)
1345
+ os=-os400
1346
+ ;;
1347
+ -wince*)
1348
+ os=-wince
1349
+ ;;
1350
+ -osfrose*)
1351
+ os=-osfrose
1352
+ ;;
1353
+ -osf*)
1354
+ os=-osf
1355
+ ;;
1356
+ -utek*)
1357
+ os=-bsd
1358
+ ;;
1359
+ -dynix*)
1360
+ os=-bsd
1361
+ ;;
1362
+ -acis*)
1363
+ os=-aos
1364
+ ;;
1365
+ -atheos*)
1366
+ os=-atheos
1367
+ ;;
1368
+ -syllable*)
1369
+ os=-syllable
1370
+ ;;
1371
+ -386bsd)
1372
+ os=-bsd
1373
+ ;;
1374
+ -ctix* | -uts*)
1375
+ os=-sysv
1376
+ ;;
1377
+ -nova*)
1378
+ os=-rtmk-nova
1379
+ ;;
1380
+ -ns2 )
1381
+ os=-nextstep2
1382
+ ;;
1383
+ -nsk*)
1384
+ os=-nsk
1385
+ ;;
1386
+ # Preserve the version number of sinix5.
1387
+ -sinix5.*)
1388
+ os=`echo $os | sed -e 's|sinix|sysv|'`
1389
+ ;;
1390
+ -sinix*)
1391
+ os=-sysv4
1392
+ ;;
1393
+ -tpf*)
1394
+ os=-tpf
1395
+ ;;
1396
+ -triton*)
1397
+ os=-sysv3
1398
+ ;;
1399
+ -oss*)
1400
+ os=-sysv3
1401
+ ;;
1402
+ -svr4)
1403
+ os=-sysv4
1404
+ ;;
1405
+ -svr3)
1406
+ os=-sysv3
1407
+ ;;
1408
+ -sysvr4)
1409
+ os=-sysv4
1410
+ ;;
1411
+ # This must come after -sysvr4.
1412
+ -sysv*)
1413
+ ;;
1414
+ -ose*)
1415
+ os=-ose
1416
+ ;;
1417
+ -es1800*)
1418
+ os=-ose
1419
+ ;;
1420
+ -xenix)
1421
+ os=-xenix
1422
+ ;;
1423
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1424
+ os=-mint
1425
+ ;;
1426
+ -aros*)
1427
+ os=-aros
1428
+ ;;
1429
+ -kaos*)
1430
+ os=-kaos
1431
+ ;;
1432
+ -zvmoe)
1433
+ os=-zvmoe
1434
+ ;;
1435
+ -dicos*)
1436
+ os=-dicos
1437
+ ;;
1438
+ -none)
1439
+ ;;
1440
+ *)
1441
+ # Get rid of the `-' at the beginning of $os.
1442
+ os=`echo $os | sed 's/[^-]*-//'`
1443
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1444
+ exit 1
1445
+ ;;
1446
+ esac
1447
+ else
1448
+
1449
+ # Here we handle the default operating systems that come with various machines.
1450
+ # The value should be what the vendor currently ships out the door with their
1451
+ # machine or put another way, the most popular os provided with the machine.
1452
+
1453
+ # Note that if you're going to try to match "-MANUFACTURER" here (say,
1454
+ # "-sun"), then you have to tell the case statement up towards the top
1455
+ # that MANUFACTURER isn't an operating system. Otherwise, code above
1456
+ # will signal an error saying that MANUFACTURER isn't an operating
1457
+ # system, and we'll never get to this point.
1458
+
1459
+ case $basic_machine in
1460
+ score-*)
1461
+ os=-elf
1462
+ ;;
1463
+ spu-*)
1464
+ os=-elf
1465
+ ;;
1466
+ *-acorn)
1467
+ os=-riscix1.2
1468
+ ;;
1469
+ arm*-rebel)
1470
+ os=-linux
1471
+ ;;
1472
+ arm*-semi)
1473
+ os=-aout
1474
+ ;;
1475
+ c4x-* | tic4x-*)
1476
+ os=-coff
1477
+ ;;
1478
+ # This must come before the *-dec entry.
1479
+ pdp10-*)
1480
+ os=-tops20
1481
+ ;;
1482
+ pdp11-*)
1483
+ os=-none
1484
+ ;;
1485
+ *-dec | vax-*)
1486
+ os=-ultrix4.2
1487
+ ;;
1488
+ m68*-apollo)
1489
+ os=-domain
1490
+ ;;
1491
+ i386-sun)
1492
+ os=-sunos4.0.2
1493
+ ;;
1494
+ m68000-sun)
1495
+ os=-sunos3
1496
+ # This also exists in the configure program, but was not the
1497
+ # default.
1498
+ # os=-sunos4
1499
+ ;;
1500
+ m68*-cisco)
1501
+ os=-aout
1502
+ ;;
1503
+ mep-*)
1504
+ os=-elf
1505
+ ;;
1506
+ mips*-cisco)
1507
+ os=-elf
1508
+ ;;
1509
+ mips*-*)
1510
+ os=-elf
1511
+ ;;
1512
+ or32-*)
1513
+ os=-coff
1514
+ ;;
1515
+ *-tti) # must be before sparc entry or we get the wrong os.
1516
+ os=-sysv3
1517
+ ;;
1518
+ sparc-* | *-sun)
1519
+ os=-sunos4.1.1
1520
+ ;;
1521
+ *-be)
1522
+ os=-beos
1523
+ ;;
1524
+ *-haiku)
1525
+ os=-haiku
1526
+ ;;
1527
+ *-ibm)
1528
+ os=-aix
1529
+ ;;
1530
+ *-knuth)
1531
+ os=-mmixware
1532
+ ;;
1533
+ *-wec)
1534
+ os=-proelf
1535
+ ;;
1536
+ *-winbond)
1537
+ os=-proelf
1538
+ ;;
1539
+ *-oki)
1540
+ os=-proelf
1541
+ ;;
1542
+ *-hp)
1543
+ os=-hpux
1544
+ ;;
1545
+ *-hitachi)
1546
+ os=-hiux
1547
+ ;;
1548
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1549
+ os=-sysv
1550
+ ;;
1551
+ *-cbm)
1552
+ os=-amigaos
1553
+ ;;
1554
+ *-dg)
1555
+ os=-dgux
1556
+ ;;
1557
+ *-dolphin)
1558
+ os=-sysv3
1559
+ ;;
1560
+ m68k-ccur)
1561
+ os=-rtu
1562
+ ;;
1563
+ m88k-omron*)
1564
+ os=-luna
1565
+ ;;
1566
+ *-next )
1567
+ os=-nextstep
1568
+ ;;
1569
+ *-sequent)
1570
+ os=-ptx
1571
+ ;;
1572
+ *-crds)
1573
+ os=-unos
1574
+ ;;
1575
+ *-ns)
1576
+ os=-genix
1577
+ ;;
1578
+ i370-*)
1579
+ os=-mvs
1580
+ ;;
1581
+ *-next)
1582
+ os=-nextstep3
1583
+ ;;
1584
+ *-gould)
1585
+ os=-sysv
1586
+ ;;
1587
+ *-highlevel)
1588
+ os=-bsd
1589
+ ;;
1590
+ *-encore)
1591
+ os=-bsd
1592
+ ;;
1593
+ *-sgi)
1594
+ os=-irix
1595
+ ;;
1596
+ *-siemens)
1597
+ os=-sysv4
1598
+ ;;
1599
+ *-masscomp)
1600
+ os=-rtu
1601
+ ;;
1602
+ f30[01]-fujitsu | f700-fujitsu)
1603
+ os=-uxpv
1604
+ ;;
1605
+ *-rom68k)
1606
+ os=-coff
1607
+ ;;
1608
+ *-*bug)
1609
+ os=-coff
1610
+ ;;
1611
+ *-apple)
1612
+ os=-macos
1613
+ ;;
1614
+ *-atari*)
1615
+ os=-mint
1616
+ ;;
1617
+ *)
1618
+ os=-none
1619
+ ;;
1620
+ esac
1621
+ fi
1622
+
1623
+ # Here we handle the case where we know the os, and the CPU type, but not the
1624
+ # manufacturer. We pick the logical manufacturer.
1625
+ vendor=unknown
1626
+ case $basic_machine in
1627
+ *-unknown)
1628
+ case $os in
1629
+ -riscix*)
1630
+ vendor=acorn
1631
+ ;;
1632
+ -sunos*)
1633
+ vendor=sun
1634
+ ;;
1635
+ -cnk*|-aix*)
1636
+ vendor=ibm
1637
+ ;;
1638
+ -beos*)
1639
+ vendor=be
1640
+ ;;
1641
+ -hpux*)
1642
+ vendor=hp
1643
+ ;;
1644
+ -mpeix*)
1645
+ vendor=hp
1646
+ ;;
1647
+ -hiux*)
1648
+ vendor=hitachi
1649
+ ;;
1650
+ -unos*)
1651
+ vendor=crds
1652
+ ;;
1653
+ -dgux*)
1654
+ vendor=dg
1655
+ ;;
1656
+ -luna*)
1657
+ vendor=omron
1658
+ ;;
1659
+ -genix*)
1660
+ vendor=ns
1661
+ ;;
1662
+ -mvs* | -opened*)
1663
+ vendor=ibm
1664
+ ;;
1665
+ -os400*)
1666
+ vendor=ibm
1667
+ ;;
1668
+ -ptx*)
1669
+ vendor=sequent
1670
+ ;;
1671
+ -tpf*)
1672
+ vendor=ibm
1673
+ ;;
1674
+ -vxsim* | -vxworks* | -windiss*)
1675
+ vendor=wrs
1676
+ ;;
1677
+ -aux*)
1678
+ vendor=apple
1679
+ ;;
1680
+ -hms*)
1681
+ vendor=hitachi
1682
+ ;;
1683
+ -mpw* | -macos*)
1684
+ vendor=apple
1685
+ ;;
1686
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1687
+ vendor=atari
1688
+ ;;
1689
+ -vos*)
1690
+ vendor=stratus
1691
+ ;;
1692
+ esac
1693
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1694
+ ;;
1695
+ esac
1696
+
1697
+ echo $basic_machine$os
1698
+ exit
1699
+
1700
+ # Local variables:
1701
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
1702
+ # time-stamp-start: "timestamp='"
1703
+ # time-stamp-format: "%:y-%02m-%02d"
1704
+ # time-stamp-end: "'"
1705
+ # End: