passenger 2.2.15 → 3.0.0.pre1

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 (1338) hide show
  1. data/DEVELOPERS.TXT +21 -12
  2. data/LICENSE +1 -1
  3. data/NEWS +8 -1
  4. data/PACKAGING.TXT +25 -0
  5. data/Rakefile +28 -891
  6. data/bin/passenger +32 -0
  7. data/bin/passenger-config +5 -5
  8. data/bin/passenger-install-apache2-module +37 -24
  9. data/bin/passenger-install-nginx-module +48 -46
  10. data/bin/passenger-make-enterprisey +8 -9
  11. data/bin/passenger-memory-stats +20 -150
  12. data/bin/passenger-status +130 -44
  13. data/bin/passenger-stress-test +5 -4
  14. data/build/agents.rb +73 -0
  15. data/build/apache2.rb +165 -0
  16. data/build/basics.rb +81 -0
  17. data/build/common_library.rb +198 -0
  18. data/build/config.rb +35 -0
  19. data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
  20. data/build/cxx_tests.rb +205 -0
  21. data/build/documentation.rb +77 -0
  22. data/{misc/rake → build}/gempackagetask.rb +1 -1
  23. data/build/integration_tests.rb +57 -0
  24. data/build/misc.rb +146 -0
  25. data/build/nginx.rb +64 -0
  26. data/build/oxt_tests.rb +52 -0
  27. data/{misc/rake → build}/packagetask.rb +0 -0
  28. data/build/packaging.rb +189 -0
  29. data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
  30. data/{misc/rake → build}/rdoctask.rb +0 -0
  31. data/build/ruby_extension.rb +46 -0
  32. data/build/ruby_tests.rb +42 -0
  33. data/build/test_basics.rb +31 -0
  34. data/doc/ApplicationPool algorithm.txt +447 -234
  35. data/doc/Architectural overview.html +47 -56
  36. data/doc/Doxyfile +1 -1
  37. data/doc/Security of user switching support.html +46 -57
  38. data/doc/Users guide Apache.html +1033 -306
  39. data/doc/Users guide Apache.txt +419 -99
  40. data/doc/Users guide Nginx.html +1252 -253
  41. data/doc/Users guide Nginx.txt +711 -87
  42. data/doc/Users guide Standalone.html +603 -0
  43. data/doc/Users guide Standalone.txt +40 -0
  44. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
  45. data/doc/cxxapi/Account_8h_source.html +206 -0
  46. data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
  47. data/doc/cxxapi/AgentBase_8h_source.html +70 -0
  48. data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
  49. data/doc/cxxapi/BCrypt_8h_source.html +104 -0
  50. data/doc/cxxapi/Blowfish_8h_source.html +134 -0
  51. data/doc/cxxapi/Bucket_8h_source.html +4 -3
  52. data/doc/cxxapi/Constants_8h_source.html +79 -0
  53. data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
  54. data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
  55. data/doc/cxxapi/EventedClient_8h_source.html +629 -0
  56. data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
  57. data/doc/cxxapi/EventedServer_8h_source.html +326 -0
  58. data/doc/cxxapi/Exceptions_8h_source.html +366 -0
  59. data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
  60. data/doc/cxxapi/Hooks_8h_source.html +2 -1
  61. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
  62. data/doc/cxxapi/Logging_8h_source.html +726 -0
  63. data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
  64. data/doc/cxxapi/MessageClient_8h_source.html +328 -0
  65. data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
  66. data/doc/cxxapi/MessageServer_8h_source.html +606 -0
  67. data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
  68. data/doc/cxxapi/Process_8h_source.html +286 -0
  69. data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
  70. data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
  71. data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
  72. data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
  73. data/doc/cxxapi/Session_8h_source.html +501 -0
  74. data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
  75. data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
  76. data/doc/cxxapi/StaticString_8h_source.html +254 -0
  77. data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
  78. data/doc/cxxapi/Utils_8h_source.html +442 -0
  79. data/doc/cxxapi/annotated.html +46 -0
  80. data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
  81. data/doc/cxxapi/classAgentWatcher-members.html +30 -26
  82. data/doc/cxxapi/classAgentWatcher.html +168 -194
  83. data/doc/cxxapi/classClient-members.html +14 -11
  84. data/doc/cxxapi/classClient.html +35 -35
  85. data/doc/cxxapi/classHooks-members.html +2 -0
  86. data/doc/cxxapi/classHooks.html +2 -0
  87. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
  88. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
  89. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
  90. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
  91. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
  92. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
  93. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
  94. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
  95. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
  96. data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
  97. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
  98. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
  99. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
  100. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
  101. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
  102. data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
  103. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
  104. data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
  105. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
  106. data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
  107. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
  108. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
  109. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
  110. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
  111. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  112. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
  113. data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
  114. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
  115. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
  116. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  117. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
  118. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
  119. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
  120. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
  121. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
  122. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
  123. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
  124. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
  125. data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
  126. data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
  127. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
  128. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
  129. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
  130. data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
  131. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
  132. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
  133. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
  134. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
  135. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  136. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
  137. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
  138. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
  139. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
  140. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  141. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
  142. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
  143. data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
  144. data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
  145. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
  146. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
  147. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
  148. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
  149. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
  150. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
  151. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
  152. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
  153. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
  154. data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
  155. data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
  156. data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
  157. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
  158. data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
  159. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
  160. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
  161. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
  162. data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
  163. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
  164. data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
  165. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
  166. data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
  167. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
  168. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
  169. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
  170. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
  171. data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
  172. data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
  173. data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
  174. data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
  175. data/doc/cxxapi/classServer-members.html +12 -9
  176. data/doc/cxxapi/classServer.html +23 -20
  177. data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
  178. data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
  179. data/doc/cxxapi/classes.html +18 -4
  180. data/doc/cxxapi/definitions_8h_source.html +1 -0
  181. data/doc/cxxapi/files.html +36 -1
  182. data/doc/cxxapi/functions.html +53 -21
  183. data/doc/cxxapi/functions_0x62.html +82 -0
  184. data/doc/cxxapi/functions_0x63.html +99 -0
  185. data/doc/cxxapi/functions_0x64.html +95 -0
  186. data/doc/cxxapi/functions_0x65.html +88 -0
  187. data/doc/cxxapi/functions_0x66.html +100 -0
  188. data/doc/cxxapi/functions_0x67.html +170 -0
  189. data/doc/cxxapi/functions_0x68.html +88 -0
  190. data/doc/cxxapi/functions_0x69.html +93 -0
  191. data/doc/cxxapi/functions_0x6b.html +80 -0
  192. data/doc/cxxapi/functions_0x6c.html +88 -0
  193. data/doc/cxxapi/functions_0x6d.html +88 -0
  194. data/doc/cxxapi/functions_0x6e.html +86 -0
  195. data/doc/cxxapi/functions_0x6f.html +94 -0
  196. data/doc/cxxapi/functions_0x70.html +94 -0
  197. data/doc/cxxapi/functions_0x72.html +110 -0
  198. data/doc/cxxapi/functions_0x73.html +171 -0
  199. data/doc/cxxapi/functions_0x74.html +85 -0
  200. data/doc/cxxapi/functions_0x75.html +85 -0
  201. data/doc/cxxapi/functions_0x77.html +92 -0
  202. data/doc/cxxapi/functions_0x7e.html +79 -0
  203. data/doc/cxxapi/functions_enum.html +14 -12
  204. data/doc/cxxapi/functions_eval.html +22 -16
  205. data/doc/cxxapi/functions_func.html +460 -1
  206. data/doc/cxxapi/functions_vars.html +163 -63
  207. data/doc/cxxapi/graph_legend.html +1 -0
  208. data/doc/cxxapi/graph_legend.png +0 -0
  209. data/doc/cxxapi/group__Core.html +2 -2
  210. data/doc/cxxapi/group__Core.map +1 -2
  211. data/doc/cxxapi/group__Core.png +0 -0
  212. data/doc/cxxapi/group__Exceptions.html +32 -40
  213. data/doc/cxxapi/group__Hooks.html +2 -1
  214. data/doc/cxxapi/group__Hooks.map +1 -1
  215. data/doc/cxxapi/group__Hooks.png +0 -0
  216. data/doc/cxxapi/group__Support.html +509 -0
  217. data/doc/cxxapi/hierarchy.html +66 -62
  218. data/doc/cxxapi/inherit__graph__10.map +3 -1
  219. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  220. data/doc/cxxapi/inherit__graph__10.png +0 -0
  221. data/doc/cxxapi/inherit__graph__11.map +4 -1
  222. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  223. data/doc/cxxapi/inherit__graph__11.png +0 -0
  224. data/doc/cxxapi/inherit__graph__12.map +3 -1
  225. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  226. data/doc/cxxapi/inherit__graph__12.png +0 -0
  227. data/doc/cxxapi/inherit__graph__13.map +3 -1
  228. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  229. data/doc/cxxapi/inherit__graph__13.png +0 -0
  230. data/doc/cxxapi/inherit__graph__14.map +3 -1
  231. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  232. data/doc/cxxapi/inherit__graph__14.png +0 -0
  233. data/doc/cxxapi/inherit__graph__15.map +5 -1
  234. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  235. data/doc/cxxapi/inherit__graph__15.png +0 -0
  236. data/doc/cxxapi/inherit__graph__16.map +3 -3
  237. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  238. data/doc/cxxapi/inherit__graph__16.png +0 -0
  239. data/doc/cxxapi/inherit__graph__17.map +3 -1
  240. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  241. data/doc/cxxapi/inherit__graph__17.png +0 -0
  242. data/doc/cxxapi/inherit__graph__18.map +4 -1
  243. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  244. data/doc/cxxapi/inherit__graph__18.png +0 -0
  245. data/doc/cxxapi/inherit__graph__19.map +3 -1
  246. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  247. data/doc/cxxapi/inherit__graph__19.png +0 -0
  248. data/doc/cxxapi/inherit__graph__20.map +3 -2
  249. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  250. data/doc/cxxapi/inherit__graph__20.png +0 -0
  251. data/doc/cxxapi/inherit__graph__21.map +3 -1
  252. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  253. data/doc/cxxapi/inherit__graph__21.png +0 -0
  254. data/doc/cxxapi/inherit__graph__22.map +3 -1
  255. data/doc/cxxapi/inherit__graph__22.md5 +1 -1
  256. data/doc/cxxapi/inherit__graph__22.png +0 -0
  257. data/doc/cxxapi/inherit__graph__23.map +3 -1
  258. data/doc/cxxapi/inherit__graph__23.md5 +1 -1
  259. data/doc/cxxapi/inherit__graph__23.png +0 -0
  260. data/doc/cxxapi/inherit__graph__24.map +3 -1
  261. data/doc/cxxapi/inherit__graph__24.md5 +1 -1
  262. data/doc/cxxapi/inherit__graph__24.png +0 -0
  263. data/doc/cxxapi/inherit__graph__25.map +3 -1
  264. data/doc/cxxapi/inherit__graph__25.md5 +1 -1
  265. data/doc/cxxapi/inherit__graph__25.png +0 -0
  266. data/doc/cxxapi/inherit__graph__26.map +3 -1
  267. data/doc/cxxapi/inherit__graph__26.md5 +1 -1
  268. data/doc/cxxapi/inherit__graph__26.png +0 -0
  269. data/doc/cxxapi/inherit__graph__27.map +3 -1
  270. data/doc/cxxapi/inherit__graph__27.md5 +1 -1
  271. data/doc/cxxapi/inherit__graph__27.png +0 -0
  272. data/doc/cxxapi/inherit__graph__28.map +4 -1
  273. data/doc/cxxapi/inherit__graph__28.md5 +1 -1
  274. data/doc/cxxapi/inherit__graph__28.png +0 -0
  275. data/doc/cxxapi/inherit__graph__29.map +3 -1
  276. data/doc/cxxapi/inherit__graph__29.md5 +1 -1
  277. data/doc/cxxapi/inherit__graph__29.png +0 -0
  278. data/doc/cxxapi/inherit__graph__30.map +3 -2
  279. data/doc/cxxapi/inherit__graph__30.md5 +1 -1
  280. data/doc/cxxapi/inherit__graph__30.png +0 -0
  281. data/doc/cxxapi/inherit__graph__31.map +3 -1
  282. data/doc/cxxapi/inherit__graph__31.md5 +1 -1
  283. data/doc/cxxapi/inherit__graph__31.png +0 -0
  284. data/doc/cxxapi/inherit__graph__32.map +5 -1
  285. data/doc/cxxapi/inherit__graph__32.md5 +1 -1
  286. data/doc/cxxapi/inherit__graph__32.png +0 -0
  287. data/doc/cxxapi/inherit__graph__33.map +3 -1
  288. data/doc/cxxapi/inherit__graph__33.md5 +1 -1
  289. data/doc/cxxapi/inherit__graph__33.png +0 -0
  290. data/doc/cxxapi/inherit__graph__34.map +3 -3
  291. data/doc/cxxapi/inherit__graph__34.md5 +1 -1
  292. data/doc/cxxapi/inherit__graph__34.png +0 -0
  293. data/doc/cxxapi/inherit__graph__35.map +3 -1
  294. data/doc/cxxapi/inherit__graph__35.md5 +1 -1
  295. data/doc/cxxapi/inherit__graph__35.png +0 -0
  296. data/doc/cxxapi/inherit__graph__36.map +3 -1
  297. data/doc/cxxapi/inherit__graph__36.md5 +1 -1
  298. data/doc/cxxapi/inherit__graph__36.png +0 -0
  299. data/doc/cxxapi/inherit__graph__37.map +3 -1
  300. data/doc/cxxapi/inherit__graph__37.md5 +1 -1
  301. data/doc/cxxapi/inherit__graph__37.png +0 -0
  302. data/doc/cxxapi/inherit__graph__4.map +3 -1
  303. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  304. data/doc/cxxapi/inherit__graph__4.png +0 -0
  305. data/doc/cxxapi/inherit__graph__5.map +3 -1
  306. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  307. data/doc/cxxapi/inherit__graph__5.png +0 -0
  308. data/doc/cxxapi/inherit__graph__6.map +3 -1
  309. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  310. data/doc/cxxapi/inherit__graph__6.png +0 -0
  311. data/doc/cxxapi/inherit__graph__7.map +3 -1
  312. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  313. data/doc/cxxapi/inherit__graph__7.png +0 -0
  314. data/doc/cxxapi/inherit__graph__8.map +3 -1
  315. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  316. data/doc/cxxapi/inherit__graph__8.png +0 -0
  317. data/doc/cxxapi/inherit__graph__9.map +3 -1
  318. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  319. data/doc/cxxapi/inherit__graph__9.png +0 -0
  320. data/doc/cxxapi/inherits.html +123 -126
  321. data/doc/cxxapi/main.html +1 -0
  322. data/doc/cxxapi/modules.html +2 -1
  323. data/doc/cxxapi/namespacePassenger.html +263 -492
  324. data/doc/cxxapi/namespacemembers.html +68 -96
  325. data/doc/cxxapi/namespacemembers_enum.html +14 -12
  326. data/doc/cxxapi/namespacemembers_eval.html +20 -15
  327. data/doc/cxxapi/namespacemembers_func.html +52 -88
  328. data/doc/cxxapi/namespacemembers_type.html +18 -14
  329. data/doc/cxxapi/namespaces.html +12 -9
  330. data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
  331. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
  332. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
  333. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
  334. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
  335. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
  336. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
  337. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
  338. data/doc/cxxapi/tree.html +152 -7
  339. data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
  340. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
  341. data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
  342. data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
  343. data/doc/users_guide_snippets/tips.txt +12 -6
  344. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
  345. data/ext/apache2/Bucket.cpp +4 -4
  346. data/ext/apache2/Bucket.h +3 -3
  347. data/ext/apache2/Configuration.cpp +278 -381
  348. data/ext/apache2/Configuration.h +3 -357
  349. data/ext/apache2/Configuration.hpp +461 -0
  350. data/ext/apache2/DirectoryMapper.h +3 -3
  351. data/ext/apache2/HelperAgent.cpp +359 -0
  352. data/ext/apache2/Hooks.cpp +339 -226
  353. data/ext/apache2/Hooks.h +1 -1
  354. data/ext/apache2/mod_passenger.c +10 -4
  355. data/ext/boost/algorithm/string/case_conv.hpp +4 -4
  356. data/ext/boost/algorithm/string/concept.hpp +2 -2
  357. data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
  358. data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
  359. data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
  360. data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
  361. data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
  362. data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
  363. data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
  364. data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
  365. data/ext/boost/algorithm/string/erase.hpp +98 -98
  366. data/ext/boost/algorithm/string/find_format.hpp +56 -38
  367. data/ext/boost/algorithm/string/finder.hpp +6 -6
  368. data/ext/boost/algorithm/string/formatter.hpp +1 -1
  369. data/ext/boost/algorithm/string/replace.hpp +99 -99
  370. data/ext/boost/bind.hpp +5 -1670
  371. data/ext/boost/bind/bind.hpp +1751 -0
  372. data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
  373. data/ext/boost/bind/mem_fn.hpp +389 -0
  374. data/ext/boost/bind/mem_fn_template.hpp +54 -27
  375. data/ext/boost/bind/placeholders.hpp +3 -2
  376. data/ext/boost/concept_check.hpp +10 -0
  377. data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
  378. data/ext/boost/config/abi_prefix.hpp +1 -1
  379. data/ext/boost/config/abi_suffix.hpp +3 -2
  380. data/ext/boost/config/auto_link.hpp +6 -1
  381. data/ext/boost/config/compiler/borland.hpp +75 -17
  382. data/ext/boost/config/compiler/codegear.hpp +163 -0
  383. data/ext/boost/config/compiler/common_edg.hpp +35 -0
  384. data/ext/boost/config/compiler/digitalmars.hpp +26 -0
  385. data/ext/boost/config/compiler/gcc.hpp +69 -14
  386. data/ext/boost/config/compiler/hp_acc.hpp +32 -0
  387. data/ext/boost/config/compiler/intel.hpp +13 -2
  388. data/ext/boost/config/compiler/kai.hpp +0 -2
  389. data/ext/boost/config/compiler/metrowerks.hpp +29 -1
  390. data/ext/boost/config/compiler/mpw.hpp +30 -0
  391. data/ext/boost/config/compiler/pgi.hpp +37 -0
  392. data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
  393. data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
  394. data/ext/boost/config/compiler/vacpp.hpp +31 -3
  395. data/ext/boost/config/compiler/visualc.hpp +72 -5
  396. data/ext/boost/config/no_tr1/cmath.hpp +28 -0
  397. data/ext/boost/config/platform/bsd.hpp +16 -3
  398. data/ext/boost/config/platform/hpux.hpp +3 -0
  399. data/ext/boost/config/platform/macos.hpp +8 -0
  400. data/ext/boost/config/platform/solaris.hpp +7 -0
  401. data/ext/boost/config/platform/vxworks.hpp +31 -0
  402. data/ext/boost/config/select_compiler_config.hpp +4 -0
  403. data/ext/boost/config/select_platform_config.hpp +6 -2
  404. data/ext/boost/config/select_stdlib_config.hpp +17 -8
  405. data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
  406. data/ext/boost/config/stdlib/libcomo.hpp +25 -0
  407. data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
  408. data/ext/boost/config/stdlib/modena.hpp +25 -0
  409. data/ext/boost/config/stdlib/msl.hpp +24 -0
  410. data/ext/boost/config/stdlib/roguewave.hpp +26 -0
  411. data/ext/boost/config/stdlib/sgi.hpp +25 -0
  412. data/ext/boost/config/stdlib/stlport.hpp +36 -1
  413. data/ext/boost/config/stdlib/vacpp.hpp +25 -0
  414. data/ext/boost/config/suffix.hpp +67 -32
  415. data/ext/boost/config/warning_disable.hpp +47 -0
  416. data/ext/boost/cstdint.hpp +62 -36
  417. data/ext/boost/date_time/c_time.hpp +28 -12
  418. data/ext/boost/date_time/compiler_config.hpp +27 -5
  419. data/ext/boost/date_time/constrained_value.hpp +36 -13
  420. data/ext/boost/date_time/date.hpp +44 -33
  421. data/ext/boost/date_time/date_duration.hpp +13 -14
  422. data/ext/boost/date_time/date_facet.hpp +215 -226
  423. data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
  424. data/ext/boost/date_time/date_generator_parser.hpp +52 -51
  425. data/ext/boost/date_time/date_generators.hpp +16 -16
  426. data/ext/boost/date_time/date_parsing.hpp +115 -98
  427. data/ext/boost/date_time/filetime_functions.hpp +133 -41
  428. data/ext/boost/date_time/format_date_parser.hpp +22 -10
  429. data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
  430. data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
  431. data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
  432. data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
  433. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
  434. data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  435. data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
  436. data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
  437. data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
  438. data/ext/boost/date_time/int_adapter.hpp +4 -2
  439. data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
  440. data/ext/boost/date_time/period_parser.hpp +17 -15
  441. data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
  442. data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
  443. data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
  444. data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
  445. data/ext/boost/date_time/string_parse_tree.hpp +46 -46
  446. data/ext/boost/date_time/strings_from_facet.hpp +7 -5
  447. data/ext/boost/date_time/time.hpp +7 -6
  448. data/ext/boost/date_time/time_defs.hpp +12 -2
  449. data/ext/boost/date_time/time_duration.hpp +27 -26
  450. data/ext/boost/date_time/time_facet.hpp +386 -321
  451. data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
  452. data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
  453. data/ext/boost/date_time/time_system_split.hpp +7 -13
  454. data/ext/boost/date_time/wrapping_int.hpp +21 -15
  455. data/ext/boost/detail/call_traits.hpp +1 -1
  456. data/ext/boost/detail/endian.hpp +4 -4
  457. data/ext/boost/detail/no_exceptions_support.hpp +87 -0
  458. data/ext/boost/detail/sp_typeinfo.hpp +50 -4
  459. data/ext/boost/detail/workaround.hpp +63 -3
  460. data/ext/boost/enable_shared_from_this.hpp +4 -59
  461. data/ext/boost/exception/current_exception_cast.hpp +43 -0
  462. data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
  463. data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
  464. data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
  465. data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
  466. data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
  467. data/ext/boost/exception/detail/type_info.hpp +79 -0
  468. data/ext/boost/exception/diagnostic_information.hpp +182 -0
  469. data/ext/boost/exception/exception.hpp +422 -0
  470. data/ext/boost/exception/get_error_info.hpp +130 -0
  471. data/ext/boost/exception/info.hpp +167 -0
  472. data/ext/boost/exception/to_string.hpp +83 -0
  473. data/ext/boost/exception/to_string_stub.hpp +109 -0
  474. data/ext/boost/exception_ptr.hpp +11 -0
  475. data/ext/boost/function/detail/prologue.hpp +2 -1
  476. data/ext/boost/function/function_base.hpp +270 -128
  477. data/ext/boost/function/function_fwd.hpp +70 -0
  478. data/ext/boost/function/function_template.hpp +319 -130
  479. data/ext/boost/get_pointer.hpp +5 -1
  480. data/ext/boost/integer.hpp +253 -0
  481. data/ext/boost/integer_fwd.hpp +174 -0
  482. data/ext/boost/integer_traits.hpp +26 -1
  483. data/ext/boost/io/ios_state.hpp +8 -0
  484. data/ext/boost/iterator/detail/config_def.hpp +4 -2
  485. data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
  486. data/ext/boost/iterator/iterator_facade.hpp +1 -2
  487. data/ext/boost/lexical_cast.hpp +113 -105
  488. data/ext/boost/limits.hpp +1 -1
  489. data/ext/boost/mem_fn.hpp +5 -370
  490. data/ext/boost/memory_order.hpp +53 -0
  491. data/ext/boost/mpl/always.hpp +3 -3
  492. data/ext/boost/mpl/and.hpp +3 -3
  493. data/ext/boost/mpl/apply.hpp +3 -3
  494. data/ext/boost/mpl/apply_fwd.hpp +3 -3
  495. data/ext/boost/mpl/apply_wrap.hpp +37 -6
  496. data/ext/boost/mpl/arg.hpp +3 -3
  497. data/ext/boost/mpl/arg_fwd.hpp +3 -3
  498. data/ext/boost/mpl/assert.hpp +6 -6
  499. data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
  500. data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
  501. data/ext/boost/mpl/aux_/arity.hpp +3 -3
  502. data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
  503. data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
  504. data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
  505. data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
  506. data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
  507. data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
  508. data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
  509. data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
  510. data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
  511. data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
  512. data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
  513. data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
  514. data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
  515. data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
  516. data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
  517. data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
  518. data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
  519. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
  520. data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
  521. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
  522. data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
  523. data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
  524. data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
  525. data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
  526. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
  527. data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
  528. data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
  529. data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
  530. data/ext/boost/mpl/aux_/has_type.hpp +3 -3
  531. data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
  532. data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
  533. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
  534. data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
  535. data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
  536. data/ext/boost/mpl/aux_/na.hpp +3 -3
  537. data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
  538. data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
  539. data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
  540. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
  541. data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
  542. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
  543. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
  544. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
  545. data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
  546. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
  547. data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
  548. data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
  549. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
  550. data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
  551. data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
  552. data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
  553. data/ext/boost/mpl/bind.hpp +3 -3
  554. data/ext/boost/mpl/bind_fwd.hpp +3 -3
  555. data/ext/boost/mpl/bool.hpp +3 -3
  556. data/ext/boost/mpl/bool_fwd.hpp +3 -3
  557. data/ext/boost/mpl/eval_if.hpp +3 -3
  558. data/ext/boost/mpl/has_xxx.hpp +10 -8
  559. data/ext/boost/mpl/identity.hpp +3 -3
  560. data/ext/boost/mpl/if.hpp +3 -3
  561. data/ext/boost/mpl/int.hpp +3 -3
  562. data/ext/boost/mpl/int_fwd.hpp +3 -3
  563. data/ext/boost/mpl/integral_c.hpp +3 -3
  564. data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
  565. data/ext/boost/mpl/integral_c_tag.hpp +3 -3
  566. data/ext/boost/mpl/lambda.hpp +3 -3
  567. data/ext/boost/mpl/lambda_fwd.hpp +3 -3
  568. data/ext/boost/mpl/limits/arity.hpp +3 -3
  569. data/ext/boost/mpl/logical.hpp +3 -3
  570. data/ext/boost/mpl/next.hpp +3 -3
  571. data/ext/boost/mpl/next_prior.hpp +3 -3
  572. data/ext/boost/mpl/not.hpp +3 -3
  573. data/ext/boost/mpl/or.hpp +3 -3
  574. data/ext/boost/mpl/placeholders.hpp +3 -3
  575. data/ext/boost/mpl/protect.hpp +3 -3
  576. data/ext/boost/mpl/quote.hpp +18 -7
  577. data/ext/boost/mpl/size_t.hpp +3 -3
  578. data/ext/boost/mpl/size_t_fwd.hpp +3 -3
  579. data/ext/boost/mpl/void.hpp +3 -3
  580. data/ext/boost/mpl/void_fwd.hpp +3 -3
  581. data/ext/boost/non_type.hpp +27 -27
  582. data/ext/boost/operators.hpp +51 -18
  583. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  584. data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
  585. data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
  586. data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
  587. data/ext/boost/preprocessor/logical/not.hpp +30 -0
  588. data/ext/boost/preprocessor/seq/cat.hpp +48 -0
  589. data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
  590. data/ext/boost/preprocessor/seq/transform.hpp +48 -0
  591. data/ext/boost/range/as_literal.hpp +10 -14
  592. data/ext/boost/range/begin.hpp +4 -4
  593. data/ext/boost/range/detail/implementation_help.hpp +4 -0
  594. data/ext/boost/range/end.hpp +4 -4
  595. data/ext/boost/range/iterator_range.hpp +31 -15
  596. data/ext/boost/ref.hpp +12 -1
  597. data/ext/boost/scoped_array.hpp +16 -0
  598. data/ext/boost/scoped_ptr.hpp +16 -0
  599. data/ext/boost/shared_ptr.hpp +2 -602
  600. data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
  601. data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
  602. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
  603. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
  604. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
  605. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
  606. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
  607. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
  608. data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
  609. data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
  610. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
  611. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
  612. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
  613. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
  614. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
  615. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
  616. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
  617. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
  618. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
  619. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
  620. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
  621. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
  622. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
  623. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
  624. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
  625. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
  626. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
  627. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
  628. data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
  629. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
  630. data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
  631. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
  632. data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
  633. data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
  634. data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
  635. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
  636. data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
  637. data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
  638. data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
  639. data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
  640. data/ext/boost/src/pthread/thread.cpp +115 -203
  641. data/ext/boost/src/tss_null.cpp +1 -1
  642. data/ext/boost/static_assert.hpp +14 -4
  643. data/ext/boost/thread.hpp +7 -2
  644. data/ext/boost/thread/barrier.hpp +63 -0
  645. data/ext/boost/thread/detail/force_cast.hpp +39 -0
  646. data/ext/boost/thread/detail/move.hpp +29 -2
  647. data/ext/boost/thread/detail/platform.hpp +3 -3
  648. data/ext/boost/thread/detail/singleton.hpp +59 -0
  649. data/ext/boost/thread/detail/thread.hpp +496 -0
  650. data/ext/boost/thread/detail/thread_group.hpp +105 -0
  651. data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
  652. data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
  653. data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
  654. data/ext/boost/thread/exceptions.hpp +174 -60
  655. data/ext/boost/thread/future.hpp +1364 -0
  656. data/ext/boost/thread/locks.hpp +899 -32
  657. data/ext/boost/thread/once.hpp +4 -0
  658. data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
  659. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
  660. data/ext/boost/thread/pthread/mutex.hpp +20 -7
  661. data/ext/boost/thread/pthread/once.hpp +7 -2
  662. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
  663. data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
  664. data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
  665. data/ext/boost/thread/pthread/thread_data.hpp +37 -10
  666. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
  667. data/ext/boost/thread/pthread/timespec.hpp +11 -3
  668. data/ext/boost/thread/shared_mutex.hpp +21 -0
  669. data/ext/boost/thread/thread.hpp +8 -3
  670. data/ext/boost/thread/thread_time.hpp +4 -0
  671. data/ext/boost/thread/tss.hpp +106 -13
  672. data/ext/boost/thread/xtime.hpp +6 -2
  673. data/ext/boost/throw_exception.hpp +36 -7
  674. data/ext/boost/token_functions.hpp +1 -1
  675. data/ext/boost/tokenizer.hpp +1 -1
  676. data/ext/boost/type_traits/add_pointer.hpp +1 -1
  677. data/ext/boost/type_traits/add_volatile.hpp +47 -0
  678. data/ext/boost/type_traits/alignment_of.hpp +29 -1
  679. data/ext/boost/type_traits/config.hpp +1 -1
  680. data/ext/boost/type_traits/conversion_traits.hpp +1 -1
  681. data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
  682. data/ext/boost/type_traits/intrinsics.hpp +88 -1
  683. data/ext/boost/type_traits/is_abstract.hpp +14 -5
  684. data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
  685. data/ext/boost/type_traits/is_array.hpp +3 -2
  686. data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
  687. data/ext/boost/type_traits/is_base_of.hpp +51 -0
  688. data/ext/boost/type_traits/is_class.hpp +12 -0
  689. data/ext/boost/type_traits/is_const.hpp +6 -2
  690. data/ext/boost/type_traits/is_convertible.hpp +14 -2
  691. data/ext/boost/type_traits/is_enum.hpp +10 -1
  692. data/ext/boost/type_traits/is_function.hpp +11 -3
  693. data/ext/boost/type_traits/is_fundamental.hpp +45 -0
  694. data/ext/boost/type_traits/is_integral.hpp +5 -0
  695. data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
  696. data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
  697. data/ext/boost/type_traits/is_pointer.hpp +3 -1
  698. data/ext/boost/type_traits/is_reference.hpp +4 -2
  699. data/ext/boost/type_traits/is_signed.hpp +135 -0
  700. data/ext/boost/type_traits/is_unsigned.hpp +130 -0
  701. data/ext/boost/type_traits/is_void.hpp +5 -0
  702. data/ext/boost/type_traits/is_volatile.hpp +4 -2
  703. data/ext/boost/type_traits/make_unsigned.hpp +137 -0
  704. data/ext/boost/type_traits/remove_reference.hpp +1 -1
  705. data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
  706. data/ext/boost/utility.hpp +2 -1
  707. data/ext/boost/utility/addressof.hpp +61 -17
  708. data/ext/boost/utility/binary.hpp +708 -0
  709. data/ext/boost/utility/enable_if.hpp +2 -2
  710. data/ext/boost/weak_ptr.hpp +4 -174
  711. data/ext/common/AbstractSpawnManager.h +110 -0
  712. data/ext/common/Account.h +175 -0
  713. data/ext/common/AccountsDatabase.cpp +81 -0
  714. data/ext/common/AccountsDatabase.h +130 -0
  715. data/ext/common/AgentBase.cpp +323 -0
  716. data/ext/common/{Version.h → AgentBase.h} +14 -6
  717. data/ext/common/AgentsStarter.cpp +154 -0
  718. data/ext/common/AgentsStarter.h +81 -0
  719. data/ext/common/AgentsStarter.hpp +619 -0
  720. data/ext/common/ApplicationPool/Client.h +796 -0
  721. data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
  722. data/ext/common/ApplicationPool/Pool.h +1315 -0
  723. data/ext/common/ApplicationPool/Server.h +475 -0
  724. data/ext/common/BCrypt.cpp +343 -0
  725. data/ext/common/BCrypt.h +73 -0
  726. data/ext/common/Blowfish.c +685 -0
  727. data/ext/common/Blowfish.h +103 -0
  728. data/ext/common/Constants.h +48 -0
  729. data/ext/common/EventedClient.h +598 -0
  730. data/ext/common/EventedMessageServer.h +327 -0
  731. data/ext/common/EventedServer.h +295 -0
  732. data/ext/common/Exceptions.h +78 -1
  733. data/ext/common/FileDescriptor.h +229 -0
  734. data/ext/common/HelperAgent/BacktracesServer.h +59 -0
  735. data/ext/common/Logging.cpp +8 -9
  736. data/ext/common/Logging.h +593 -21
  737. data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
  738. data/ext/common/LoggingAgent/DataStoreId.h +177 -0
  739. data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
  740. data/ext/common/LoggingAgent/Main.cpp +278 -0
  741. data/ext/common/LoggingAgent/RemoteSender.h +457 -0
  742. data/ext/common/MessageChannel.h +196 -34
  743. data/ext/common/MessageClient.h +297 -0
  744. data/ext/common/MessageReadersWriters.h +508 -0
  745. data/ext/common/MessageServer.h +575 -0
  746. data/ext/common/PoolOptions.h +279 -117
  747. data/ext/common/Process.h +255 -0
  748. data/ext/common/RandomGenerator.h +160 -0
  749. data/ext/common/ResourceLocator.h +84 -0
  750. data/ext/common/ServerInstanceDir.h +343 -0
  751. data/ext/common/Session.h +470 -0
  752. data/ext/common/SpawnManager.h +256 -201
  753. data/ext/common/StaticString.h +79 -4
  754. data/ext/common/StringListCreator.h +2 -2
  755. data/ext/common/Utils.cpp +385 -397
  756. data/ext/common/Utils.h +79 -165
  757. data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
  758. data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
  759. data/ext/common/Utils/BlockingQueue.h +136 -0
  760. data/ext/common/Utils/BlockingScalar.h +50 -0
  761. data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
  762. data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
  763. data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
  764. data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
  765. data/ext/common/Utils/FileHandleGuard.h +81 -0
  766. data/ext/common/Utils/IOUtils.cpp +754 -0
  767. data/ext/common/Utils/IOUtils.h +253 -0
  768. data/ext/common/Utils/MD5.cpp +406 -0
  769. data/ext/common/Utils/MD5.h +98 -0
  770. data/ext/common/Utils/MemZeroGuard.h +103 -0
  771. data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
  772. data/ext/common/Utils/ScopeGuard.h +72 -0
  773. data/ext/common/Utils/StrIntUtils.cpp +329 -0
  774. data/ext/common/Utils/StrIntUtils.h +228 -0
  775. data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
  776. data/ext/common/Utils/SystemTime.h +201 -0
  777. data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
  778. data/ext/common/Utils/VariantMap.h +363 -0
  779. data/ext/common/Utils/foo.cpp +10 -0
  780. data/ext/common/Watchdog.cpp +1034 -0
  781. data/ext/google/COPYING +28 -0
  782. data/ext/google/ChangeLog +167 -0
  783. data/ext/google/dense_hash_map +310 -0
  784. data/ext/google/dense_hash_set +287 -0
  785. data/ext/google/sparse_hash_map +294 -0
  786. data/ext/google/sparse_hash_set +275 -0
  787. data/ext/google/sparsehash/densehashtable.h +1062 -0
  788. data/ext/google/sparsehash/sparseconfig.h +55 -0
  789. data/ext/google/sparsehash/sparsehashtable.h +1015 -0
  790. data/ext/google/sparsetable +1468 -0
  791. data/ext/google/type_traits.h +250 -0
  792. data/ext/libev/Changes +302 -0
  793. data/ext/libev/LICENSE +36 -0
  794. data/ext/libev/Makefile.am +18 -0
  795. data/ext/libev/Makefile.in +685 -0
  796. data/ext/libev/README +58 -0
  797. data/ext/libev/aclocal.m4 +7549 -0
  798. data/ext/libev/autogen.sh +6 -0
  799. data/ext/libev/config.guess +1526 -0
  800. data/ext/libev/config.h +122 -0
  801. data/ext/libev/config.h.in +121 -0
  802. data/ext/libev/config.sub +1658 -0
  803. data/ext/libev/configure +22156 -0
  804. data/ext/libev/configure.ac +18 -0
  805. data/ext/libev/ev++.h +800 -0
  806. data/ext/libev/ev.c +3694 -0
  807. data/ext/libev/ev.h +705 -0
  808. data/ext/libev/ev_epoll.c +228 -0
  809. data/ext/libev/ev_kqueue.c +196 -0
  810. data/ext/libev/ev_poll.c +144 -0
  811. data/ext/libev/ev_port.c +165 -0
  812. data/ext/libev/ev_select.c +308 -0
  813. data/ext/libev/ev_vars.h +187 -0
  814. data/ext/libev/ev_win32.c +153 -0
  815. data/ext/libev/ev_wrap.h +178 -0
  816. data/ext/libev/event.c +401 -0
  817. data/ext/libev/event.h +158 -0
  818. data/ext/libev/install-sh +294 -0
  819. data/ext/libev/libev.m4 +38 -0
  820. data/ext/libev/ltmain.sh +6871 -0
  821. data/ext/libev/missing +336 -0
  822. data/ext/libev/mkinstalldirs +111 -0
  823. data/ext/nginx/Configuration.c +532 -182
  824. data/ext/nginx/Configuration.h +33 -10
  825. data/ext/nginx/ContentHandler.c +188 -53
  826. data/ext/nginx/ContentHandler.h +1 -1
  827. data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
  828. data/ext/nginx/HttpStatusExtractor.h +1 -1
  829. data/ext/nginx/ScgiRequestParser.h +68 -11
  830. data/ext/nginx/StaticContentHandler.c +4 -1
  831. data/ext/nginx/StaticContentHandler.h +1 -1
  832. data/ext/nginx/config +5 -5
  833. data/ext/nginx/ngx_http_passenger_module.c +315 -469
  834. data/ext/nginx/ngx_http_passenger_module.h +8 -17
  835. data/ext/oxt/backtrace.cpp +49 -41
  836. data/ext/oxt/backtrace.hpp +1 -1
  837. data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
  838. data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
  839. data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
  840. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
  841. data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
  842. data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
  843. data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
  844. data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
  845. data/ext/oxt/dynamic_thread_group.hpp +195 -0
  846. data/ext/oxt/macros.hpp +1 -1
  847. data/ext/oxt/spin_lock.hpp +4 -2
  848. data/ext/oxt/system_calls.cpp +129 -13
  849. data/ext/oxt/system_calls.hpp +16 -2
  850. data/ext/oxt/thread.cpp +1 -1
  851. data/ext/oxt/thread.hpp +49 -14
  852. data/ext/oxt/tracable_exception.cpp +5 -5
  853. data/ext/oxt/tracable_exception.hpp +1 -1
  854. data/ext/phusion_passenger/extconf.rb +7 -2
  855. data/ext/phusion_passenger/native_support.c +733 -33
  856. data/{bin → helper-scripts}/passenger-spawn-server +50 -12
  857. data/helper-scripts/prespawn +63 -0
  858. data/lib/phusion_passenger.rb +113 -0
  859. data/lib/phusion_passenger/abstract_installer.rb +50 -12
  860. data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
  861. data/lib/phusion_passenger/abstract_server.rb +125 -122
  862. data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
  863. data/lib/phusion_passenger/admin_tools.rb +1 -1
  864. data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
  865. data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
  866. data/lib/phusion_passenger/analytics_logger.rb +342 -0
  867. data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
  868. data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
  869. data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
  870. data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
  871. data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
  872. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
  873. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
  874. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
  875. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
  876. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
  877. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
  878. data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
  879. data/lib/phusion_passenger/console_text_template.rb +1 -1
  880. data/lib/phusion_passenger/constants.rb +9 -5
  881. data/lib/phusion_passenger/debug_logging.rb +104 -0
  882. data/lib/phusion_passenger/dependencies.rb +187 -4
  883. data/lib/phusion_passenger/exceptions.rb +4 -4
  884. data/lib/phusion_passenger/html_template.rb +6 -8
  885. data/lib/phusion_passenger/message_channel.rb +137 -21
  886. data/lib/phusion_passenger/message_client.rb +173 -0
  887. data/lib/phusion_passenger/native_support.rb +108 -0
  888. data/lib/phusion_passenger/packaging.rb +82 -13
  889. data/lib/phusion_passenger/platform_info.rb +84 -475
  890. data/lib/phusion_passenger/platform_info/apache.rb +329 -0
  891. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
  892. data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
  893. data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
  894. data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
  895. data/lib/phusion_passenger/platform_info/linux.rb +77 -0
  896. data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
  897. data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
  898. data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
  899. data/lib/phusion_passenger/plugin.rb +96 -0
  900. data/lib/phusion_passenger/public_api.rb +112 -0
  901. data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
  902. data/lib/phusion_passenger/rack/request_handler.rb +36 -13
  903. data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
  904. data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
  905. data/lib/phusion_passenger/spawn_manager.rb +137 -141
  906. data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
  907. data/lib/phusion_passenger/standalone/command.rb +237 -0
  908. data/lib/phusion_passenger/standalone/config_file.rb +119 -0
  909. data/lib/phusion_passenger/standalone/help_command.rb +57 -0
  910. data/lib/phusion_passenger/standalone/main.rb +101 -0
  911. data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
  912. data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
  913. data/lib/phusion_passenger/standalone/start_command.rb +510 -0
  914. data/lib/phusion_passenger/standalone/status_command.rb +62 -0
  915. data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
  916. data/lib/phusion_passenger/standalone/utils.rb +42 -0
  917. data/lib/phusion_passenger/standalone/version_command.rb +42 -0
  918. data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
  919. data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
  920. data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
  921. data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
  922. data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
  923. data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
  924. data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
  925. data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
  926. data/lib/phusion_passenger/utils.rb +476 -125
  927. data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
  928. data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
  929. data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
  930. data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
  931. data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
  932. data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
  933. data/misc/copy_boost_headers.rb +36 -9
  934. data/misc/find_owner_pipe_leaks.rb +1 -1
  935. data/misc/render_error_pages.rb +1 -1
  936. data/misc/union_station_gateway.crt +32 -0
  937. data/test/config.yml.example +24 -13
  938. data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
  939. data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
  940. data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
  941. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
  942. data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
  943. data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
  944. data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
  945. data/test/cxx/EventedClientTest.cpp +386 -0
  946. data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
  947. data/test/cxx/FileDescriptorTest.cpp +69 -0
  948. data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
  949. data/test/cxx/IOUtilsTest.cpp +398 -0
  950. data/test/cxx/LoggingTest.cpp +914 -0
  951. data/test/cxx/MessageChannelTest.cpp +672 -0
  952. data/test/cxx/MessageReadersWritersTest.cpp +574 -0
  953. data/test/cxx/MessageServerTest.cpp +383 -0
  954. data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
  955. data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
  956. data/test/cxx/ServerInstanceDirTest.cpp +186 -0
  957. data/test/cxx/SpawnManagerTest.cpp +161 -0
  958. data/test/cxx/StaticStringTest.cpp +86 -0
  959. data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
  960. data/test/cxx/TestSupport.cpp +166 -0
  961. data/test/cxx/TestSupport.h +254 -0
  962. data/test/cxx/UtilsTest.cpp +521 -0
  963. data/test/cxx/VariantMapTest.cpp +179 -0
  964. data/test/integration_tests/apache2_tests.rb +198 -127
  965. data/test/integration_tests/cgi_environment_spec.rb +26 -0
  966. data/test/integration_tests/mycook_spec.rb +2 -28
  967. data/test/integration_tests/nginx_tests.rb +125 -16
  968. data/test/integration_tests/spec_helper.rb +19 -0
  969. data/test/oxt/backtrace_test.cpp +19 -59
  970. data/test/oxt/counter.hpp +55 -0
  971. data/test/oxt/dynamic_thread_group_test.cpp +131 -0
  972. data/test/oxt/oxt_test_main.cpp +2 -2
  973. data/test/oxt/spin_lock_test.cpp +59 -0
  974. data/test/oxt/syscall_interruption_test.cpp +1 -1
  975. data/test/ruby/abstract_request_handler_spec.rb +346 -25
  976. data/test/ruby/abstract_server_collection_spec.rb +4 -3
  977. data/test/ruby/abstract_server_spec.rb +37 -27
  978. data/test/ruby/admin_tools_spec.rb +362 -0
  979. data/test/ruby/analytics_logger_spec.rb +253 -0
  980. data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
  981. data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
  982. data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
  983. data/test/ruby/debug_logging_spec.rb +141 -0
  984. data/test/ruby/message_channel_spec.rb +51 -25
  985. data/test/ruby/rack/application_spawner_spec.rb +99 -82
  986. data/test/ruby/shared/abstract_server_spec.rb +23 -0
  987. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
  988. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
  989. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
  990. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
  991. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
  992. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
  993. data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
  994. data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
  995. data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
  996. data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
  997. data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
  998. data/test/ruby/spawn_manager_spec.rb +104 -175
  999. data/test/ruby/spec_helper.rb +104 -0
  1000. data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
  1001. data/test/ruby/utils/hosts_file_parser.rb +258 -0
  1002. data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
  1003. data/test/ruby/utils_spec.rb +410 -59
  1004. data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
  1005. data/test/stub/apache2/httpd.conf.erb +11 -6
  1006. data/test/stub/message_channel.rb +3 -1
  1007. data/test/stub/message_channel_2.rb +3 -1
  1008. data/test/stub/message_channel_3.rb +5 -3
  1009. data/test/stub/nginx/nginx.conf.erb +3 -2
  1010. data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
  1011. data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
  1012. data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
  1013. data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
  1014. data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
  1015. data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
  1016. data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
  1017. data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
  1018. data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
  1019. data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
  1020. data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
  1021. data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
  1022. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
  1023. data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
  1024. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
  1025. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
  1026. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
  1027. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
  1028. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
  1029. data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
  1030. data/test/stub/rails_apps/1.2/empty/script/about +3 -0
  1031. data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
  1032. data/test/stub/rails_apps/1.2/empty/script/console +3 -0
  1033. data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
  1034. data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
  1035. data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
  1036. data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
  1037. data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
  1038. data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
  1039. data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
  1040. data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
  1041. data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
  1042. data/test/stub/rails_apps/1.2/empty/script/server +3 -0
  1043. data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
  1044. data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
  1045. data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
  1046. data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
  1047. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
  1048. data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
  1049. data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
  1050. data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
  1051. data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
  1052. data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
  1053. data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
  1054. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
  1055. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
  1056. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
  1057. data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
  1058. data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
  1059. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
  1060. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
  1061. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
  1062. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
  1063. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
  1064. data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
  1065. data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
  1066. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
  1067. data/test/stub/rails_apps/2.0/empty/script/about +3 -0
  1068. data/test/stub/rails_apps/2.0/empty/script/console +3 -0
  1069. data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
  1070. data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
  1071. data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
  1072. data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
  1073. data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
  1074. data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
  1075. data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
  1076. data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
  1077. data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
  1078. data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
  1079. data/test/stub/rails_apps/2.0/empty/script/server +3 -0
  1080. data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
  1081. data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
  1082. data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
  1083. data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
  1084. data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
  1085. data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
  1086. data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
  1087. data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
  1088. data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
  1089. data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
  1090. data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
  1091. data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
  1092. data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
  1093. data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
  1094. data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
  1095. data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
  1096. data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
  1097. data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
  1098. data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
  1099. data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
  1100. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
  1101. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
  1102. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
  1103. data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
  1104. data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
  1105. data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
  1106. data/test/stub/rails_apps/2.2/empty/script/about +4 -0
  1107. data/test/stub/rails_apps/2.2/empty/script/console +3 -0
  1108. data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
  1109. data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
  1110. data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
  1111. data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
  1112. data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
  1113. data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
  1114. data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
  1115. data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
  1116. data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
  1117. data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
  1118. data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
  1119. data/test/stub/rails_apps/2.2/empty/script/server +3 -0
  1120. data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
  1121. data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
  1122. data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
  1123. data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
  1124. data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
  1125. data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
  1126. data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
  1127. data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
  1128. data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
  1129. data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
  1130. data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
  1131. data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
  1132. data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
  1133. data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
  1134. data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
  1135. data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
  1136. data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
  1137. data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
  1138. data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
  1139. data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
  1140. data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
  1141. data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
  1142. data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
  1143. data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
  1144. data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
  1145. data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
  1146. data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
  1147. data/test/stub/rails_apps/2.3/empty/script/about +4 -0
  1148. data/test/stub/rails_apps/2.3/empty/script/console +3 -0
  1149. data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
  1150. data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
  1151. data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
  1152. data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
  1153. data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
  1154. data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
  1155. data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
  1156. data/test/stub/rails_apps/2.3/empty/script/server +3 -0
  1157. data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
  1158. data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
  1159. data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
  1160. data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
  1161. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
  1162. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
  1163. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
  1164. data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
  1165. data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
  1166. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
  1167. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
  1168. data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
  1169. data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
  1170. data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
  1171. data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
  1172. data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
  1173. data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
  1174. data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
  1175. data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
  1176. data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
  1177. data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
  1178. data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
  1179. data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
  1180. data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
  1181. data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
  1182. data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
  1183. data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
  1184. data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
  1185. data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
  1186. data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
  1187. data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
  1188. data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
  1189. data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
  1190. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
  1191. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
  1192. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
  1193. data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
  1194. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
  1195. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
  1196. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
  1197. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
  1198. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
  1199. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
  1200. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
  1201. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
  1202. data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
  1203. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
  1204. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
  1205. data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
  1206. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
  1207. data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
  1208. data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
  1209. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
  1210. data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
  1211. data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
  1212. data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
  1213. data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
  1214. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
  1215. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
  1216. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
  1217. data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
  1218. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
  1219. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
  1220. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
  1221. data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
  1222. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
  1223. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
  1224. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
  1225. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
  1226. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
  1227. data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
  1228. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
  1229. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
  1230. data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
  1231. data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
  1232. data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
  1233. data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
  1234. data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
  1235. data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
  1236. data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
  1237. data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
  1238. data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
  1239. data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
  1240. data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
  1241. data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
  1242. data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
  1243. data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
  1244. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
  1245. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
  1246. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
  1247. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
  1248. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
  1249. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
  1250. data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
  1251. data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
  1252. data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
  1253. data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
  1254. data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
  1255. data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
  1256. data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
  1257. data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
  1258. data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
  1259. data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
  1260. data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
  1261. data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
  1262. data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
  1263. data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
  1264. data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
  1265. data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
  1266. data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
  1267. data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
  1268. data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
  1269. data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
  1270. data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
  1271. data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
  1272. data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
  1273. data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
  1274. data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
  1275. data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
  1276. data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
  1277. data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
  1278. data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
  1279. data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
  1280. data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
  1281. data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
  1282. data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
  1283. data/test/stub/spawn_server.rb +4 -2
  1284. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
  1285. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
  1286. data/test/support/apache2_controller.rb +10 -2
  1287. data/test/support/nginx_controller.rb +3 -2
  1288. data/test/support/test_helper.rb +282 -46
  1289. data/test/{support → tut}/tut.h +6 -0
  1290. data/test/{support → tut}/tut_reporter.h +0 -0
  1291. metadata +824 -266
  1292. data/benchmark/ApplicationPool.cpp +0 -52
  1293. data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
  1294. data/benchmark/dispatcher.rb +0 -42
  1295. data/benchmark/overhead_of_password_checking.rb +0 -81
  1296. data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
  1297. data/benchmark/unix_sockets_vs_pipes.rb +0 -83
  1298. data/ext/boost/LICENSE.TXT +0 -23
  1299. data/ext/boost/VERSION.TXT +0 -1
  1300. data/ext/boost/detail/sp_counted_base.hpp +0 -81
  1301. data/ext/boost/src/pthread/exceptions.cpp +0 -146
  1302. data/ext/boost/src/win32/exceptions.cpp +0 -124
  1303. data/ext/boost/src/win32/thread.cpp +0 -629
  1304. data/ext/boost/src/win32/timeconv.inl +0 -130
  1305. data/ext/boost/src/win32/tss_dll.cpp +0 -72
  1306. data/ext/boost/src/win32/tss_pe.cpp +0 -269
  1307. data/ext/boost/thread/pthread/thread.hpp +0 -339
  1308. data/ext/boost/thread/pthread/tss.hpp +0 -103
  1309. data/ext/common/Application.h +0 -511
  1310. data/ext/common/ApplicationPoolServer.h +0 -794
  1311. data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
  1312. data/ext/common/ApplicationPoolStatusReporter.h +0 -336
  1313. data/ext/common/DummySpawnManager.h +0 -108
  1314. data/ext/common/StandardApplicationPool.h +0 -821
  1315. data/ext/common/SystemTime.h +0 -88
  1316. data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
  1317. data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
  1318. data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
  1319. data/test/ApplicationPoolServerTest.cpp +0 -114
  1320. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
  1321. data/test/ApplicationPoolTest.cpp +0 -599
  1322. data/test/MessageChannelTest.cpp +0 -320
  1323. data/test/SpawnManagerTest.cpp +0 -64
  1324. data/test/StandardApplicationPoolTest.cpp +0 -27
  1325. data/test/StaticStringTest.cpp +0 -51
  1326. data/test/UtilsTest.cpp +0 -257
  1327. data/test/ruby/rails/application_spawner_spec.rb +0 -159
  1328. data/test/ruby/rails/framework_spawner_spec.rb +0 -133
  1329. data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
  1330. data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
  1331. data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
  1332. data/test/ruby/spawn_server_spec.rb +0 -26
  1333. data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
  1334. data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
  1335. data/test/support/Support.cpp +0 -84
  1336. data/test/support/Support.h +0 -118
  1337. data/test/support/config.rb +0 -38
  1338. data/test/support/run_rspec_tests.rb +0 -10
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ libtoolize --force
4
+ automake --add-missing
5
+ autoreconf
6
+
@@ -0,0 +1,1526 @@
1
+ #! /bin/sh
2
+ # Attempt to guess a canonical system name.
3
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
+ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
5
+ # Free Software Foundation, Inc.
6
+
7
+ timestamp='2008-01-23'
8
+
9
+ # This file is free software; you can redistribute it and/or modify it
10
+ # under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful, but
15
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22
+ # 02110-1301, USA.
23
+ #
24
+ # As a special exception to the GNU General Public License, if you
25
+ # distribute this file as part of a program that contains a
26
+ # configuration script generated by Autoconf, you may include it under
27
+ # the same distribution terms that you use for the rest of that program.
28
+
29
+
30
+ # Originally written by Per Bothner <per@bothner.com>.
31
+ # Please send patches to <config-patches@gnu.org>. Submit a context
32
+ # diff and a properly formatted ChangeLog entry.
33
+ #
34
+ # This script attempts to guess a canonical system name similar to
35
+ # config.sub. If it succeeds, it prints the system name on stdout, and
36
+ # exits with 0. Otherwise, it exits with 1.
37
+ #
38
+ # The plan is that this can be called by configure scripts if you
39
+ # don't specify an explicit build system type.
40
+
41
+ me=`echo "$0" | sed -e 's,.*/,,'`
42
+
43
+ usage="\
44
+ Usage: $0 [OPTION]
45
+
46
+ Output the configuration name of the system \`$me' is run on.
47
+
48
+ Operation modes:
49
+ -h, --help print this help, then exit
50
+ -t, --time-stamp print date of last modification, then exit
51
+ -v, --version print version number, then exit
52
+
53
+ Report bugs and patches to <config-patches@gnu.org>."
54
+
55
+ version="\
56
+ GNU config.guess ($timestamp)
57
+
58
+ Originally written by Per Bothner.
59
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
60
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
61
+
62
+ This is free software; see the source for copying conditions. There is NO
63
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
64
+
65
+ help="
66
+ Try \`$me --help' for more information."
67
+
68
+ # Parse command line
69
+ while test $# -gt 0 ; do
70
+ case $1 in
71
+ --time-stamp | --time* | -t )
72
+ echo "$timestamp" ; exit ;;
73
+ --version | -v )
74
+ echo "$version" ; exit ;;
75
+ --help | --h* | -h )
76
+ echo "$usage"; exit ;;
77
+ -- ) # Stop option processing
78
+ shift; break ;;
79
+ - ) # Use stdin as input.
80
+ break ;;
81
+ -* )
82
+ echo "$me: invalid option $1$help" >&2
83
+ exit 1 ;;
84
+ * )
85
+ break ;;
86
+ esac
87
+ done
88
+
89
+ if test $# != 0; then
90
+ echo "$me: too many arguments$help" >&2
91
+ exit 1
92
+ fi
93
+
94
+ trap 'exit 1' 1 2 15
95
+
96
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
97
+ # compiler to aid in system detection is discouraged as it requires
98
+ # temporary files to be created and, as you can see below, it is a
99
+ # headache to deal with in a portable fashion.
100
+
101
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
102
+ # use `HOST_CC' if defined, but it is deprecated.
103
+
104
+ # Portable tmp directory creation inspired by the Autoconf team.
105
+
106
+ set_cc_for_build='
107
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
108
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
109
+ : ${TMPDIR=/tmp} ;
110
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
111
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
112
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
113
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
114
+ dummy=$tmp/dummy ;
115
+ tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
116
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
117
+ ,,) echo "int x;" > $dummy.c ;
118
+ for c in cc gcc c89 c99 ; do
119
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
120
+ CC_FOR_BUILD="$c"; break ;
121
+ fi ;
122
+ done ;
123
+ if test x"$CC_FOR_BUILD" = x ; then
124
+ CC_FOR_BUILD=no_compiler_found ;
125
+ fi
126
+ ;;
127
+ ,,*) CC_FOR_BUILD=$CC ;;
128
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
129
+ esac ; set_cc_for_build= ;'
130
+
131
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
132
+ # (ghazi@noc.rutgers.edu 1994-08-24)
133
+ if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
134
+ PATH=$PATH:/.attbin ; export PATH
135
+ fi
136
+
137
+ UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
138
+ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
139
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
140
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
141
+
142
+ # Note: order is significant - the case branches are not exclusive.
143
+
144
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
145
+ *:NetBSD:*:*)
146
+ # NetBSD (nbsd) targets should (where applicable) match one or
147
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
148
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
149
+ # switched to ELF, *-*-netbsd* would select the old
150
+ # object file format. This provides both forward
151
+ # compatibility and a consistent mechanism for selecting the
152
+ # object file format.
153
+ #
154
+ # Note: NetBSD doesn't particularly care about the vendor
155
+ # portion of the name. We always set it to "unknown".
156
+ sysctl="sysctl -n hw.machine_arch"
157
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
158
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
159
+ case "${UNAME_MACHINE_ARCH}" in
160
+ armeb) machine=armeb-unknown ;;
161
+ arm*) machine=arm-unknown ;;
162
+ sh3el) machine=shl-unknown ;;
163
+ sh3eb) machine=sh-unknown ;;
164
+ sh5el) machine=sh5le-unknown ;;
165
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
166
+ esac
167
+ # The Operating System including object format, if it has switched
168
+ # to ELF recently, or will in the future.
169
+ case "${UNAME_MACHINE_ARCH}" in
170
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
171
+ eval $set_cc_for_build
172
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
173
+ | grep __ELF__ >/dev/null
174
+ then
175
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
176
+ # Return netbsd for either. FIX?
177
+ os=netbsd
178
+ else
179
+ os=netbsdelf
180
+ fi
181
+ ;;
182
+ *)
183
+ os=netbsd
184
+ ;;
185
+ esac
186
+ # The OS release
187
+ # Debian GNU/NetBSD machines have a different userland, and
188
+ # thus, need a distinct triplet. However, they do not need
189
+ # kernel version information, so it can be replaced with a
190
+ # suitable tag, in the style of linux-gnu.
191
+ case "${UNAME_VERSION}" in
192
+ Debian*)
193
+ release='-gnu'
194
+ ;;
195
+ *)
196
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
197
+ ;;
198
+ esac
199
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
200
+ # contains redundant information, the shorter form:
201
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
202
+ echo "${machine}-${os}${release}"
203
+ exit ;;
204
+ *:OpenBSD:*:*)
205
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
206
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
207
+ exit ;;
208
+ *:ekkoBSD:*:*)
209
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
210
+ exit ;;
211
+ *:SolidBSD:*:*)
212
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
213
+ exit ;;
214
+ macppc:MirBSD:*:*)
215
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
216
+ exit ;;
217
+ *:MirBSD:*:*)
218
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
219
+ exit ;;
220
+ alpha:OSF1:*:*)
221
+ case $UNAME_RELEASE in
222
+ *4.0)
223
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
224
+ ;;
225
+ *5.*)
226
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
227
+ ;;
228
+ esac
229
+ # According to Compaq, /usr/sbin/psrinfo has been available on
230
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
231
+ # covers most systems running today. This code pipes the CPU
232
+ # types through head -n 1, so we only detect the type of CPU 0.
233
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
234
+ case "$ALPHA_CPU_TYPE" in
235
+ "EV4 (21064)")
236
+ UNAME_MACHINE="alpha" ;;
237
+ "EV4.5 (21064)")
238
+ UNAME_MACHINE="alpha" ;;
239
+ "LCA4 (21066/21068)")
240
+ UNAME_MACHINE="alpha" ;;
241
+ "EV5 (21164)")
242
+ UNAME_MACHINE="alphaev5" ;;
243
+ "EV5.6 (21164A)")
244
+ UNAME_MACHINE="alphaev56" ;;
245
+ "EV5.6 (21164PC)")
246
+ UNAME_MACHINE="alphapca56" ;;
247
+ "EV5.7 (21164PC)")
248
+ UNAME_MACHINE="alphapca57" ;;
249
+ "EV6 (21264)")
250
+ UNAME_MACHINE="alphaev6" ;;
251
+ "EV6.7 (21264A)")
252
+ UNAME_MACHINE="alphaev67" ;;
253
+ "EV6.8CB (21264C)")
254
+ UNAME_MACHINE="alphaev68" ;;
255
+ "EV6.8AL (21264B)")
256
+ UNAME_MACHINE="alphaev68" ;;
257
+ "EV6.8CX (21264D)")
258
+ UNAME_MACHINE="alphaev68" ;;
259
+ "EV6.9A (21264/EV69A)")
260
+ UNAME_MACHINE="alphaev69" ;;
261
+ "EV7 (21364)")
262
+ UNAME_MACHINE="alphaev7" ;;
263
+ "EV7.9 (21364A)")
264
+ UNAME_MACHINE="alphaev79" ;;
265
+ esac
266
+ # A Pn.n version is a patched version.
267
+ # A Vn.n version is a released version.
268
+ # A Tn.n version is a released field test version.
269
+ # A Xn.n version is an unreleased experimental baselevel.
270
+ # 1.2 uses "1.2" for uname -r.
271
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
272
+ exit ;;
273
+ Alpha\ *:Windows_NT*:*)
274
+ # How do we know it's Interix rather than the generic POSIX subsystem?
275
+ # Should we change UNAME_MACHINE based on the output of uname instead
276
+ # of the specific Alpha model?
277
+ echo alpha-pc-interix
278
+ exit ;;
279
+ 21064:Windows_NT:50:3)
280
+ echo alpha-dec-winnt3.5
281
+ exit ;;
282
+ Amiga*:UNIX_System_V:4.0:*)
283
+ echo m68k-unknown-sysv4
284
+ exit ;;
285
+ *:[Aa]miga[Oo][Ss]:*:*)
286
+ echo ${UNAME_MACHINE}-unknown-amigaos
287
+ exit ;;
288
+ *:[Mm]orph[Oo][Ss]:*:*)
289
+ echo ${UNAME_MACHINE}-unknown-morphos
290
+ exit ;;
291
+ *:OS/390:*:*)
292
+ echo i370-ibm-openedition
293
+ exit ;;
294
+ *:z/VM:*:*)
295
+ echo s390-ibm-zvmoe
296
+ exit ;;
297
+ *:OS400:*:*)
298
+ echo powerpc-ibm-os400
299
+ exit ;;
300
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
301
+ echo arm-acorn-riscix${UNAME_RELEASE}
302
+ exit ;;
303
+ arm:riscos:*:*|arm:RISCOS:*:*)
304
+ echo arm-unknown-riscos
305
+ exit ;;
306
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
307
+ echo hppa1.1-hitachi-hiuxmpp
308
+ exit ;;
309
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
310
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
311
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
312
+ echo pyramid-pyramid-sysv3
313
+ else
314
+ echo pyramid-pyramid-bsd
315
+ fi
316
+ exit ;;
317
+ NILE*:*:*:dcosx)
318
+ echo pyramid-pyramid-svr4
319
+ exit ;;
320
+ DRS?6000:unix:4.0:6*)
321
+ echo sparc-icl-nx6
322
+ exit ;;
323
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
324
+ case `/usr/bin/uname -p` in
325
+ sparc) echo sparc-icl-nx7; exit ;;
326
+ esac ;;
327
+ sun4H:SunOS:5.*:*)
328
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
329
+ exit ;;
330
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
331
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
332
+ exit ;;
333
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
334
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335
+ exit ;;
336
+ sun4*:SunOS:6*:*)
337
+ # According to config.sub, this is the proper way to canonicalize
338
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
339
+ # it's likely to be more like Solaris than SunOS4.
340
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
341
+ exit ;;
342
+ sun4*:SunOS:*:*)
343
+ case "`/usr/bin/arch -k`" in
344
+ Series*|S4*)
345
+ UNAME_RELEASE=`uname -v`
346
+ ;;
347
+ esac
348
+ # Japanese Language versions have a version number like `4.1.3-JL'.
349
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
350
+ exit ;;
351
+ sun3*:SunOS:*:*)
352
+ echo m68k-sun-sunos${UNAME_RELEASE}
353
+ exit ;;
354
+ sun*:*:4.2BSD:*)
355
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
356
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
357
+ case "`/bin/arch`" in
358
+ sun3)
359
+ echo m68k-sun-sunos${UNAME_RELEASE}
360
+ ;;
361
+ sun4)
362
+ echo sparc-sun-sunos${UNAME_RELEASE}
363
+ ;;
364
+ esac
365
+ exit ;;
366
+ aushp:SunOS:*:*)
367
+ echo sparc-auspex-sunos${UNAME_RELEASE}
368
+ exit ;;
369
+ # The situation for MiNT is a little confusing. The machine name
370
+ # can be virtually everything (everything which is not
371
+ # "atarist" or "atariste" at least should have a processor
372
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
373
+ # to the lowercase version "mint" (or "freemint"). Finally
374
+ # the system name "TOS" denotes a system which is actually not
375
+ # MiNT. But MiNT is downward compatible to TOS, so this should
376
+ # be no problem.
377
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
378
+ echo m68k-atari-mint${UNAME_RELEASE}
379
+ exit ;;
380
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
381
+ echo m68k-atari-mint${UNAME_RELEASE}
382
+ exit ;;
383
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
384
+ echo m68k-atari-mint${UNAME_RELEASE}
385
+ exit ;;
386
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
387
+ echo m68k-milan-mint${UNAME_RELEASE}
388
+ exit ;;
389
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
390
+ echo m68k-hades-mint${UNAME_RELEASE}
391
+ exit ;;
392
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
393
+ echo m68k-unknown-mint${UNAME_RELEASE}
394
+ exit ;;
395
+ m68k:machten:*:*)
396
+ echo m68k-apple-machten${UNAME_RELEASE}
397
+ exit ;;
398
+ powerpc:machten:*:*)
399
+ echo powerpc-apple-machten${UNAME_RELEASE}
400
+ exit ;;
401
+ RISC*:Mach:*:*)
402
+ echo mips-dec-mach_bsd4.3
403
+ exit ;;
404
+ RISC*:ULTRIX:*:*)
405
+ echo mips-dec-ultrix${UNAME_RELEASE}
406
+ exit ;;
407
+ VAX*:ULTRIX*:*:*)
408
+ echo vax-dec-ultrix${UNAME_RELEASE}
409
+ exit ;;
410
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
411
+ echo clipper-intergraph-clix${UNAME_RELEASE}
412
+ exit ;;
413
+ mips:*:*:UMIPS | mips:*:*:RISCos)
414
+ eval $set_cc_for_build
415
+ sed 's/^ //' << EOF >$dummy.c
416
+ #ifdef __cplusplus
417
+ #include <stdio.h> /* for printf() prototype */
418
+ int main (int argc, char *argv[]) {
419
+ #else
420
+ int main (argc, argv) int argc; char *argv[]; {
421
+ #endif
422
+ #if defined (host_mips) && defined (MIPSEB)
423
+ #if defined (SYSTYPE_SYSV)
424
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
425
+ #endif
426
+ #if defined (SYSTYPE_SVR4)
427
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
428
+ #endif
429
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
430
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
431
+ #endif
432
+ #endif
433
+ exit (-1);
434
+ }
435
+ EOF
436
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
437
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
438
+ SYSTEM_NAME=`$dummy $dummyarg` &&
439
+ { echo "$SYSTEM_NAME"; exit; }
440
+ echo mips-mips-riscos${UNAME_RELEASE}
441
+ exit ;;
442
+ Motorola:PowerMAX_OS:*:*)
443
+ echo powerpc-motorola-powermax
444
+ exit ;;
445
+ Motorola:*:4.3:PL8-*)
446
+ echo powerpc-harris-powermax
447
+ exit ;;
448
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
449
+ echo powerpc-harris-powermax
450
+ exit ;;
451
+ Night_Hawk:Power_UNIX:*:*)
452
+ echo powerpc-harris-powerunix
453
+ exit ;;
454
+ m88k:CX/UX:7*:*)
455
+ echo m88k-harris-cxux7
456
+ exit ;;
457
+ m88k:*:4*:R4*)
458
+ echo m88k-motorola-sysv4
459
+ exit ;;
460
+ m88k:*:3*:R3*)
461
+ echo m88k-motorola-sysv3
462
+ exit ;;
463
+ AViiON:dgux:*:*)
464
+ # DG/UX returns AViiON for all architectures
465
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
466
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
467
+ then
468
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
469
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
470
+ then
471
+ echo m88k-dg-dgux${UNAME_RELEASE}
472
+ else
473
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
474
+ fi
475
+ else
476
+ echo i586-dg-dgux${UNAME_RELEASE}
477
+ fi
478
+ exit ;;
479
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
480
+ echo m88k-dolphin-sysv3
481
+ exit ;;
482
+ M88*:*:R3*:*)
483
+ # Delta 88k system running SVR3
484
+ echo m88k-motorola-sysv3
485
+ exit ;;
486
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
487
+ echo m88k-tektronix-sysv3
488
+ exit ;;
489
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
490
+ echo m68k-tektronix-bsd
491
+ exit ;;
492
+ *:IRIX*:*:*)
493
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
494
+ exit ;;
495
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
496
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
497
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
498
+ i*86:AIX:*:*)
499
+ echo i386-ibm-aix
500
+ exit ;;
501
+ ia64:AIX:*:*)
502
+ if [ -x /usr/bin/oslevel ] ; then
503
+ IBM_REV=`/usr/bin/oslevel`
504
+ else
505
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
506
+ fi
507
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
508
+ exit ;;
509
+ *:AIX:2:3)
510
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
511
+ eval $set_cc_for_build
512
+ sed 's/^ //' << EOF >$dummy.c
513
+ #include <sys/systemcfg.h>
514
+
515
+ main()
516
+ {
517
+ if (!__power_pc())
518
+ exit(1);
519
+ puts("powerpc-ibm-aix3.2.5");
520
+ exit(0);
521
+ }
522
+ EOF
523
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
524
+ then
525
+ echo "$SYSTEM_NAME"
526
+ else
527
+ echo rs6000-ibm-aix3.2.5
528
+ fi
529
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
530
+ echo rs6000-ibm-aix3.2.4
531
+ else
532
+ echo rs6000-ibm-aix3.2
533
+ fi
534
+ exit ;;
535
+ *:AIX:*:[456])
536
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
537
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
538
+ IBM_ARCH=rs6000
539
+ else
540
+ IBM_ARCH=powerpc
541
+ fi
542
+ if [ -x /usr/bin/oslevel ] ; then
543
+ IBM_REV=`/usr/bin/oslevel`
544
+ else
545
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
546
+ fi
547
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
548
+ exit ;;
549
+ *:AIX:*:*)
550
+ echo rs6000-ibm-aix
551
+ exit ;;
552
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
553
+ echo romp-ibm-bsd4.4
554
+ exit ;;
555
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
556
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
557
+ exit ;; # report: romp-ibm BSD 4.3
558
+ *:BOSX:*:*)
559
+ echo rs6000-bull-bosx
560
+ exit ;;
561
+ DPX/2?00:B.O.S.:*:*)
562
+ echo m68k-bull-sysv3
563
+ exit ;;
564
+ 9000/[34]??:4.3bsd:1.*:*)
565
+ echo m68k-hp-bsd
566
+ exit ;;
567
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
568
+ echo m68k-hp-bsd4.4
569
+ exit ;;
570
+ 9000/[34678]??:HP-UX:*:*)
571
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
572
+ case "${UNAME_MACHINE}" in
573
+ 9000/31? ) HP_ARCH=m68000 ;;
574
+ 9000/[34]?? ) HP_ARCH=m68k ;;
575
+ 9000/[678][0-9][0-9])
576
+ if [ -x /usr/bin/getconf ]; then
577
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
578
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
579
+ case "${sc_cpu_version}" in
580
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
581
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
582
+ 532) # CPU_PA_RISC2_0
583
+ case "${sc_kernel_bits}" in
584
+ 32) HP_ARCH="hppa2.0n" ;;
585
+ 64) HP_ARCH="hppa2.0w" ;;
586
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
587
+ esac ;;
588
+ esac
589
+ fi
590
+ if [ "${HP_ARCH}" = "" ]; then
591
+ eval $set_cc_for_build
592
+ sed 's/^ //' << EOF >$dummy.c
593
+
594
+ #define _HPUX_SOURCE
595
+ #include <stdlib.h>
596
+ #include <unistd.h>
597
+
598
+ int main ()
599
+ {
600
+ #if defined(_SC_KERNEL_BITS)
601
+ long bits = sysconf(_SC_KERNEL_BITS);
602
+ #endif
603
+ long cpu = sysconf (_SC_CPU_VERSION);
604
+
605
+ switch (cpu)
606
+ {
607
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
608
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
609
+ case CPU_PA_RISC2_0:
610
+ #if defined(_SC_KERNEL_BITS)
611
+ switch (bits)
612
+ {
613
+ case 64: puts ("hppa2.0w"); break;
614
+ case 32: puts ("hppa2.0n"); break;
615
+ default: puts ("hppa2.0"); break;
616
+ } break;
617
+ #else /* !defined(_SC_KERNEL_BITS) */
618
+ puts ("hppa2.0"); break;
619
+ #endif
620
+ default: puts ("hppa1.0"); break;
621
+ }
622
+ exit (0);
623
+ }
624
+ EOF
625
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
626
+ test -z "$HP_ARCH" && HP_ARCH=hppa
627
+ fi ;;
628
+ esac
629
+ if [ ${HP_ARCH} = "hppa2.0w" ]
630
+ then
631
+ eval $set_cc_for_build
632
+
633
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
634
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
635
+ # generating 64-bit code. GNU and HP use different nomenclature:
636
+ #
637
+ # $ CC_FOR_BUILD=cc ./config.guess
638
+ # => hppa2.0w-hp-hpux11.23
639
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
640
+ # => hppa64-hp-hpux11.23
641
+
642
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
643
+ grep __LP64__ >/dev/null
644
+ then
645
+ HP_ARCH="hppa2.0w"
646
+ else
647
+ HP_ARCH="hppa64"
648
+ fi
649
+ fi
650
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
651
+ exit ;;
652
+ ia64:HP-UX:*:*)
653
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
654
+ echo ia64-hp-hpux${HPUX_REV}
655
+ exit ;;
656
+ 3050*:HI-UX:*:*)
657
+ eval $set_cc_for_build
658
+ sed 's/^ //' << EOF >$dummy.c
659
+ #include <unistd.h>
660
+ int
661
+ main ()
662
+ {
663
+ long cpu = sysconf (_SC_CPU_VERSION);
664
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
665
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
666
+ results, however. */
667
+ if (CPU_IS_PA_RISC (cpu))
668
+ {
669
+ switch (cpu)
670
+ {
671
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
672
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
673
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
674
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
675
+ }
676
+ }
677
+ else if (CPU_IS_HP_MC68K (cpu))
678
+ puts ("m68k-hitachi-hiuxwe2");
679
+ else puts ("unknown-hitachi-hiuxwe2");
680
+ exit (0);
681
+ }
682
+ EOF
683
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
684
+ { echo "$SYSTEM_NAME"; exit; }
685
+ echo unknown-hitachi-hiuxwe2
686
+ exit ;;
687
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
688
+ echo hppa1.1-hp-bsd
689
+ exit ;;
690
+ 9000/8??:4.3bsd:*:*)
691
+ echo hppa1.0-hp-bsd
692
+ exit ;;
693
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
694
+ echo hppa1.0-hp-mpeix
695
+ exit ;;
696
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
697
+ echo hppa1.1-hp-osf
698
+ exit ;;
699
+ hp8??:OSF1:*:*)
700
+ echo hppa1.0-hp-osf
701
+ exit ;;
702
+ i*86:OSF1:*:*)
703
+ if [ -x /usr/sbin/sysversion ] ; then
704
+ echo ${UNAME_MACHINE}-unknown-osf1mk
705
+ else
706
+ echo ${UNAME_MACHINE}-unknown-osf1
707
+ fi
708
+ exit ;;
709
+ parisc*:Lites*:*:*)
710
+ echo hppa1.1-hp-lites
711
+ exit ;;
712
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
713
+ echo c1-convex-bsd
714
+ exit ;;
715
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
716
+ if getsysinfo -f scalar_acc
717
+ then echo c32-convex-bsd
718
+ else echo c2-convex-bsd
719
+ fi
720
+ exit ;;
721
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
722
+ echo c34-convex-bsd
723
+ exit ;;
724
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
725
+ echo c38-convex-bsd
726
+ exit ;;
727
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
728
+ echo c4-convex-bsd
729
+ exit ;;
730
+ CRAY*Y-MP:*:*:*)
731
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
732
+ exit ;;
733
+ CRAY*[A-Z]90:*:*:*)
734
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
735
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
736
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
737
+ -e 's/\.[^.]*$/.X/'
738
+ exit ;;
739
+ CRAY*TS:*:*:*)
740
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
741
+ exit ;;
742
+ CRAY*T3E:*:*:*)
743
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
744
+ exit ;;
745
+ CRAY*SV1:*:*:*)
746
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
747
+ exit ;;
748
+ *:UNICOS/mp:*:*)
749
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
750
+ exit ;;
751
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
752
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
753
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
754
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
755
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
756
+ exit ;;
757
+ 5000:UNIX_System_V:4.*:*)
758
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
759
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
760
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
761
+ exit ;;
762
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
763
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
764
+ exit ;;
765
+ sparc*:BSD/OS:*:*)
766
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
767
+ exit ;;
768
+ *:BSD/OS:*:*)
769
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
770
+ exit ;;
771
+ *:FreeBSD:*:*)
772
+ case ${UNAME_MACHINE} in
773
+ pc98)
774
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
775
+ amd64)
776
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
777
+ *)
778
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
779
+ esac
780
+ exit ;;
781
+ i*:CYGWIN*:*)
782
+ echo ${UNAME_MACHINE}-pc-cygwin
783
+ exit ;;
784
+ *:MINGW*:*)
785
+ echo ${UNAME_MACHINE}-pc-mingw32
786
+ exit ;;
787
+ i*:windows32*:*)
788
+ # uname -m includes "-pc" on this system.
789
+ echo ${UNAME_MACHINE}-mingw32
790
+ exit ;;
791
+ i*:PW*:*)
792
+ echo ${UNAME_MACHINE}-pc-pw32
793
+ exit ;;
794
+ *:Interix*:[3456]*)
795
+ case ${UNAME_MACHINE} in
796
+ x86)
797
+ echo i586-pc-interix${UNAME_RELEASE}
798
+ exit ;;
799
+ EM64T | authenticamd)
800
+ echo x86_64-unknown-interix${UNAME_RELEASE}
801
+ exit ;;
802
+ IA64)
803
+ echo ia64-unknown-interix${UNAME_RELEASE}
804
+ exit ;;
805
+ esac ;;
806
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
807
+ echo i${UNAME_MACHINE}-pc-mks
808
+ exit ;;
809
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
810
+ # How do we know it's Interix rather than the generic POSIX subsystem?
811
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
812
+ # UNAME_MACHINE based on the output of uname instead of i386?
813
+ echo i586-pc-interix
814
+ exit ;;
815
+ i*:UWIN*:*)
816
+ echo ${UNAME_MACHINE}-pc-uwin
817
+ exit ;;
818
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
819
+ echo x86_64-unknown-cygwin
820
+ exit ;;
821
+ p*:CYGWIN*:*)
822
+ echo powerpcle-unknown-cygwin
823
+ exit ;;
824
+ prep*:SunOS:5.*:*)
825
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
826
+ exit ;;
827
+ *:GNU:*:*)
828
+ # the GNU system
829
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
830
+ exit ;;
831
+ *:GNU/*:*:*)
832
+ # other systems with GNU libc and userland
833
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
834
+ exit ;;
835
+ i*86:Minix:*:*)
836
+ echo ${UNAME_MACHINE}-pc-minix
837
+ exit ;;
838
+ arm*:Linux:*:*)
839
+ eval $set_cc_for_build
840
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
841
+ | grep -q __ARM_EABI__
842
+ then
843
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
844
+ else
845
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
846
+ fi
847
+ exit ;;
848
+ avr32*:Linux:*:*)
849
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
850
+ exit ;;
851
+ cris:Linux:*:*)
852
+ echo cris-axis-linux-gnu
853
+ exit ;;
854
+ crisv32:Linux:*:*)
855
+ echo crisv32-axis-linux-gnu
856
+ exit ;;
857
+ frv:Linux:*:*)
858
+ echo frv-unknown-linux-gnu
859
+ exit ;;
860
+ ia64:Linux:*:*)
861
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
862
+ exit ;;
863
+ m32r*:Linux:*:*)
864
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
865
+ exit ;;
866
+ m68*:Linux:*:*)
867
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
868
+ exit ;;
869
+ mips:Linux:*:*)
870
+ eval $set_cc_for_build
871
+ sed 's/^ //' << EOF >$dummy.c
872
+ #undef CPU
873
+ #undef mips
874
+ #undef mipsel
875
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
876
+ CPU=mipsel
877
+ #else
878
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
879
+ CPU=mips
880
+ #else
881
+ CPU=
882
+ #endif
883
+ #endif
884
+ EOF
885
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
886
+ /^CPU/{
887
+ s: ::g
888
+ p
889
+ }'`"
890
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
891
+ ;;
892
+ mips64:Linux:*:*)
893
+ eval $set_cc_for_build
894
+ sed 's/^ //' << EOF >$dummy.c
895
+ #undef CPU
896
+ #undef mips64
897
+ #undef mips64el
898
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
899
+ CPU=mips64el
900
+ #else
901
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
902
+ CPU=mips64
903
+ #else
904
+ CPU=
905
+ #endif
906
+ #endif
907
+ EOF
908
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
909
+ /^CPU/{
910
+ s: ::g
911
+ p
912
+ }'`"
913
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
914
+ ;;
915
+ or32:Linux:*:*)
916
+ echo or32-unknown-linux-gnu
917
+ exit ;;
918
+ ppc:Linux:*:*)
919
+ echo powerpc-unknown-linux-gnu
920
+ exit ;;
921
+ ppc64:Linux:*:*)
922
+ echo powerpc64-unknown-linux-gnu
923
+ exit ;;
924
+ alpha:Linux:*:*)
925
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
926
+ EV5) UNAME_MACHINE=alphaev5 ;;
927
+ EV56) UNAME_MACHINE=alphaev56 ;;
928
+ PCA56) UNAME_MACHINE=alphapca56 ;;
929
+ PCA57) UNAME_MACHINE=alphapca56 ;;
930
+ EV6) UNAME_MACHINE=alphaev6 ;;
931
+ EV67) UNAME_MACHINE=alphaev67 ;;
932
+ EV68*) UNAME_MACHINE=alphaev68 ;;
933
+ esac
934
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
935
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
936
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
937
+ exit ;;
938
+ parisc:Linux:*:* | hppa:Linux:*:*)
939
+ # Look for CPU level
940
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
941
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
942
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
943
+ *) echo hppa-unknown-linux-gnu ;;
944
+ esac
945
+ exit ;;
946
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
947
+ echo hppa64-unknown-linux-gnu
948
+ exit ;;
949
+ s390:Linux:*:* | s390x:Linux:*:*)
950
+ echo ${UNAME_MACHINE}-ibm-linux
951
+ exit ;;
952
+ sh64*:Linux:*:*)
953
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
954
+ exit ;;
955
+ sh*:Linux:*:*)
956
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
957
+ exit ;;
958
+ sparc:Linux:*:* | sparc64:Linux:*:*)
959
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
960
+ exit ;;
961
+ vax:Linux:*:*)
962
+ echo ${UNAME_MACHINE}-dec-linux-gnu
963
+ exit ;;
964
+ x86_64:Linux:*:*)
965
+ echo x86_64-unknown-linux-gnu
966
+ exit ;;
967
+ xtensa*:Linux:*:*)
968
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
969
+ exit ;;
970
+ i*86:Linux:*:*)
971
+ # The BFD linker knows what the default object file format is, so
972
+ # first see if it will tell us. cd to the root directory to prevent
973
+ # problems with other programs or directories called `ld' in the path.
974
+ # Set LC_ALL=C to ensure ld outputs messages in English.
975
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
976
+ | sed -ne '/supported targets:/!d
977
+ s/[ ][ ]*/ /g
978
+ s/.*supported targets: *//
979
+ s/ .*//
980
+ p'`
981
+ case "$ld_supported_targets" in
982
+ elf32-i386)
983
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
984
+ ;;
985
+ a.out-i386-linux)
986
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
987
+ exit ;;
988
+ coff-i386)
989
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
990
+ exit ;;
991
+ "")
992
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
993
+ # one that does not give us useful --help.
994
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
995
+ exit ;;
996
+ esac
997
+ # Determine whether the default compiler is a.out or elf
998
+ eval $set_cc_for_build
999
+ sed 's/^ //' << EOF >$dummy.c
1000
+ #include <features.h>
1001
+ #ifdef __ELF__
1002
+ # ifdef __GLIBC__
1003
+ # if __GLIBC__ >= 2
1004
+ LIBC=gnu
1005
+ # else
1006
+ LIBC=gnulibc1
1007
+ # endif
1008
+ # else
1009
+ LIBC=gnulibc1
1010
+ # endif
1011
+ #else
1012
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1013
+ LIBC=gnu
1014
+ #else
1015
+ LIBC=gnuaout
1016
+ #endif
1017
+ #endif
1018
+ #ifdef __dietlibc__
1019
+ LIBC=dietlibc
1020
+ #endif
1021
+ EOF
1022
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1023
+ /^LIBC/{
1024
+ s: ::g
1025
+ p
1026
+ }'`"
1027
+ test x"${LIBC}" != x && {
1028
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1029
+ exit
1030
+ }
1031
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1032
+ ;;
1033
+ i*86:DYNIX/ptx:4*:*)
1034
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1035
+ # earlier versions are messed up and put the nodename in both
1036
+ # sysname and nodename.
1037
+ echo i386-sequent-sysv4
1038
+ exit ;;
1039
+ i*86:UNIX_SV:4.2MP:2.*)
1040
+ # Unixware is an offshoot of SVR4, but it has its own version
1041
+ # number series starting with 2...
1042
+ # I am not positive that other SVR4 systems won't match this,
1043
+ # I just have to hope. -- rms.
1044
+ # Use sysv4.2uw... so that sysv4* matches it.
1045
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1046
+ exit ;;
1047
+ i*86:OS/2:*:*)
1048
+ # If we were able to find `uname', then EMX Unix compatibility
1049
+ # is probably installed.
1050
+ echo ${UNAME_MACHINE}-pc-os2-emx
1051
+ exit ;;
1052
+ i*86:XTS-300:*:STOP)
1053
+ echo ${UNAME_MACHINE}-unknown-stop
1054
+ exit ;;
1055
+ i*86:atheos:*:*)
1056
+ echo ${UNAME_MACHINE}-unknown-atheos
1057
+ exit ;;
1058
+ i*86:syllable:*:*)
1059
+ echo ${UNAME_MACHINE}-pc-syllable
1060
+ exit ;;
1061
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1062
+ echo i386-unknown-lynxos${UNAME_RELEASE}
1063
+ exit ;;
1064
+ i*86:*DOS:*:*)
1065
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
1066
+ exit ;;
1067
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1068
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1069
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1070
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1071
+ else
1072
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1073
+ fi
1074
+ exit ;;
1075
+ i*86:*:5:[678]*)
1076
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
1077
+ case `/bin/uname -X | grep "^Machine"` in
1078
+ *486*) UNAME_MACHINE=i486 ;;
1079
+ *Pentium) UNAME_MACHINE=i586 ;;
1080
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1081
+ esac
1082
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1083
+ exit ;;
1084
+ i*86:*:3.2:*)
1085
+ if test -f /usr/options/cb.name; then
1086
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1087
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1088
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
1089
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1090
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1091
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1092
+ && UNAME_MACHINE=i586
1093
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1094
+ && UNAME_MACHINE=i686
1095
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1096
+ && UNAME_MACHINE=i686
1097
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1098
+ else
1099
+ echo ${UNAME_MACHINE}-pc-sysv32
1100
+ fi
1101
+ exit ;;
1102
+ pc:*:*:*)
1103
+ # Left here for compatibility:
1104
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
1105
+ # the processor, so we play safe by assuming i386.
1106
+ echo i386-pc-msdosdjgpp
1107
+ exit ;;
1108
+ Intel:Mach:3*:*)
1109
+ echo i386-pc-mach3
1110
+ exit ;;
1111
+ paragon:*:*:*)
1112
+ echo i860-intel-osf1
1113
+ exit ;;
1114
+ i860:*:4.*:*) # i860-SVR4
1115
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1116
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1117
+ else # Add other i860-SVR4 vendors below as they are discovered.
1118
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1119
+ fi
1120
+ exit ;;
1121
+ mini*:CTIX:SYS*5:*)
1122
+ # "miniframe"
1123
+ echo m68010-convergent-sysv
1124
+ exit ;;
1125
+ mc68k:UNIX:SYSTEM5:3.51m)
1126
+ echo m68k-convergent-sysv
1127
+ exit ;;
1128
+ M680?0:D-NIX:5.3:*)
1129
+ echo m68k-diab-dnix
1130
+ exit ;;
1131
+ M68*:*:R3V[5678]*:*)
1132
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1133
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
1134
+ OS_REL=''
1135
+ test -r /etc/.relid \
1136
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1137
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1138
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1139
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1140
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1141
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1142
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1143
+ && { echo i486-ncr-sysv4; exit; } ;;
1144
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1145
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
1146
+ exit ;;
1147
+ mc68030:UNIX_System_V:4.*:*)
1148
+ echo m68k-atari-sysv4
1149
+ exit ;;
1150
+ TSUNAMI:LynxOS:2.*:*)
1151
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
1152
+ exit ;;
1153
+ rs6000:LynxOS:2.*:*)
1154
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
1155
+ exit ;;
1156
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1157
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
1158
+ exit ;;
1159
+ SM[BE]S:UNIX_SV:*:*)
1160
+ echo mips-dde-sysv${UNAME_RELEASE}
1161
+ exit ;;
1162
+ RM*:ReliantUNIX-*:*:*)
1163
+ echo mips-sni-sysv4
1164
+ exit ;;
1165
+ RM*:SINIX-*:*:*)
1166
+ echo mips-sni-sysv4
1167
+ exit ;;
1168
+ *:SINIX-*:*:*)
1169
+ if uname -p 2>/dev/null >/dev/null ; then
1170
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1171
+ echo ${UNAME_MACHINE}-sni-sysv4
1172
+ else
1173
+ echo ns32k-sni-sysv
1174
+ fi
1175
+ exit ;;
1176
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1177
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
1178
+ echo i586-unisys-sysv4
1179
+ exit ;;
1180
+ *:UNIX_System_V:4*:FTX*)
1181
+ # From Gerald Hewes <hewes@openmarket.com>.
1182
+ # How about differentiating between stratus architectures? -djm
1183
+ echo hppa1.1-stratus-sysv4
1184
+ exit ;;
1185
+ *:*:*:FTX*)
1186
+ # From seanf@swdc.stratus.com.
1187
+ echo i860-stratus-sysv4
1188
+ exit ;;
1189
+ i*86:VOS:*:*)
1190
+ # From Paul.Green@stratus.com.
1191
+ echo ${UNAME_MACHINE}-stratus-vos
1192
+ exit ;;
1193
+ *:VOS:*:*)
1194
+ # From Paul.Green@stratus.com.
1195
+ echo hppa1.1-stratus-vos
1196
+ exit ;;
1197
+ mc68*:A/UX:*:*)
1198
+ echo m68k-apple-aux${UNAME_RELEASE}
1199
+ exit ;;
1200
+ news*:NEWS-OS:6*:*)
1201
+ echo mips-sony-newsos6
1202
+ exit ;;
1203
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1204
+ if [ -d /usr/nec ]; then
1205
+ echo mips-nec-sysv${UNAME_RELEASE}
1206
+ else
1207
+ echo mips-unknown-sysv${UNAME_RELEASE}
1208
+ fi
1209
+ exit ;;
1210
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1211
+ echo powerpc-be-beos
1212
+ exit ;;
1213
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1214
+ echo powerpc-apple-beos
1215
+ exit ;;
1216
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1217
+ echo i586-pc-beos
1218
+ exit ;;
1219
+ SX-4:SUPER-UX:*:*)
1220
+ echo sx4-nec-superux${UNAME_RELEASE}
1221
+ exit ;;
1222
+ SX-5:SUPER-UX:*:*)
1223
+ echo sx5-nec-superux${UNAME_RELEASE}
1224
+ exit ;;
1225
+ SX-6:SUPER-UX:*:*)
1226
+ echo sx6-nec-superux${UNAME_RELEASE}
1227
+ exit ;;
1228
+ SX-7:SUPER-UX:*:*)
1229
+ echo sx7-nec-superux${UNAME_RELEASE}
1230
+ exit ;;
1231
+ SX-8:SUPER-UX:*:*)
1232
+ echo sx8-nec-superux${UNAME_RELEASE}
1233
+ exit ;;
1234
+ SX-8R:SUPER-UX:*:*)
1235
+ echo sx8r-nec-superux${UNAME_RELEASE}
1236
+ exit ;;
1237
+ Power*:Rhapsody:*:*)
1238
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
1239
+ exit ;;
1240
+ *:Rhapsody:*:*)
1241
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1242
+ exit ;;
1243
+ *:Darwin:*:*)
1244
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1245
+ case $UNAME_PROCESSOR in
1246
+ unknown) UNAME_PROCESSOR=powerpc ;;
1247
+ esac
1248
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1249
+ exit ;;
1250
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
1251
+ UNAME_PROCESSOR=`uname -p`
1252
+ if test "$UNAME_PROCESSOR" = "x86"; then
1253
+ UNAME_PROCESSOR=i386
1254
+ UNAME_MACHINE=pc
1255
+ fi
1256
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1257
+ exit ;;
1258
+ *:QNX:*:4*)
1259
+ echo i386-pc-qnx
1260
+ exit ;;
1261
+ NSE-?:NONSTOP_KERNEL:*:*)
1262
+ echo nse-tandem-nsk${UNAME_RELEASE}
1263
+ exit ;;
1264
+ NSR-?:NONSTOP_KERNEL:*:*)
1265
+ echo nsr-tandem-nsk${UNAME_RELEASE}
1266
+ exit ;;
1267
+ *:NonStop-UX:*:*)
1268
+ echo mips-compaq-nonstopux
1269
+ exit ;;
1270
+ BS2000:POSIX*:*:*)
1271
+ echo bs2000-siemens-sysv
1272
+ exit ;;
1273
+ DS/*:UNIX_System_V:*:*)
1274
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1275
+ exit ;;
1276
+ *:Plan9:*:*)
1277
+ # "uname -m" is not consistent, so use $cputype instead. 386
1278
+ # is converted to i386 for consistency with other x86
1279
+ # operating systems.
1280
+ if test "$cputype" = "386"; then
1281
+ UNAME_MACHINE=i386
1282
+ else
1283
+ UNAME_MACHINE="$cputype"
1284
+ fi
1285
+ echo ${UNAME_MACHINE}-unknown-plan9
1286
+ exit ;;
1287
+ *:TOPS-10:*:*)
1288
+ echo pdp10-unknown-tops10
1289
+ exit ;;
1290
+ *:TENEX:*:*)
1291
+ echo pdp10-unknown-tenex
1292
+ exit ;;
1293
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1294
+ echo pdp10-dec-tops20
1295
+ exit ;;
1296
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1297
+ echo pdp10-xkl-tops20
1298
+ exit ;;
1299
+ *:TOPS-20:*:*)
1300
+ echo pdp10-unknown-tops20
1301
+ exit ;;
1302
+ *:ITS:*:*)
1303
+ echo pdp10-unknown-its
1304
+ exit ;;
1305
+ SEI:*:*:SEIUX)
1306
+ echo mips-sei-seiux${UNAME_RELEASE}
1307
+ exit ;;
1308
+ *:DragonFly:*:*)
1309
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1310
+ exit ;;
1311
+ *:*VMS:*:*)
1312
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1313
+ case "${UNAME_MACHINE}" in
1314
+ A*) echo alpha-dec-vms ; exit ;;
1315
+ I*) echo ia64-dec-vms ; exit ;;
1316
+ V*) echo vax-dec-vms ; exit ;;
1317
+ esac ;;
1318
+ *:XENIX:*:SysV)
1319
+ echo i386-pc-xenix
1320
+ exit ;;
1321
+ i*86:skyos:*:*)
1322
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1323
+ exit ;;
1324
+ i*86:rdos:*:*)
1325
+ echo ${UNAME_MACHINE}-pc-rdos
1326
+ exit ;;
1327
+ esac
1328
+
1329
+ #echo '(No uname command or uname output not recognized.)' 1>&2
1330
+ #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1331
+
1332
+ eval $set_cc_for_build
1333
+ cat >$dummy.c <<EOF
1334
+ #ifdef _SEQUENT_
1335
+ # include <sys/types.h>
1336
+ # include <sys/utsname.h>
1337
+ #endif
1338
+ main ()
1339
+ {
1340
+ #if defined (sony)
1341
+ #if defined (MIPSEB)
1342
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1343
+ I don't know.... */
1344
+ printf ("mips-sony-bsd\n"); exit (0);
1345
+ #else
1346
+ #include <sys/param.h>
1347
+ printf ("m68k-sony-newsos%s\n",
1348
+ #ifdef NEWSOS4
1349
+ "4"
1350
+ #else
1351
+ ""
1352
+ #endif
1353
+ ); exit (0);
1354
+ #endif
1355
+ #endif
1356
+
1357
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
1358
+ printf ("arm-acorn-riscix\n"); exit (0);
1359
+ #endif
1360
+
1361
+ #if defined (hp300) && !defined (hpux)
1362
+ printf ("m68k-hp-bsd\n"); exit (0);
1363
+ #endif
1364
+
1365
+ #if defined (NeXT)
1366
+ #if !defined (__ARCHITECTURE__)
1367
+ #define __ARCHITECTURE__ "m68k"
1368
+ #endif
1369
+ int version;
1370
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1371
+ if (version < 4)
1372
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1373
+ else
1374
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1375
+ exit (0);
1376
+ #endif
1377
+
1378
+ #if defined (MULTIMAX) || defined (n16)
1379
+ #if defined (UMAXV)
1380
+ printf ("ns32k-encore-sysv\n"); exit (0);
1381
+ #else
1382
+ #if defined (CMU)
1383
+ printf ("ns32k-encore-mach\n"); exit (0);
1384
+ #else
1385
+ printf ("ns32k-encore-bsd\n"); exit (0);
1386
+ #endif
1387
+ #endif
1388
+ #endif
1389
+
1390
+ #if defined (__386BSD__)
1391
+ printf ("i386-pc-bsd\n"); exit (0);
1392
+ #endif
1393
+
1394
+ #if defined (sequent)
1395
+ #if defined (i386)
1396
+ printf ("i386-sequent-dynix\n"); exit (0);
1397
+ #endif
1398
+ #if defined (ns32000)
1399
+ printf ("ns32k-sequent-dynix\n"); exit (0);
1400
+ #endif
1401
+ #endif
1402
+
1403
+ #if defined (_SEQUENT_)
1404
+ struct utsname un;
1405
+
1406
+ uname(&un);
1407
+
1408
+ if (strncmp(un.version, "V2", 2) == 0) {
1409
+ printf ("i386-sequent-ptx2\n"); exit (0);
1410
+ }
1411
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1412
+ printf ("i386-sequent-ptx1\n"); exit (0);
1413
+ }
1414
+ printf ("i386-sequent-ptx\n"); exit (0);
1415
+
1416
+ #endif
1417
+
1418
+ #if defined (vax)
1419
+ # if !defined (ultrix)
1420
+ # include <sys/param.h>
1421
+ # if defined (BSD)
1422
+ # if BSD == 43
1423
+ printf ("vax-dec-bsd4.3\n"); exit (0);
1424
+ # else
1425
+ # if BSD == 199006
1426
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
1427
+ # else
1428
+ printf ("vax-dec-bsd\n"); exit (0);
1429
+ # endif
1430
+ # endif
1431
+ # else
1432
+ printf ("vax-dec-bsd\n"); exit (0);
1433
+ # endif
1434
+ # else
1435
+ printf ("vax-dec-ultrix\n"); exit (0);
1436
+ # endif
1437
+ #endif
1438
+
1439
+ #if defined (alliant) && defined (i860)
1440
+ printf ("i860-alliant-bsd\n"); exit (0);
1441
+ #endif
1442
+
1443
+ exit (1);
1444
+ }
1445
+ EOF
1446
+
1447
+ $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1448
+ { echo "$SYSTEM_NAME"; exit; }
1449
+
1450
+ # Apollos put the system type in the environment.
1451
+
1452
+ test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1453
+
1454
+ # Convex versions that predate uname can use getsysinfo(1)
1455
+
1456
+ if [ -x /usr/convex/getsysinfo ]
1457
+ then
1458
+ case `getsysinfo -f cpu_type` in
1459
+ c1*)
1460
+ echo c1-convex-bsd
1461
+ exit ;;
1462
+ c2*)
1463
+ if getsysinfo -f scalar_acc
1464
+ then echo c32-convex-bsd
1465
+ else echo c2-convex-bsd
1466
+ fi
1467
+ exit ;;
1468
+ c34*)
1469
+ echo c34-convex-bsd
1470
+ exit ;;
1471
+ c38*)
1472
+ echo c38-convex-bsd
1473
+ exit ;;
1474
+ c4*)
1475
+ echo c4-convex-bsd
1476
+ exit ;;
1477
+ esac
1478
+ fi
1479
+
1480
+ cat >&2 <<EOF
1481
+ $0: unable to guess system type
1482
+
1483
+ This script, last modified $timestamp, has failed to recognize
1484
+ the operating system you are using. It is advised that you
1485
+ download the most up to date version of the config scripts from
1486
+
1487
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1488
+ and
1489
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1490
+
1491
+ If the version you run ($0) is already up to date, please
1492
+ send the following data and any information you think might be
1493
+ pertinent to <config-patches@gnu.org> in order to provide the needed
1494
+ information to handle your system.
1495
+
1496
+ config.guess timestamp = $timestamp
1497
+
1498
+ uname -m = `(uname -m) 2>/dev/null || echo unknown`
1499
+ uname -r = `(uname -r) 2>/dev/null || echo unknown`
1500
+ uname -s = `(uname -s) 2>/dev/null || echo unknown`
1501
+ uname -v = `(uname -v) 2>/dev/null || echo unknown`
1502
+
1503
+ /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1504
+ /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1505
+
1506
+ hostinfo = `(hostinfo) 2>/dev/null`
1507
+ /bin/universe = `(/bin/universe) 2>/dev/null`
1508
+ /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1509
+ /bin/arch = `(/bin/arch) 2>/dev/null`
1510
+ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1511
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1512
+
1513
+ UNAME_MACHINE = ${UNAME_MACHINE}
1514
+ UNAME_RELEASE = ${UNAME_RELEASE}
1515
+ UNAME_SYSTEM = ${UNAME_SYSTEM}
1516
+ UNAME_VERSION = ${UNAME_VERSION}
1517
+ EOF
1518
+
1519
+ exit 1
1520
+
1521
+ # Local variables:
1522
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
1523
+ # time-stamp-start: "timestamp='"
1524
+ # time-stamp-format: "%:y-%02m-%02d"
1525
+ # time-stamp-end: "'"
1526
+ # End: