passenger 5.0.30 → 5.1.0

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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +30 -1
  3. data/CONTRIBUTING.md +1 -1
  4. data/CONTRIBUTORS +2 -0
  5. data/bin/passenger-install-nginx-module +18 -13
  6. data/build/agent.rb +1 -0
  7. data/build/basics.rb +1 -0
  8. data/build/cxx_tests.rb +6 -1
  9. data/build/misc.rb +3 -0
  10. data/build/packaging.rb +5 -17
  11. data/build/support/cxx_dependency_map.rb +100 -0
  12. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +4 -1
  13. data/build/test_basics.rb +12 -2
  14. data/dev/ci/run_travis.sh +6 -2
  15. data/doc/Users guide Apache.html +7 -2
  16. data/doc/Users guide Apache.txt +4 -0
  17. data/resources/templates/error_layout.css +70 -84
  18. data/resources/templates/error_layout.html.template +84 -93
  19. data/resources/templates/standalone/http.erb +17 -13
  20. data/resources/templates/standalone/server.erb +2 -1
  21. data/resources/templates/undisclosed_error.html.template +52 -51
  22. data/resources/update_check_client_cert.p12 +0 -0
  23. data/resources/update_check_client_cert.pem +89 -0
  24. data/resources/update_check_server_pubkey.pem +14 -0
  25. data/src/agent/Core/ApplicationPool/ErrorRenderer.h +15 -1
  26. data/src/agent/Core/Controller.h +3 -2
  27. data/src/agent/Core/Controller/CheckoutSession.cpp +5 -4
  28. data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
  29. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  30. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  31. data/src/agent/Core/Controller/Request.h +1 -0
  32. data/src/agent/Core/CoreMain.cpp +99 -2
  33. data/src/agent/Core/OptionParser.h +18 -1
  34. data/src/agent/Core/SecurityUpdateChecker.h +559 -0
  35. data/src/agent/Shared/Base.cpp +6 -1
  36. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +52 -0
  37. data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -2
  38. data/src/agent/Watchdog/WatchdogMain.cpp +31 -40
  39. data/src/apache2_module/Configuration.cpp +12 -0
  40. data/src/apache2_module/Configuration.hpp +5 -0
  41. data/src/apache2_module/ConfigurationCommands.cpp +19 -19
  42. data/src/apache2_module/ConfigurationCommands.cpp.cxxcodebuilder +2 -2
  43. data/src/apache2_module/ConfigurationFields.hpp +19 -19
  44. data/src/apache2_module/ConfigurationFields.hpp.cxxcodebuilder +2 -2
  45. data/src/apache2_module/ConfigurationSetters.cpp +19 -19
  46. data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +2 -2
  47. data/src/apache2_module/CreateDirConfig.cpp +19 -19
  48. data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +2 -2
  49. data/src/apache2_module/Hooks.cpp +10 -1
  50. data/src/apache2_module/MergeDirConfig.cpp +19 -19
  51. data/src/apache2_module/MergeDirConfig.cpp.cxxcodebuilder +2 -2
  52. data/src/apache2_module/SetHeaders.cpp +19 -19
  53. data/src/apache2_module/SetHeaders.cpp.cxxcodebuilder +2 -2
  54. data/src/cxx_supportlib/Constants.h +22 -22
  55. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +4 -1
  56. data/src/cxx_supportlib/Crypto.cpp +977 -0
  57. data/src/cxx_supportlib/Crypto.h +147 -0
  58. data/src/cxx_supportlib/InstanceDirectory.h +55 -2
  59. data/src/cxx_supportlib/Utils/Curl.h +24 -10
  60. data/src/cxx_supportlib/Utils/JsonUtils.h +1 -1
  61. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +2 -0
  62. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +3 -3
  63. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +167 -92
  64. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1827 -1542
  65. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +4705 -3652
  66. data/src/cxx_supportlib/vendor-modified/libev/Changes +46 -15
  67. data/src/cxx_supportlib/vendor-modified/libev/LICENSE +1 -1
  68. data/src/cxx_supportlib/vendor-modified/libev/Makefile.in +215 -128
  69. data/src/cxx_supportlib/vendor-modified/libev/aclocal.m4 +466 -275
  70. data/src/cxx_supportlib/vendor-modified/libev/config.guess +312 -418
  71. data/src/cxx_supportlib/vendor-modified/libev/config.sub +246 -105
  72. data/src/cxx_supportlib/vendor-modified/libev/configure +276 -72
  73. data/src/cxx_supportlib/vendor-modified/libev/configure.ac +2 -1
  74. data/src/cxx_supportlib/vendor-modified/libev/depcomp +346 -185
  75. data/src/cxx_supportlib/vendor-modified/libev/ev++.h +1 -1
  76. data/src/cxx_supportlib/vendor-modified/libev/ev.c +530 -190
  77. data/src/cxx_supportlib/vendor-modified/libev/ev.h +23 -14
  78. data/src/cxx_supportlib/vendor-modified/libev/ev_epoll.c +12 -6
  79. data/src/cxx_supportlib/vendor-modified/libev/ev_kqueue.c +9 -5
  80. data/src/cxx_supportlib/vendor-modified/libev/ev_poll.c +6 -3
  81. data/src/cxx_supportlib/vendor-modified/libev/ev_port.c +8 -4
  82. data/src/cxx_supportlib/vendor-modified/libev/ev_select.c +4 -2
  83. data/src/cxx_supportlib/vendor-modified/libev/ev_vars.h +3 -2
  84. data/src/cxx_supportlib/vendor-modified/libev/ev_win32.c +3 -4
  85. data/src/cxx_supportlib/vendor-modified/libev/install-sh +433 -219
  86. data/src/cxx_supportlib/vendor-modified/libev/libev.m4 +6 -6
  87. data/src/cxx_supportlib/vendor-modified/libev/ltmain.sh +2 -2
  88. data/src/cxx_supportlib/vendor-modified/libev/missing +167 -288
  89. data/src/cxx_supportlib/vendor-modified/libev/mkinstalldirs +72 -21
  90. data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +4 -106
  91. data/src/cxx_supportlib/vendor-modified/modp_b64_data.h +37 -1
  92. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +119 -0
  93. data/src/helper-scripts/node-loader.js +72 -1
  94. data/src/nginx_module/CacheLocationConfig.c +52 -19
  95. data/src/nginx_module/CacheLocationConfig.c.cxxcodebuilder +2 -2
  96. data/src/nginx_module/Configuration.c +26 -1
  97. data/src/nginx_module/Configuration.h +2 -0
  98. data/src/nginx_module/ConfigurationCommands.c +35 -19
  99. data/src/nginx_module/ConfigurationCommands.c.cxxcodebuilder +2 -2
  100. data/src/nginx_module/ContentHandler.c +1 -1
  101. data/src/nginx_module/CreateLocationConfig.c +22 -19
  102. data/src/nginx_module/CreateLocationConfig.c.cxxcodebuilder +2 -2
  103. data/src/nginx_module/LocationConfig.h +21 -19
  104. data/src/nginx_module/LocationConfig.h.cxxcodebuilder +2 -2
  105. data/src/nginx_module/MergeLocationConfig.c +25 -19
  106. data/src/nginx_module/MergeLocationConfig.c.cxxcodebuilder +2 -2
  107. data/src/nginx_module/ngx_http_passenger_module.c +8 -4
  108. data/src/ruby_supportlib/phusion_passenger.rb +9 -4
  109. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
  110. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
  111. data/src/ruby_supportlib/phusion_passenger/common_library.rb +13 -0
  112. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +5 -2
  113. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
  114. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +15 -3
  115. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +51 -0
  116. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +7 -0
  117. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +17 -0
  118. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +4 -2
  119. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -0
  120. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +5 -0
  121. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +19 -10
  122. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +25 -0
  123. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +38 -103
  124. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +178 -0
  125. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +94 -0
  126. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +2 -2
  127. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +2 -2
  128. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +2 -2
  129. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis +5 -3
  130. data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis-with-sudo +9 -7
  131. metadata +14 -4
@@ -1,14 +1,12 @@
1
1
  #! /bin/sh
2
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.
3
+ # Copyright 1992-2014 Free Software Foundation, Inc.
6
4
 
7
- timestamp='2008-01-23'
5
+ timestamp='2014-03-23'
8
6
 
9
7
  # This file is free software; you can redistribute it and/or modify it
10
8
  # under the terms of the GNU General Public License as published by
11
- # the Free Software Foundation; either version 2 of the License, or
9
+ # the Free Software Foundation; either version 3 of the License, or
12
10
  # (at your option) any later version.
13
11
  #
14
12
  # This program is distributed in the hope that it will be useful, but
@@ -17,26 +15,22 @@ timestamp='2008-01-23'
17
15
  # General Public License for more details.
18
16
  #
19
17
  # 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.
18
+ # along with this program; if not, see <http://www.gnu.org/licenses/>.
23
19
  #
24
20
  # As a special exception to the GNU General Public License, if you
25
21
  # distribute this file as part of a program that contains a
26
22
  # 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.
23
+ # the same distribution terms that you use for the rest of that
24
+ # program. This Exception is an additional permission under section 7
25
+ # of the GNU General Public License, version 3 ("GPLv3").
26
+ #
27
+ # Originally written by Per Bothner.
33
28
  #
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.
29
+ # You can get the latest version of this script from:
30
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
37
31
  #
38
- # The plan is that this can be called by configure scripts if you
39
- # don't specify an explicit build system type.
32
+ # Please send patches with a ChangeLog entry to config-patches@gnu.org.
33
+
40
34
 
41
35
  me=`echo "$0" | sed -e 's,.*/,,'`
42
36
 
@@ -56,8 +50,7 @@ version="\
56
50
  GNU config.guess ($timestamp)
57
51
 
58
52
  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.
53
+ Copyright 1992-2014 Free Software Foundation, Inc.
61
54
 
62
55
  This is free software; see the source for copying conditions. There is NO
63
56
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
139
132
  UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
140
133
  UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
141
134
 
135
+ case "${UNAME_SYSTEM}" in
136
+ Linux|GNU|GNU/*)
137
+ # If the system lacks a compiler, then just pick glibc.
138
+ # We could probably try harder.
139
+ LIBC=gnu
140
+
141
+ eval $set_cc_for_build
142
+ cat <<-EOF > $dummy.c
143
+ #include <features.h>
144
+ #if defined(__UCLIBC__)
145
+ LIBC=uclibc
146
+ #elif defined(__dietlibc__)
147
+ LIBC=dietlibc
148
+ #else
149
+ LIBC=gnu
150
+ #endif
151
+ EOF
152
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
153
+ ;;
154
+ esac
155
+
142
156
  # Note: order is significant - the case branches are not exclusive.
143
157
 
144
158
  case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
145
159
  *:NetBSD:*:*)
146
160
  # NetBSD (nbsd) targets should (where applicable) match one or
147
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
161
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
148
162
  # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
149
163
  # switched to ELF, *-*-netbsd* would select the old
150
164
  # object file format. This provides both forward
@@ -170,7 +184,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
170
184
  arm*|i386|m68k|ns32k|sh3*|sparc|vax)
171
185
  eval $set_cc_for_build
172
186
  if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
173
- | grep __ELF__ >/dev/null
187
+ | grep -q __ELF__
174
188
  then
175
189
  # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
176
190
  # Return netbsd for either. FIX?
@@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
180
194
  fi
181
195
  ;;
182
196
  *)
183
- os=netbsd
197
+ os=netbsd
184
198
  ;;
185
199
  esac
186
200
  # The OS release
@@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
201
215
  # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
202
216
  echo "${machine}-${os}${release}"
203
217
  exit ;;
218
+ *:Bitrig:*:*)
219
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
220
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
221
+ exit ;;
204
222
  *:OpenBSD:*:*)
205
223
  UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
206
224
  echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
223
241
  UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
224
242
  ;;
225
243
  *5.*)
226
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
244
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
227
245
  ;;
228
246
  esac
229
247
  # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
269
287
  # A Xn.n version is an unreleased experimental baselevel.
270
288
  # 1.2 uses "1.2" for uname -r.
271
289
  echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
272
- exit ;;
290
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
291
+ exitcode=$?
292
+ trap '' 0
293
+ exit $exitcode ;;
273
294
  Alpha\ *:Windows_NT*:*)
274
295
  # How do we know it's Interix rather than the generic POSIX subsystem?
275
296
  # Should we change UNAME_MACHINE based on the output of uname instead
@@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
295
316
  echo s390-ibm-zvmoe
296
317
  exit ;;
297
318
  *:OS400:*:*)
298
- echo powerpc-ibm-os400
319
+ echo powerpc-ibm-os400
299
320
  exit ;;
300
321
  arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
301
322
  echo arm-acorn-riscix${UNAME_RELEASE}
302
323
  exit ;;
303
- arm:riscos:*:*|arm:RISCOS:*:*)
324
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
304
325
  echo arm-unknown-riscos
305
326
  exit ;;
306
327
  SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -324,14 +345,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
324
345
  case `/usr/bin/uname -p` in
325
346
  sparc) echo sparc-icl-nx7; exit ;;
326
347
  esac ;;
348
+ s390x:SunOS:*:*)
349
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
350
+ exit ;;
327
351
  sun4H:SunOS:5.*:*)
328
352
  echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
329
353
  exit ;;
330
354
  sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
331
355
  echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
332
356
  exit ;;
357
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
358
+ echo i386-pc-auroraux${UNAME_RELEASE}
359
+ exit ;;
333
360
  i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
334
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
361
+ eval $set_cc_for_build
362
+ SUN_ARCH="i386"
363
+ # If there is a compiler, see if it is configured for 64-bit objects.
364
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
365
+ # This test works for both compilers.
366
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
367
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
368
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
369
+ grep IS_64BIT_ARCH >/dev/null
370
+ then
371
+ SUN_ARCH="x86_64"
372
+ fi
373
+ fi
374
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335
375
  exit ;;
336
376
  sun4*:SunOS:6*:*)
337
377
  # According to config.sub, this is the proper way to canonicalize
@@ -375,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
375
415
  # MiNT. But MiNT is downward compatible to TOS, so this should
376
416
  # be no problem.
377
417
  atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
378
- echo m68k-atari-mint${UNAME_RELEASE}
418
+ echo m68k-atari-mint${UNAME_RELEASE}
379
419
  exit ;;
380
420
  atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
381
421
  echo m68k-atari-mint${UNAME_RELEASE}
382
- exit ;;
422
+ exit ;;
383
423
  *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
384
- echo m68k-atari-mint${UNAME_RELEASE}
424
+ echo m68k-atari-mint${UNAME_RELEASE}
385
425
  exit ;;
386
426
  milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
387
- echo m68k-milan-mint${UNAME_RELEASE}
388
- exit ;;
427
+ echo m68k-milan-mint${UNAME_RELEASE}
428
+ exit ;;
389
429
  hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
390
- echo m68k-hades-mint${UNAME_RELEASE}
391
- exit ;;
430
+ echo m68k-hades-mint${UNAME_RELEASE}
431
+ exit ;;
392
432
  *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
393
- echo m68k-unknown-mint${UNAME_RELEASE}
394
- exit ;;
433
+ echo m68k-unknown-mint${UNAME_RELEASE}
434
+ exit ;;
395
435
  m68k:machten:*:*)
396
436
  echo m68k-apple-machten${UNAME_RELEASE}
397
437
  exit ;;
@@ -461,8 +501,8 @@ EOF
461
501
  echo m88k-motorola-sysv3
462
502
  exit ;;
463
503
  AViiON:dgux:*:*)
464
- # DG/UX returns AViiON for all architectures
465
- UNAME_PROCESSOR=`/usr/bin/uname -p`
504
+ # DG/UX returns AViiON for all architectures
505
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
466
506
  if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
467
507
  then
468
508
  if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -475,7 +515,7 @@ EOF
475
515
  else
476
516
  echo i586-dg-dgux${UNAME_RELEASE}
477
517
  fi
478
- exit ;;
518
+ exit ;;
479
519
  M88*:DolphinOS:*:*) # DolphinOS (SVR3)
480
520
  echo m88k-dolphin-sysv3
481
521
  exit ;;
@@ -532,7 +572,7 @@ EOF
532
572
  echo rs6000-ibm-aix3.2
533
573
  fi
534
574
  exit ;;
535
- *:AIX:*:[456])
575
+ *:AIX:*:[4567])
536
576
  IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
537
577
  if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
538
578
  IBM_ARCH=rs6000
@@ -575,52 +615,52 @@ EOF
575
615
  9000/[678][0-9][0-9])
576
616
  if [ -x /usr/bin/getconf ]; then
577
617
  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" ;;
618
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
619
+ case "${sc_cpu_version}" in
620
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
621
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
622
+ 532) # CPU_PA_RISC2_0
623
+ case "${sc_kernel_bits}" in
624
+ 32) HP_ARCH="hppa2.0n" ;;
625
+ 64) HP_ARCH="hppa2.0w" ;;
586
626
  '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
587
- esac ;;
588
- esac
627
+ esac ;;
628
+ esac
589
629
  fi
590
630
  if [ "${HP_ARCH}" = "" ]; then
591
631
  eval $set_cc_for_build
592
- sed 's/^ //' << EOF >$dummy.c
632
+ sed 's/^ //' << EOF >$dummy.c
593
633
 
594
- #define _HPUX_SOURCE
595
- #include <stdlib.h>
596
- #include <unistd.h>
634
+ #define _HPUX_SOURCE
635
+ #include <stdlib.h>
636
+ #include <unistd.h>
597
637
 
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);
638
+ int main ()
639
+ {
640
+ #if defined(_SC_KERNEL_BITS)
641
+ long bits = sysconf(_SC_KERNEL_BITS);
642
+ #endif
643
+ long cpu = sysconf (_SC_CPU_VERSION);
604
644
 
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
- }
645
+ switch (cpu)
646
+ {
647
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
648
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
649
+ case CPU_PA_RISC2_0:
650
+ #if defined(_SC_KERNEL_BITS)
651
+ switch (bits)
652
+ {
653
+ case 64: puts ("hppa2.0w"); break;
654
+ case 32: puts ("hppa2.0n"); break;
655
+ default: puts ("hppa2.0"); break;
656
+ } break;
657
+ #else /* !defined(_SC_KERNEL_BITS) */
658
+ puts ("hppa2.0"); break;
659
+ #endif
660
+ default: puts ("hppa1.0"); break;
661
+ }
662
+ exit (0);
663
+ }
624
664
  EOF
625
665
  (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
626
666
  test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -640,7 +680,7 @@ EOF
640
680
  # => hppa64-hp-hpux11.23
641
681
 
642
682
  if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
643
- grep __LP64__ >/dev/null
683
+ grep -q __LP64__
644
684
  then
645
685
  HP_ARCH="hppa2.0w"
646
686
  else
@@ -711,22 +751,22 @@ EOF
711
751
  exit ;;
712
752
  C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
713
753
  echo c1-convex-bsd
714
- exit ;;
754
+ exit ;;
715
755
  C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
716
756
  if getsysinfo -f scalar_acc
717
757
  then echo c32-convex-bsd
718
758
  else echo c2-convex-bsd
719
759
  fi
720
- exit ;;
760
+ exit ;;
721
761
  C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
722
762
  echo c34-convex-bsd
723
- exit ;;
763
+ exit ;;
724
764
  C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
725
765
  echo c38-convex-bsd
726
- exit ;;
766
+ exit ;;
727
767
  C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
728
768
  echo c4-convex-bsd
729
- exit ;;
769
+ exit ;;
730
770
  CRAY*Y-MP:*:*:*)
731
771
  echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
732
772
  exit ;;
@@ -750,14 +790,14 @@ EOF
750
790
  exit ;;
751
791
  F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
752
792
  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 ;;
793
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
794
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
795
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
796
+ exit ;;
757
797
  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}"
798
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
799
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
800
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
761
801
  exit ;;
762
802
  i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
763
803
  echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -769,34 +809,39 @@ EOF
769
809
  echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
770
810
  exit ;;
771
811
  *:FreeBSD:*:*)
772
- case ${UNAME_MACHINE} in
773
- pc98)
774
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
812
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
813
+ case ${UNAME_PROCESSOR} in
775
814
  amd64)
776
815
  echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
777
816
  *)
778
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
817
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
779
818
  esac
780
819
  exit ;;
781
820
  i*:CYGWIN*:*)
782
821
  echo ${UNAME_MACHINE}-pc-cygwin
783
822
  exit ;;
823
+ *:MINGW64*:*)
824
+ echo ${UNAME_MACHINE}-pc-mingw64
825
+ exit ;;
784
826
  *:MINGW*:*)
785
827
  echo ${UNAME_MACHINE}-pc-mingw32
786
828
  exit ;;
829
+ *:MSYS*:*)
830
+ echo ${UNAME_MACHINE}-pc-msys
831
+ exit ;;
787
832
  i*:windows32*:*)
788
- # uname -m includes "-pc" on this system.
789
- echo ${UNAME_MACHINE}-mingw32
833
+ # uname -m includes "-pc" on this system.
834
+ echo ${UNAME_MACHINE}-mingw32
790
835
  exit ;;
791
836
  i*:PW*:*)
792
837
  echo ${UNAME_MACHINE}-pc-pw32
793
838
  exit ;;
794
- *:Interix*:[3456]*)
795
- case ${UNAME_MACHINE} in
839
+ *:Interix*:*)
840
+ case ${UNAME_MACHINE} in
796
841
  x86)
797
842
  echo i586-pc-interix${UNAME_RELEASE}
798
843
  exit ;;
799
- EM64T | authenticamd)
844
+ authenticamd | genuineintel | EM64T)
800
845
  echo x86_64-unknown-interix${UNAME_RELEASE}
801
846
  exit ;;
802
847
  IA64)
@@ -806,6 +851,9 @@ EOF
806
851
  [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
807
852
  echo i${UNAME_MACHINE}-pc-mks
808
853
  exit ;;
854
+ 8664:Windows_NT:*)
855
+ echo x86_64-pc-mks
856
+ exit ;;
809
857
  i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
810
858
  # How do we know it's Interix rather than the generic POSIX subsystem?
811
859
  # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -826,210 +874,157 @@ EOF
826
874
  exit ;;
827
875
  *:GNU:*:*)
828
876
  # the GNU system
829
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
877
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
830
878
  exit ;;
831
879
  *:GNU/*:*:*)
832
880
  # 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
881
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
834
882
  exit ;;
835
883
  i*86:Minix:*:*)
836
884
  echo ${UNAME_MACHINE}-pc-minix
837
885
  exit ;;
886
+ aarch64:Linux:*:*)
887
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
888
+ exit ;;
889
+ aarch64_be:Linux:*:*)
890
+ UNAME_MACHINE=aarch64_be
891
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
892
+ exit ;;
893
+ alpha:Linux:*:*)
894
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
895
+ EV5) UNAME_MACHINE=alphaev5 ;;
896
+ EV56) UNAME_MACHINE=alphaev56 ;;
897
+ PCA56) UNAME_MACHINE=alphapca56 ;;
898
+ PCA57) UNAME_MACHINE=alphapca56 ;;
899
+ EV6) UNAME_MACHINE=alphaev6 ;;
900
+ EV67) UNAME_MACHINE=alphaev67 ;;
901
+ EV68*) UNAME_MACHINE=alphaev68 ;;
902
+ esac
903
+ objdump --private-headers /bin/sh | grep -q ld.so.1
904
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
905
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
906
+ exit ;;
907
+ arc:Linux:*:* | arceb:Linux:*:*)
908
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
909
+ exit ;;
838
910
  arm*:Linux:*:*)
839
911
  eval $set_cc_for_build
840
912
  if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
841
913
  | grep -q __ARM_EABI__
842
914
  then
843
- echo ${UNAME_MACHINE}-unknown-linux-gnu
915
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
844
916
  else
845
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
917
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
918
+ | grep -q __ARM_PCS_VFP
919
+ then
920
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
921
+ else
922
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
923
+ fi
846
924
  fi
847
925
  exit ;;
848
926
  avr32*:Linux:*:*)
849
- echo ${UNAME_MACHINE}-unknown-linux-gnu
927
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
850
928
  exit ;;
851
929
  cris:Linux:*:*)
852
- echo cris-axis-linux-gnu
930
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
853
931
  exit ;;
854
932
  crisv32:Linux:*:*)
855
- echo crisv32-axis-linux-gnu
933
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
856
934
  exit ;;
857
935
  frv:Linux:*:*)
858
- echo frv-unknown-linux-gnu
936
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
937
+ exit ;;
938
+ hexagon:Linux:*:*)
939
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
940
+ exit ;;
941
+ i*86:Linux:*:*)
942
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
859
943
  exit ;;
860
944
  ia64:Linux:*:*)
861
- echo ${UNAME_MACHINE}-unknown-linux-gnu
945
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
862
946
  exit ;;
863
947
  m32r*:Linux:*:*)
864
- echo ${UNAME_MACHINE}-unknown-linux-gnu
948
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
865
949
  exit ;;
866
950
  m68*:Linux:*:*)
867
- echo ${UNAME_MACHINE}-unknown-linux-gnu
951
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
868
952
  exit ;;
869
- mips:Linux:*:*)
953
+ mips:Linux:*:* | mips64:Linux:*:*)
870
954
  eval $set_cc_for_build
871
955
  sed 's/^ //' << EOF >$dummy.c
872
956
  #undef CPU
873
- #undef mips
874
- #undef mipsel
957
+ #undef ${UNAME_MACHINE}
958
+ #undef ${UNAME_MACHINE}el
875
959
  #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
876
- CPU=mipsel
960
+ CPU=${UNAME_MACHINE}el
877
961
  #else
878
962
  #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
879
- CPU=mips
963
+ CPU=${UNAME_MACHINE}
880
964
  #else
881
965
  CPU=
882
966
  #endif
883
967
  #endif
884
968
  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; }
969
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
970
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
891
971
  ;;
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
972
+ openrisc*:Linux:*:*)
973
+ echo or1k-unknown-linux-${LIBC}
917
974
  exit ;;
918
- ppc:Linux:*:*)
919
- echo powerpc-unknown-linux-gnu
975
+ or32:Linux:*:* | or1k*:Linux:*:*)
976
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
920
977
  exit ;;
921
- ppc64:Linux:*:*)
922
- echo powerpc64-unknown-linux-gnu
978
+ padre:Linux:*:*)
979
+ echo sparc-unknown-linux-${LIBC}
923
980
  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}
981
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
982
+ echo hppa64-unknown-linux-${LIBC}
937
983
  exit ;;
938
984
  parisc:Linux:*:* | hppa:Linux:*:*)
939
985
  # Look for CPU level
940
986
  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 ;;
987
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
988
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
989
+ *) echo hppa-unknown-linux-${LIBC} ;;
944
990
  esac
945
991
  exit ;;
946
- parisc64:Linux:*:* | hppa64:Linux:*:*)
947
- echo hppa64-unknown-linux-gnu
992
+ ppc64:Linux:*:*)
993
+ echo powerpc64-unknown-linux-${LIBC}
994
+ exit ;;
995
+ ppc:Linux:*:*)
996
+ echo powerpc-unknown-linux-${LIBC}
997
+ exit ;;
998
+ ppc64le:Linux:*:*)
999
+ echo powerpc64le-unknown-linux-${LIBC}
1000
+ exit ;;
1001
+ ppcle:Linux:*:*)
1002
+ echo powerpcle-unknown-linux-${LIBC}
948
1003
  exit ;;
949
1004
  s390:Linux:*:* | s390x:Linux:*:*)
950
- echo ${UNAME_MACHINE}-ibm-linux
1005
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
951
1006
  exit ;;
952
1007
  sh64*:Linux:*:*)
953
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1008
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
954
1009
  exit ;;
955
1010
  sh*:Linux:*:*)
956
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1011
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
957
1012
  exit ;;
958
1013
  sparc:Linux:*:* | sparc64:Linux:*:*)
959
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1014
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1015
+ exit ;;
1016
+ tile*:Linux:*:*)
1017
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
960
1018
  exit ;;
961
1019
  vax:Linux:*:*)
962
- echo ${UNAME_MACHINE}-dec-linux-gnu
1020
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
963
1021
  exit ;;
964
1022
  x86_64:Linux:*:*)
965
- echo x86_64-unknown-linux-gnu
1023
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
966
1024
  exit ;;
967
1025
  xtensa*:Linux:*:*)
968
- echo ${UNAME_MACHINE}-unknown-linux-gnu
1026
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
969
1027
  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
1028
  i*86:DYNIX/ptx:4*:*)
1034
1029
  # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1035
1030
  # earlier versions are messed up and put the nodename in both
@@ -1037,11 +1032,11 @@ EOF
1037
1032
  echo i386-sequent-sysv4
1038
1033
  exit ;;
1039
1034
  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,
1035
+ # Unixware is an offshoot of SVR4, but it has its own version
1036
+ # number series starting with 2...
1037
+ # I am not positive that other SVR4 systems won't match this,
1043
1038
  # I just have to hope. -- rms.
1044
- # Use sysv4.2uw... so that sysv4* matches it.
1039
+ # Use sysv4.2uw... so that sysv4* matches it.
1045
1040
  echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1046
1041
  exit ;;
1047
1042
  i*86:OS/2:*:*)
@@ -1058,7 +1053,7 @@ EOF
1058
1053
  i*86:syllable:*:*)
1059
1054
  echo ${UNAME_MACHINE}-pc-syllable
1060
1055
  exit ;;
1061
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1056
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1062
1057
  echo i386-unknown-lynxos${UNAME_RELEASE}
1063
1058
  exit ;;
1064
1059
  i*86:*DOS:*:*)
@@ -1073,7 +1068,7 @@ EOF
1073
1068
  fi
1074
1069
  exit ;;
1075
1070
  i*86:*:5:[678]*)
1076
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
1071
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
1077
1072
  case `/bin/uname -X | grep "^Machine"` in
1078
1073
  *486*) UNAME_MACHINE=i486 ;;
1079
1074
  *Pentium) UNAME_MACHINE=i586 ;;
@@ -1101,10 +1096,13 @@ EOF
1101
1096
  exit ;;
1102
1097
  pc:*:*:*)
1103
1098
  # 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 ;;
1099
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
1100
+ # the processor, so we play safe by assuming i586.
1101
+ # Note: whatever this is, it MUST be the same as what config.sub
1102
+ # prints for the "djgpp" host, or else GDB configury will decide that
1103
+ # this is a cross-build.
1104
+ echo i586-pc-msdosdjgpp
1105
+ exit ;;
1108
1106
  Intel:Mach:3*:*)
1109
1107
  echo i386-pc-mach3
1110
1108
  exit ;;
@@ -1139,8 +1137,18 @@ EOF
1139
1137
  /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1140
1138
  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1141
1139
  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; } ;;
1140
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1141
+ && { echo i486-ncr-sysv4; exit; } ;;
1142
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
1143
+ OS_REL='.3'
1144
+ test -r /etc/.relid \
1145
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1146
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1147
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1148
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1149
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1150
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1151
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1144
1152
  m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1145
1153
  echo m68k-unknown-lynxos${UNAME_RELEASE}
1146
1154
  exit ;;
@@ -1153,7 +1161,7 @@ EOF
1153
1161
  rs6000:LynxOS:2.*:*)
1154
1162
  echo rs6000-unknown-lynxos${UNAME_RELEASE}
1155
1163
  exit ;;
1156
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1164
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1157
1165
  echo powerpc-unknown-lynxos${UNAME_RELEASE}
1158
1166
  exit ;;
1159
1167
  SM[BE]S:UNIX_SV:*:*)
@@ -1173,10 +1181,10 @@ EOF
1173
1181
  echo ns32k-sni-sysv
1174
1182
  fi
1175
1183
  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 ;;
1184
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1185
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
1186
+ echo i586-unisys-sysv4
1187
+ exit ;;
1180
1188
  *:UNIX_System_V:4*:FTX*)
1181
1189
  # From Gerald Hewes <hewes@openmarket.com>.
1182
1190
  # How about differentiating between stratus architectures? -djm
@@ -1202,11 +1210,11 @@ EOF
1202
1210
  exit ;;
1203
1211
  R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1204
1212
  if [ -d /usr/nec ]; then
1205
- echo mips-nec-sysv${UNAME_RELEASE}
1213
+ echo mips-nec-sysv${UNAME_RELEASE}
1206
1214
  else
1207
- echo mips-unknown-sysv${UNAME_RELEASE}
1215
+ echo mips-unknown-sysv${UNAME_RELEASE}
1208
1216
  fi
1209
- exit ;;
1217
+ exit ;;
1210
1218
  BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1211
1219
  echo powerpc-be-beos
1212
1220
  exit ;;
@@ -1216,6 +1224,12 @@ EOF
1216
1224
  BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1217
1225
  echo i586-pc-beos
1218
1226
  exit ;;
1227
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1228
+ echo i586-pc-haiku
1229
+ exit ;;
1230
+ x86_64:Haiku:*:*)
1231
+ echo x86_64-unknown-haiku
1232
+ exit ;;
1219
1233
  SX-4:SUPER-UX:*:*)
1220
1234
  echo sx4-nec-superux${UNAME_RELEASE}
1221
1235
  exit ;;
@@ -1242,9 +1256,31 @@ EOF
1242
1256
  exit ;;
1243
1257
  *:Darwin:*:*)
1244
1258
  UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1245
- case $UNAME_PROCESSOR in
1246
- unknown) UNAME_PROCESSOR=powerpc ;;
1247
- esac
1259
+ eval $set_cc_for_build
1260
+ if test "$UNAME_PROCESSOR" = unknown ; then
1261
+ UNAME_PROCESSOR=powerpc
1262
+ fi
1263
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1264
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1265
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1266
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1267
+ grep IS_64BIT_ARCH >/dev/null
1268
+ then
1269
+ case $UNAME_PROCESSOR in
1270
+ i386) UNAME_PROCESSOR=x86_64 ;;
1271
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
1272
+ esac
1273
+ fi
1274
+ fi
1275
+ elif test "$UNAME_PROCESSOR" = i386 ; then
1276
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
1277
+ # that puts up a graphical alert prompting to install
1278
+ # developer tools. Any system running Mac OS X 10.7 or
1279
+ # later (Darwin 11 and later) is required to have a 64-bit
1280
+ # processor. This is not true of the ARM version of Darwin
1281
+ # that Apple uses in portable devices.
1282
+ UNAME_PROCESSOR=x86_64
1283
+ fi
1248
1284
  echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1249
1285
  exit ;;
1250
1286
  *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1258,7 +1294,10 @@ EOF
1258
1294
  *:QNX:*:4*)
1259
1295
  echo i386-pc-qnx
1260
1296
  exit ;;
1261
- NSE-?:NONSTOP_KERNEL:*:*)
1297
+ NEO-?:NONSTOP_KERNEL:*:*)
1298
+ echo neo-tandem-nsk${UNAME_RELEASE}
1299
+ exit ;;
1300
+ NSE-*:NONSTOP_KERNEL:*:*)
1262
1301
  echo nse-tandem-nsk${UNAME_RELEASE}
1263
1302
  exit ;;
1264
1303
  NSR-?:NONSTOP_KERNEL:*:*)
@@ -1303,13 +1342,13 @@ EOF
1303
1342
  echo pdp10-unknown-its
1304
1343
  exit ;;
1305
1344
  SEI:*:*:SEIUX)
1306
- echo mips-sei-seiux${UNAME_RELEASE}
1345
+ echo mips-sei-seiux${UNAME_RELEASE}
1307
1346
  exit ;;
1308
1347
  *:DragonFly:*:*)
1309
1348
  echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1310
1349
  exit ;;
1311
1350
  *:*VMS:*:*)
1312
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
1351
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1313
1352
  case "${UNAME_MACHINE}" in
1314
1353
  A*) echo alpha-dec-vms ; exit ;;
1315
1354
  I*) echo ia64-dec-vms ; exit ;;
@@ -1324,158 +1363,13 @@ EOF
1324
1363
  i*86:rdos:*:*)
1325
1364
  echo ${UNAME_MACHINE}-pc-rdos
1326
1365
  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
1366
+ i*86:AROS:*:*)
1367
+ echo ${UNAME_MACHINE}-pc-aros
1461
1368
  exit ;;
1462
- c2*)
1463
- if getsysinfo -f scalar_acc
1464
- then echo c32-convex-bsd
1465
- else echo c2-convex-bsd
1466
- fi
1369
+ x86_64:VMkernel:*:*)
1370
+ echo ${UNAME_MACHINE}-unknown-esx
1467
1371
  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
1372
+ esac
1479
1373
 
1480
1374
  cat >&2 <<EOF
1481
1375
  $0: unable to guess system type