| diff --git a/config.guess b/config.guess |
| old mode 100755 |
| new mode 100644 |
| index 278f9e9..69ed3e5 |
| --- a/config.guess |
| +++ b/config.guess |
| @@ -1,14 +1,12 @@ |
| #! /bin/sh |
| # Attempt to guess a canonical system name. |
| -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
| -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, |
| -# Inc. |
| +# Copyright 1992-2017 Free Software Foundation, Inc. |
| |
| -timestamp='2007-07-22' |
| +timestamp='2017-03-05' |
| |
| # This file is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License as published by |
| -# the Free Software Foundation; either version 2 of the License, or |
| +# the Free Software Foundation; either version 3 of the License, or |
| # (at your option) any later version. |
| # |
| # This program is distributed in the hope that it will be useful, but |
| @@ -17,26 +15,22 @@ timestamp='2007-07-22' |
| # General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| -# along with this program; if not, write to the Free Software |
| -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA |
| -# 02110-1301, USA. |
| +# along with this program; if not, see <http://www.gnu.org/licenses/>. |
| # |
| # As a special exception to the GNU General Public License, if you |
| # distribute this file as part of a program that contains a |
| # configuration script generated by Autoconf, you may include it under |
| -# the same distribution terms that you use for the rest of that program. |
| - |
| - |
| -# Originally written by Per Bothner <per@bothner.com>. |
| -# Please send patches to <config-patches@gnu.org>. Submit a context |
| -# diff and a properly formatted ChangeLog entry. |
| +# the same distribution terms that you use for the rest of that |
| +# program. This Exception is an additional permission under section 7 |
| +# of the GNU General Public License, version 3 ("GPLv3"). |
| # |
| -# This script attempts to guess a canonical system name similar to |
| -# config.sub. If it succeeds, it prints the system name on stdout, and |
| -# exits with 0. Otherwise, it exits with 1. |
| +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. |
| # |
| -# The plan is that this can be called by configure scripts if you |
| -# don't specify an explicit build system type. |
| +# You can get the latest version of this script from: |
| +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess |
| +# |
| +# Please send patches to <config-patches@gnu.org>. |
| + |
| |
| me=`echo "$0" | sed -e 's,.*/,,'` |
| |
| @@ -56,8 +50,7 @@ version="\ |
| GNU config.guess ($timestamp) |
| |
| Originally written by Per Bothner. |
| -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 |
| -Free Software Foundation, Inc. |
| +Copyright 1992-2017 Free Software Foundation, Inc. |
| |
| This is free software; see the source for copying conditions. There is NO |
| 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 |
| UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
| UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
| |
| +case "${UNAME_SYSTEM}" in |
| +Linux|GNU|GNU/*) |
| + # If the system lacks a compiler, then just pick glibc. |
| + # We could probably try harder. |
| + LIBC=gnu |
| + |
| + eval $set_cc_for_build |
| + cat <<-EOF > $dummy.c |
| + #include <features.h> |
| + #if defined(__UCLIBC__) |
| + LIBC=uclibc |
| + #elif defined(__dietlibc__) |
| + LIBC=dietlibc |
| + #else |
| + LIBC=gnu |
| + #endif |
| + EOF |
| + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` |
| + ;; |
| +esac |
| + |
| # Note: order is significant - the case branches are not exclusive. |
| |
| case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| *:NetBSD:*:*) |
| # NetBSD (nbsd) targets should (where applicable) match one or |
| - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, |
| + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, |
| # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently |
| # switched to ELF, *-*-netbsd* would select the old |
| # object file format. This provides both forward |
| @@ -154,23 +168,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| # Note: NetBSD doesn't particularly care about the vendor |
| # portion of the name. We always set it to "unknown". |
| sysctl="sysctl -n hw.machine_arch" |
| - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ |
| - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` |
| + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ |
| + /sbin/$sysctl 2>/dev/null || \ |
| + /usr/sbin/$sysctl 2>/dev/null || \ |
| + echo unknown)` |
| case "${UNAME_MACHINE_ARCH}" in |
| armeb) machine=armeb-unknown ;; |
| arm*) machine=arm-unknown ;; |
| sh3el) machine=shl-unknown ;; |
| sh3eb) machine=sh-unknown ;; |
| sh5el) machine=sh5le-unknown ;; |
| + earmv*) |
| + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` |
| + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` |
| + machine=${arch}${endian}-unknown |
| + ;; |
| *) machine=${UNAME_MACHINE_ARCH}-unknown ;; |
| esac |
| # The Operating System including object format, if it has switched |
| - # to ELF recently, or will in the future. |
| + # to ELF recently (or will in the future) and ABI. |
| case "${UNAME_MACHINE_ARCH}" in |
| + earm*) |
| + os=netbsdelf |
| + ;; |
| arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
| eval $set_cc_for_build |
| if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
| - | grep __ELF__ >/dev/null |
| + | grep -q __ELF__ |
| then |
| # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). |
| # Return netbsd for either. FIX? |
| @@ -180,7 +204,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| fi |
| ;; |
| *) |
| - os=netbsd |
| + os=netbsd |
| + ;; |
| + esac |
| + # Determine ABI tags. |
| + case "${UNAME_MACHINE_ARCH}" in |
| + earm*) |
| + expr='s/^earmv[0-9]/-eabi/;s/eb$//' |
| + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` |
| ;; |
| esac |
| # The OS release |
| @@ -193,18 +224,26 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| release='-gnu' |
| ;; |
| *) |
| - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
| + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` |
| ;; |
| esac |
| # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
| # contains redundant information, the shorter form: |
| # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
| - echo "${machine}-${os}${release}" |
| + echo "${machine}-${os}${release}${abi}" |
| + exit ;; |
| + *:Bitrig:*:*) |
| + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` |
| + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} |
| exit ;; |
| *:OpenBSD:*:*) |
| UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` |
| echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} |
| exit ;; |
| + *:LibertyBSD:*:*) |
| + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` |
| + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} |
| + exit ;; |
| *:ekkoBSD:*:*) |
| echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} |
| exit ;; |
| @@ -217,13 +256,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| *:MirBSD:*:*) |
| echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} |
| exit ;; |
| + *:Sortix:*:*) |
| + echo ${UNAME_MACHINE}-unknown-sortix |
| + exit ;; |
| alpha:OSF1:*:*) |
| case $UNAME_RELEASE in |
| *4.0) |
| UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` |
| ;; |
| *5.*) |
| - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` |
| + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` |
| ;; |
| esac |
| # According to Compaq, /usr/sbin/psrinfo has been available on |
| @@ -233,43 +275,46 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` |
| case "$ALPHA_CPU_TYPE" in |
| "EV4 (21064)") |
| - UNAME_MACHINE="alpha" ;; |
| + UNAME_MACHINE=alpha ;; |
| "EV4.5 (21064)") |
| - UNAME_MACHINE="alpha" ;; |
| + UNAME_MACHINE=alpha ;; |
| "LCA4 (21066/21068)") |
| - UNAME_MACHINE="alpha" ;; |
| + UNAME_MACHINE=alpha ;; |
| "EV5 (21164)") |
| - UNAME_MACHINE="alphaev5" ;; |
| + UNAME_MACHINE=alphaev5 ;; |
| "EV5.6 (21164A)") |
| - UNAME_MACHINE="alphaev56" ;; |
| + UNAME_MACHINE=alphaev56 ;; |
| "EV5.6 (21164PC)") |
| - UNAME_MACHINE="alphapca56" ;; |
| + UNAME_MACHINE=alphapca56 ;; |
| "EV5.7 (21164PC)") |
| - UNAME_MACHINE="alphapca57" ;; |
| + UNAME_MACHINE=alphapca57 ;; |
| "EV6 (21264)") |
| - UNAME_MACHINE="alphaev6" ;; |
| + UNAME_MACHINE=alphaev6 ;; |
| "EV6.7 (21264A)") |
| - UNAME_MACHINE="alphaev67" ;; |
| + UNAME_MACHINE=alphaev67 ;; |
| "EV6.8CB (21264C)") |
| - UNAME_MACHINE="alphaev68" ;; |
| + UNAME_MACHINE=alphaev68 ;; |
| "EV6.8AL (21264B)") |
| - UNAME_MACHINE="alphaev68" ;; |
| + UNAME_MACHINE=alphaev68 ;; |
| "EV6.8CX (21264D)") |
| - UNAME_MACHINE="alphaev68" ;; |
| + UNAME_MACHINE=alphaev68 ;; |
| "EV6.9A (21264/EV69A)") |
| - UNAME_MACHINE="alphaev69" ;; |
| + UNAME_MACHINE=alphaev69 ;; |
| "EV7 (21364)") |
| - UNAME_MACHINE="alphaev7" ;; |
| + UNAME_MACHINE=alphaev7 ;; |
| "EV7.9 (21364A)") |
| - UNAME_MACHINE="alphaev79" ;; |
| + UNAME_MACHINE=alphaev79 ;; |
| esac |
| # A Pn.n version is a patched version. |
| # A Vn.n version is a released version. |
| # A Tn.n version is a released field test version. |
| # A Xn.n version is an unreleased experimental baselevel. |
| # 1.2 uses "1.2" for uname -r. |
| - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
| - exit ;; |
| + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` |
| + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. |
| + exitcode=$? |
| + trap '' 0 |
| + exit $exitcode ;; |
| Alpha\ *:Windows_NT*:*) |
| # How do we know it's Interix rather than the generic POSIX subsystem? |
| # Should we change UNAME_MACHINE based on the output of uname instead |
| @@ -295,12 +340,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| echo s390-ibm-zvmoe |
| exit ;; |
| *:OS400:*:*) |
| - echo powerpc-ibm-os400 |
| + echo powerpc-ibm-os400 |
| exit ;; |
| arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
| echo arm-acorn-riscix${UNAME_RELEASE} |
| exit ;; |
| - arm:riscos:*:*|arm:RISCOS:*:*) |
| + arm*:riscos:*:*|arm*:RISCOS:*:*) |
| echo arm-unknown-riscos |
| exit ;; |
| SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) |
| @@ -324,14 +369,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| case `/usr/bin/uname -p` in |
| sparc) echo sparc-icl-nx7; exit ;; |
| esac ;; |
| + s390x:SunOS:*:*) |
| + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
| + exit ;; |
| sun4H:SunOS:5.*:*) |
| echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
| exit ;; |
| sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
| echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
| exit ;; |
| + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) |
| + echo i386-pc-auroraux${UNAME_RELEASE} |
| + exit ;; |
| i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) |
| - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
| + eval $set_cc_for_build |
| + SUN_ARCH=i386 |
| + # If there is a compiler, see if it is configured for 64-bit objects. |
| + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. |
| + # This test works for both compilers. |
| + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then |
| + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ |
| + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ |
| + grep IS_64BIT_ARCH >/dev/null |
| + then |
| + SUN_ARCH=x86_64 |
| + fi |
| + fi |
| + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
| exit ;; |
| sun4*:SunOS:6*:*) |
| # According to config.sub, this is the proper way to canonicalize |
| @@ -353,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| exit ;; |
| sun*:*:4.2BSD:*) |
| UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` |
| - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 |
| + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 |
| case "`/bin/arch`" in |
| sun3) |
| echo m68k-sun-sunos${UNAME_RELEASE} |
| @@ -375,23 +439,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
| # MiNT. But MiNT is downward compatible to TOS, so this should |
| # be no problem. |
| atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) |
| - echo m68k-atari-mint${UNAME_RELEASE} |
| + echo m68k-atari-mint${UNAME_RELEASE} |
| exit ;; |
| atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) |
| echo m68k-atari-mint${UNAME_RELEASE} |
| - exit ;; |
| + exit ;; |
| *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) |
| - echo m68k-atari-mint${UNAME_RELEASE} |
| + echo m68k-atari-mint${UNAME_RELEASE} |
| exit ;; |
| milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) |
| - echo m68k-milan-mint${UNAME_RELEASE} |
| - exit ;; |
| + echo m68k-milan-mint${UNAME_RELEASE} |
| + exit ;; |
| hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) |
| - echo m68k-hades-mint${UNAME_RELEASE} |
| - exit ;; |
| + echo m68k-hades-mint${UNAME_RELEASE} |
| + exit ;; |
| *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) |
| - echo m68k-unknown-mint${UNAME_RELEASE} |
| - exit ;; |
| + echo m68k-unknown-mint${UNAME_RELEASE} |
| + exit ;; |
| m68k:machten:*:*) |
| echo m68k-apple-machten${UNAME_RELEASE} |
| exit ;; |
| @@ -461,8 +525,8 @@ EOF |
| echo m88k-motorola-sysv3 |
| exit ;; |
| AViiON:dgux:*:*) |
| - # DG/UX returns AViiON for all architectures |
| - UNAME_PROCESSOR=`/usr/bin/uname -p` |
| + # DG/UX returns AViiON for all architectures |
| + UNAME_PROCESSOR=`/usr/bin/uname -p` |
| if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] |
| then |
| if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ |
| @@ -475,7 +539,7 @@ EOF |
| else |
| echo i586-dg-dgux${UNAME_RELEASE} |
| fi |
| - exit ;; |
| + exit ;; |
| M88*:DolphinOS:*:*) # DolphinOS (SVR3) |
| echo m88k-dolphin-sysv3 |
| exit ;; |
| @@ -532,15 +596,16 @@ EOF |
| echo rs6000-ibm-aix3.2 |
| fi |
| exit ;; |
| - *:AIX:*:[45]) |
| + *:AIX:*:[4567]) |
| IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` |
| if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then |
| IBM_ARCH=rs6000 |
| else |
| IBM_ARCH=powerpc |
| fi |
| - if [ -x /usr/bin/oslevel ] ; then |
| - IBM_REV=`/usr/bin/oslevel` |
| + if [ -x /usr/bin/lslpp ] ; then |
| + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | |
| + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` |
| else |
| IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} |
| fi |
| @@ -575,58 +640,58 @@ EOF |
| 9000/[678][0-9][0-9]) |
| if [ -x /usr/bin/getconf ]; then |
| sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` |
| - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
| - case "${sc_cpu_version}" in |
| - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 |
| - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 |
| - 532) # CPU_PA_RISC2_0 |
| - case "${sc_kernel_bits}" in |
| - 32) HP_ARCH="hppa2.0n" ;; |
| - 64) HP_ARCH="hppa2.0w" ;; |
| - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 |
| - esac ;; |
| - esac |
| + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
| + case "${sc_cpu_version}" in |
| + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 |
| + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 |
| + 532) # CPU_PA_RISC2_0 |
| + case "${sc_kernel_bits}" in |
| + 32) HP_ARCH=hppa2.0n ;; |
| + 64) HP_ARCH=hppa2.0w ;; |
| + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 |
| + esac ;; |
| + esac |
| fi |
| if [ "${HP_ARCH}" = "" ]; then |
| eval $set_cc_for_build |
| - sed 's/^ //' << EOF >$dummy.c |
| + sed 's/^ //' << EOF >$dummy.c |
| |
| - #define _HPUX_SOURCE |
| - #include <stdlib.h> |
| - #include <unistd.h> |
| + #define _HPUX_SOURCE |
| + #include <stdlib.h> |
| + #include <unistd.h> |
| |
| - int main () |
| - { |
| - #if defined(_SC_KERNEL_BITS) |
| - long bits = sysconf(_SC_KERNEL_BITS); |
| - #endif |
| - long cpu = sysconf (_SC_CPU_VERSION); |
| + int main () |
| + { |
| + #if defined(_SC_KERNEL_BITS) |
| + long bits = sysconf(_SC_KERNEL_BITS); |
| + #endif |
| + long cpu = sysconf (_SC_CPU_VERSION); |
| |
| - switch (cpu) |
| - { |
| - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; |
| - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; |
| - case CPU_PA_RISC2_0: |
| - #if defined(_SC_KERNEL_BITS) |
| - switch (bits) |
| - { |
| - case 64: puts ("hppa2.0w"); break; |
| - case 32: puts ("hppa2.0n"); break; |
| - default: puts ("hppa2.0"); break; |
| - } break; |
| - #else /* !defined(_SC_KERNEL_BITS) */ |
| - puts ("hppa2.0"); break; |
| - #endif |
| - default: puts ("hppa1.0"); break; |
| - } |
| - exit (0); |
| - } |
| + switch (cpu) |
| + { |
| + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; |
| + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; |
| + case CPU_PA_RISC2_0: |
| + #if defined(_SC_KERNEL_BITS) |
| + switch (bits) |
| + { |
| + case 64: puts ("hppa2.0w"); break; |
| + case 32: puts ("hppa2.0n"); break; |
| + default: puts ("hppa2.0"); break; |
| + } break; |
| + #else /* !defined(_SC_KERNEL_BITS) */ |
| + puts ("hppa2.0"); break; |
| + #endif |
| + default: puts ("hppa1.0"); break; |
| + } |
| + exit (0); |
| + } |
| EOF |
| - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` |
| + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` |
| test -z "$HP_ARCH" && HP_ARCH=hppa |
| fi ;; |
| esac |
| - if [ ${HP_ARCH} = "hppa2.0w" ] |
| + if [ ${HP_ARCH} = hppa2.0w ] |
| then |
| eval $set_cc_for_build |
| |
| @@ -639,12 +704,12 @@ EOF |
| # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess |
| # => hppa64-hp-hpux11.23 |
| |
| - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | |
| - grep __LP64__ >/dev/null |
| + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | |
| + grep -q __LP64__ |
| then |
| - HP_ARCH="hppa2.0w" |
| + HP_ARCH=hppa2.0w |
| else |
| - HP_ARCH="hppa64" |
| + HP_ARCH=hppa64 |
| fi |
| fi |
| echo ${HP_ARCH}-hp-hpux${HPUX_REV} |
| @@ -711,22 +776,22 @@ EOF |
| exit ;; |
| C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) |
| echo c1-convex-bsd |
| - exit ;; |
| + exit ;; |
| C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) |
| if getsysinfo -f scalar_acc |
| then echo c32-convex-bsd |
| else echo c2-convex-bsd |
| fi |
| - exit ;; |
| + exit ;; |
| C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) |
| echo c34-convex-bsd |
| - exit ;; |
| + exit ;; |
| C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) |
| echo c38-convex-bsd |
| - exit ;; |
| + exit ;; |
| C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) |
| echo c4-convex-bsd |
| - exit ;; |
| + exit ;; |
| CRAY*Y-MP:*:*:*) |
| echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
| exit ;; |
| @@ -749,15 +814,15 @@ EOF |
| echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
| exit ;; |
| F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) |
| - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
| - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` |
| - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
| - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
| - exit ;; |
| + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` |
| + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` |
| + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
| + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
| + exit ;; |
| 5000:UNIX_System_V:4.*:*) |
| - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` |
| - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` |
| - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
| + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` |
| + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` |
| + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
| exit ;; |
| i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) |
| echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} |
| @@ -769,40 +834,52 @@ EOF |
| echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} |
| exit ;; |
| *:FreeBSD:*:*) |
| - case ${UNAME_MACHINE} in |
| - pc98) |
| - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
| + UNAME_PROCESSOR=`/usr/bin/uname -p` |
| + case ${UNAME_PROCESSOR} in |
| amd64) |
| - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
| - *) |
| - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; |
| + UNAME_PROCESSOR=x86_64 ;; |
| + i386) |
| + UNAME_PROCESSOR=i586 ;; |
| esac |
| + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` |
| exit ;; |
| i*:CYGWIN*:*) |
| echo ${UNAME_MACHINE}-pc-cygwin |
| exit ;; |
| + *:MINGW64*:*) |
| + echo ${UNAME_MACHINE}-pc-mingw64 |
| + exit ;; |
| *:MINGW*:*) |
| echo ${UNAME_MACHINE}-pc-mingw32 |
| exit ;; |
| + *:MSYS*:*) |
| + echo ${UNAME_MACHINE}-pc-msys |
| + exit ;; |
| i*:windows32*:*) |
| - # uname -m includes "-pc" on this system. |
| - echo ${UNAME_MACHINE}-mingw32 |
| + # uname -m includes "-pc" on this system. |
| + echo ${UNAME_MACHINE}-mingw32 |
| exit ;; |
| i*:PW*:*) |
| echo ${UNAME_MACHINE}-pc-pw32 |
| exit ;; |
| - *:Interix*:[3456]*) |
| - case ${UNAME_MACHINE} in |
| + *:Interix*:*) |
| + case ${UNAME_MACHINE} in |
| x86) |
| echo i586-pc-interix${UNAME_RELEASE} |
| exit ;; |
| - EM64T | authenticamd) |
| + authenticamd | genuineintel | EM64T) |
| echo x86_64-unknown-interix${UNAME_RELEASE} |
| exit ;; |
| + IA64) |
| + echo ia64-unknown-interix${UNAME_RELEASE} |
| + exit ;; |
| esac ;; |
| [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) |
| echo i${UNAME_MACHINE}-pc-mks |
| exit ;; |
| + 8664:Windows_NT:*) |
| + echo x86_64-pc-mks |
| + exit ;; |
| i*:Windows_NT*:* | Pentium*:Windows_NT*:*) |
| # How do we know it's Interix rather than the generic POSIX subsystem? |
| # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we |
| @@ -823,93 +900,21 @@ EOF |
| exit ;; |
| *:GNU:*:*) |
| # the GNU system |
| - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` |
| + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` |
| exit ;; |
| *:GNU/*:*:*) |
| # other systems with GNU libc and userland |
| - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu |
| + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} |
| exit ;; |
| i*86:Minix:*:*) |
| echo ${UNAME_MACHINE}-pc-minix |
| exit ;; |
| - arm*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| + aarch64:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| - avr32*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| - exit ;; |
| - cris:Linux:*:*) |
| - echo cris-axis-linux-gnu |
| - exit ;; |
| - crisv32:Linux:*:*) |
| - echo crisv32-axis-linux-gnu |
| - exit ;; |
| - frv:Linux:*:*) |
| - echo frv-unknown-linux-gnu |
| - exit ;; |
| - ia64:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| - exit ;; |
| - m32r*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| - exit ;; |
| - m68*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| - exit ;; |
| - mips:Linux:*:*) |
| - eval $set_cc_for_build |
| - sed 's/^ //' << EOF >$dummy.c |
| - #undef CPU |
| - #undef mips |
| - #undef mipsel |
| - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
| - CPU=mipsel |
| - #else |
| - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
| - CPU=mips |
| - #else |
| - CPU= |
| - #endif |
| - #endif |
| -EOF |
| - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
| - /^CPU/{ |
| - s: ::g |
| - p |
| - }'`" |
| - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } |
| - ;; |
| - mips64:Linux:*:*) |
| - eval $set_cc_for_build |
| - sed 's/^ //' << EOF >$dummy.c |
| - #undef CPU |
| - #undef mips64 |
| - #undef mips64el |
| - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
| - CPU=mips64el |
| - #else |
| - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
| - CPU=mips64 |
| - #else |
| - CPU= |
| - #endif |
| - #endif |
| -EOF |
| - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
| - /^CPU/{ |
| - s: ::g |
| - p |
| - }'`" |
| - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } |
| - ;; |
| - or32:Linux:*:*) |
| - echo or32-unknown-linux-gnu |
| - exit ;; |
| - ppc:Linux:*:*) |
| - echo powerpc-unknown-linux-gnu |
| - exit ;; |
| - ppc64:Linux:*:*) |
| - echo powerpc64-unknown-linux-gnu |
| + aarch64_be:Linux:*:*) |
| + UNAME_MACHINE=aarch64_be |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| alpha:Linux:*:*) |
| case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in |
| @@ -920,106 +925,144 @@ EOF |
| EV6) UNAME_MACHINE=alphaev6 ;; |
| EV67) UNAME_MACHINE=alphaev67 ;; |
| EV68*) UNAME_MACHINE=alphaev68 ;; |
| - esac |
| - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null |
| - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} |
| + esac |
| + objdump --private-headers /bin/sh | grep -q ld.so.1 |
| + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + arc:Linux:*:* | arceb:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + arm*:Linux:*:*) |
| + eval $set_cc_for_build |
| + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
| + | grep -q __ARM_EABI__ |
| + then |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + else |
| + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ |
| + | grep -q __ARM_PCS_VFP |
| + then |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi |
| + else |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf |
| + fi |
| + fi |
| + exit ;; |
| + avr32*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + cris:Linux:*:*) |
| + echo ${UNAME_MACHINE}-axis-linux-${LIBC} |
| + exit ;; |
| + crisv32:Linux:*:*) |
| + echo ${UNAME_MACHINE}-axis-linux-${LIBC} |
| + exit ;; |
| + e2k:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + frv:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + hexagon:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + i*86:Linux:*:*) |
| + echo ${UNAME_MACHINE}-pc-linux-${LIBC} |
| + exit ;; |
| + ia64:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + k1om:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + m32r*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + m68*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + mips:Linux:*:* | mips64:Linux:*:*) |
| + eval $set_cc_for_build |
| + sed 's/^ //' << EOF >$dummy.c |
| + #undef CPU |
| + #undef ${UNAME_MACHINE} |
| + #undef ${UNAME_MACHINE}el |
| + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
| + CPU=${UNAME_MACHINE}el |
| + #else |
| + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
| + CPU=${UNAME_MACHINE} |
| + #else |
| + CPU= |
| + #endif |
| + #endif |
| +EOF |
| + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` |
| + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } |
| + ;; |
| + mips64el:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + openrisc*:Linux:*:*) |
| + echo or1k-unknown-linux-${LIBC} |
| + exit ;; |
| + or32:Linux:*:* | or1k*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + padre:Linux:*:*) |
| + echo sparc-unknown-linux-${LIBC} |
| + exit ;; |
| + parisc64:Linux:*:* | hppa64:Linux:*:*) |
| + echo hppa64-unknown-linux-${LIBC} |
| exit ;; |
| parisc:Linux:*:* | hppa:Linux:*:*) |
| # Look for CPU level |
| case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in |
| - PA7*) echo hppa1.1-unknown-linux-gnu ;; |
| - PA8*) echo hppa2.0-unknown-linux-gnu ;; |
| - *) echo hppa-unknown-linux-gnu ;; |
| + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; |
| + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; |
| + *) echo hppa-unknown-linux-${LIBC} ;; |
| esac |
| exit ;; |
| - parisc64:Linux:*:* | hppa64:Linux:*:*) |
| - echo hppa64-unknown-linux-gnu |
| + ppc64:Linux:*:*) |
| + echo powerpc64-unknown-linux-${LIBC} |
| + exit ;; |
| + ppc:Linux:*:*) |
| + echo powerpc-unknown-linux-${LIBC} |
| + exit ;; |
| + ppc64le:Linux:*:*) |
| + echo powerpc64le-unknown-linux-${LIBC} |
| + exit ;; |
| + ppcle:Linux:*:*) |
| + echo powerpcle-unknown-linux-${LIBC} |
| + exit ;; |
| + riscv32:Linux:*:* | riscv64:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| s390:Linux:*:* | s390x:Linux:*:*) |
| - echo ${UNAME_MACHINE}-ibm-linux |
| + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} |
| exit ;; |
| sh64*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| sh*:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| sparc:Linux:*:* | sparc64:Linux:*:*) |
| - echo ${UNAME_MACHINE}-unknown-linux-gnu |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| + exit ;; |
| + tile*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| vax:Linux:*:*) |
| - echo ${UNAME_MACHINE}-dec-linux-gnu |
| + echo ${UNAME_MACHINE}-dec-linux-${LIBC} |
| exit ;; |
| x86_64:Linux:*:*) |
| - echo x86_64-unknown-linux-gnu |
| + echo ${UNAME_MACHINE}-pc-linux-${LIBC} |
| exit ;; |
| - xtensa:Linux:*:*) |
| - echo xtensa-unknown-linux-gnu |
| + xtensa*:Linux:*:*) |
| + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} |
| exit ;; |
| - i*86:Linux:*:*) |
| - # The BFD linker knows what the default object file format is, so |
| - # first see if it will tell us. cd to the root directory to prevent |
| - # problems with other programs or directories called `ld' in the path. |
| - # Set LC_ALL=C to ensure ld outputs messages in English. |
| - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ |
| - | sed -ne '/supported targets:/!d |
| - s/[ ][ ]*/ /g |
| - s/.*supported targets: *// |
| - s/ .*// |
| - p'` |
| - case "$ld_supported_targets" in |
| - elf32-i386) |
| - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" |
| - ;; |
| - a.out-i386-linux) |
| - echo "${UNAME_MACHINE}-pc-linux-gnuaout" |
| - exit ;; |
| - coff-i386) |
| - echo "${UNAME_MACHINE}-pc-linux-gnucoff" |
| - exit ;; |
| - "") |
| - # Either a pre-BFD a.out linker (linux-gnuoldld) or |
| - # one that does not give us useful --help. |
| - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" |
| - exit ;; |
| - esac |
| - # Determine whether the default compiler is a.out or elf |
| - eval $set_cc_for_build |
| - sed 's/^ //' << EOF >$dummy.c |
| - #include <features.h> |
| - #ifdef __ELF__ |
| - # ifdef __GLIBC__ |
| - # if __GLIBC__ >= 2 |
| - LIBC=gnu |
| - # else |
| - LIBC=gnulibc1 |
| - # endif |
| - # else |
| - LIBC=gnulibc1 |
| - # endif |
| - #else |
| - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) |
| - LIBC=gnu |
| - #else |
| - LIBC=gnuaout |
| - #endif |
| - #endif |
| - #ifdef __dietlibc__ |
| - LIBC=dietlibc |
| - #endif |
| -EOF |
| - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' |
| - /^LIBC/{ |
| - s: ::g |
| - p |
| - }'`" |
| - test x"${LIBC}" != x && { |
| - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" |
| - exit |
| - } |
| - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } |
| - ;; |
| i*86:DYNIX/ptx:4*:*) |
| # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. |
| # earlier versions are messed up and put the nodename in both |
| @@ -1027,11 +1070,11 @@ EOF |
| echo i386-sequent-sysv4 |
| exit ;; |
| i*86:UNIX_SV:4.2MP:2.*) |
| - # Unixware is an offshoot of SVR4, but it has its own version |
| - # number series starting with 2... |
| - # I am not positive that other SVR4 systems won't match this, |
| + # Unixware is an offshoot of SVR4, but it has its own version |
| + # number series starting with 2... |
| + # I am not positive that other SVR4 systems won't match this, |
| # I just have to hope. -- rms. |
| - # Use sysv4.2uw... so that sysv4* matches it. |
| + # Use sysv4.2uw... so that sysv4* matches it. |
| echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} |
| exit ;; |
| i*86:OS/2:*:*) |
| @@ -1048,7 +1091,7 @@ EOF |
| i*86:syllable:*:*) |
| echo ${UNAME_MACHINE}-pc-syllable |
| exit ;; |
| - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) |
| + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) |
| echo i386-unknown-lynxos${UNAME_RELEASE} |
| exit ;; |
| i*86:*DOS:*:*) |
| @@ -1063,7 +1106,7 @@ EOF |
| fi |
| exit ;; |
| i*86:*:5:[678]*) |
| - # UnixWare 7.x, OpenUNIX and OpenServer 6. |
| + # UnixWare 7.x, OpenUNIX and OpenServer 6. |
| case `/bin/uname -X | grep "^Machine"` in |
| *486*) UNAME_MACHINE=i486 ;; |
| *Pentium) UNAME_MACHINE=i586 ;; |
| @@ -1091,10 +1134,13 @@ EOF |
| exit ;; |
| pc:*:*:*) |
| # Left here for compatibility: |
| - # uname -m prints for DJGPP always 'pc', but it prints nothing about |
| - # the processor, so we play safe by assuming i386. |
| - echo i386-pc-msdosdjgpp |
| - exit ;; |
| + # uname -m prints for DJGPP always 'pc', but it prints nothing about |
| + # the processor, so we play safe by assuming i586. |
| + # Note: whatever this is, it MUST be the same as what config.sub |
| + # prints for the "djgpp" host, or else GDB configure will decide that |
| + # this is a cross-build. |
| + echo i586-pc-msdosdjgpp |
| + exit ;; |
| Intel:Mach:3*:*) |
| echo i386-pc-mach3 |
| exit ;; |
| @@ -1129,8 +1175,18 @@ EOF |
| /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
| && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; |
| 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) |
| - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
| - && { echo i486-ncr-sysv4; exit; } ;; |
| + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
| + && { echo i486-ncr-sysv4; exit; } ;; |
| + NCR*:*:4.2:* | MPRAS*:*:4.2:*) |
| + OS_REL='.3' |
| + test -r /etc/.relid \ |
| + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
| + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
| + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } |
| + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
| + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } |
| + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ |
| + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; |
| m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) |
| echo m68k-unknown-lynxos${UNAME_RELEASE} |
| exit ;; |
| @@ -1143,7 +1199,7 @@ EOF |
| rs6000:LynxOS:2.*:*) |
| echo rs6000-unknown-lynxos${UNAME_RELEASE} |
| exit ;; |
| - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) |
| + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) |
| echo powerpc-unknown-lynxos${UNAME_RELEASE} |
| exit ;; |
| SM[BE]S:UNIX_SV:*:*) |
| @@ -1163,10 +1219,10 @@ EOF |
| echo ns32k-sni-sysv |
| fi |
| exit ;; |
| - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort |
| - # says <Richard.M.Bartel@ccMail.Census.GOV> |
| - echo i586-unisys-sysv4 |
| - exit ;; |
| + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort |
| + # says <Richard.M.Bartel@ccMail.Census.GOV> |
| + echo i586-unisys-sysv4 |
| + exit ;; |
| *:UNIX_System_V:4*:FTX*) |
| # From Gerald Hewes <hewes@openmarket.com>. |
| # How about differentiating between stratus architectures? -djm |
| @@ -1192,11 +1248,11 @@ EOF |
| exit ;; |
| R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) |
| if [ -d /usr/nec ]; then |
| - echo mips-nec-sysv${UNAME_RELEASE} |
| + echo mips-nec-sysv${UNAME_RELEASE} |
| else |
| - echo mips-unknown-sysv${UNAME_RELEASE} |
| + echo mips-unknown-sysv${UNAME_RELEASE} |
| fi |
| - exit ;; |
| + exit ;; |
| BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. |
| echo powerpc-be-beos |
| exit ;; |
| @@ -1206,6 +1262,12 @@ EOF |
| BePC:BeOS:*:*) # BeOS running on Intel PC compatible. |
| echo i586-pc-beos |
| exit ;; |
| + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. |
| + echo i586-pc-haiku |
| + exit ;; |
| + x86_64:Haiku:*:*) |
| + echo x86_64-unknown-haiku |
| + exit ;; |
| SX-4:SUPER-UX:*:*) |
| echo sx4-nec-superux${UNAME_RELEASE} |
| exit ;; |
| @@ -1224,6 +1286,9 @@ EOF |
| SX-8R:SUPER-UX:*:*) |
| echo sx8r-nec-superux${UNAME_RELEASE} |
| exit ;; |
| + SX-ACE:SUPER-UX:*:*) |
| + echo sxace-nec-superux${UNAME_RELEASE} |
| + exit ;; |
| Power*:Rhapsody:*:*) |
| echo powerpc-apple-rhapsody${UNAME_RELEASE} |
| exit ;; |
| @@ -1232,14 +1297,36 @@ EOF |
| exit ;; |
| *:Darwin:*:*) |
| UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown |
| - case $UNAME_PROCESSOR in |
| - unknown) UNAME_PROCESSOR=powerpc ;; |
| - esac |
| + eval $set_cc_for_build |
| + if test "$UNAME_PROCESSOR" = unknown ; then |
| + UNAME_PROCESSOR=powerpc |
| + fi |
| + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then |
| + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then |
| + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ |
| + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ |
| + grep IS_64BIT_ARCH >/dev/null |
| + then |
| + case $UNAME_PROCESSOR in |
| + i386) UNAME_PROCESSOR=x86_64 ;; |
| + powerpc) UNAME_PROCESSOR=powerpc64 ;; |
| + esac |
| + fi |
| + fi |
| + elif test "$UNAME_PROCESSOR" = i386 ; then |
| + # Avoid executing cc on OS X 10.9, as it ships with a stub |
| + # that puts up a graphical alert prompting to install |
| + # developer tools. Any system running Mac OS X 10.7 or |
| + # later (Darwin 11 and later) is required to have a 64-bit |
| + # processor. This is not true of the ARM version of Darwin |
| + # that Apple uses in portable devices. |
| + UNAME_PROCESSOR=x86_64 |
| + fi |
| echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} |
| exit ;; |
| *:procnto*:*:* | *:QNX:[0123456789]*:*) |
| UNAME_PROCESSOR=`uname -p` |
| - if test "$UNAME_PROCESSOR" = "x86"; then |
| + if test "$UNAME_PROCESSOR" = x86; then |
| UNAME_PROCESSOR=i386 |
| UNAME_MACHINE=pc |
| fi |
| @@ -1248,12 +1335,18 @@ EOF |
| *:QNX:*:4*) |
| echo i386-pc-qnx |
| exit ;; |
| - NSE-?:NONSTOP_KERNEL:*:*) |
| + NEO-?:NONSTOP_KERNEL:*:*) |
| + echo neo-tandem-nsk${UNAME_RELEASE} |
| + exit ;; |
| + NSE-*:NONSTOP_KERNEL:*:*) |
| echo nse-tandem-nsk${UNAME_RELEASE} |
| exit ;; |
| NSR-?:NONSTOP_KERNEL:*:*) |
| echo nsr-tandem-nsk${UNAME_RELEASE} |
| exit ;; |
| + NSX-?:NONSTOP_KERNEL:*:*) |
| + echo nsx-tandem-nsk${UNAME_RELEASE} |
| + exit ;; |
| *:NonStop-UX:*:*) |
| echo mips-compaq-nonstopux |
| exit ;; |
| @@ -1267,7 +1360,7 @@ EOF |
| # "uname -m" is not consistent, so use $cputype instead. 386 |
| # is converted to i386 for consistency with other x86 |
| # operating systems. |
| - if test "$cputype" = "386"; then |
| + if test "$cputype" = 386; then |
| UNAME_MACHINE=i386 |
| else |
| UNAME_MACHINE="$cputype" |
| @@ -1293,13 +1386,13 @@ EOF |
| echo pdp10-unknown-its |
| exit ;; |
| SEI:*:*:SEIUX) |
| - echo mips-sei-seiux${UNAME_RELEASE} |
| + echo mips-sei-seiux${UNAME_RELEASE} |
| exit ;; |
| *:DragonFly:*:*) |
| echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` |
| exit ;; |
| *:*VMS:*:*) |
| - UNAME_MACHINE=`(uname -p) 2>/dev/null` |
| + UNAME_MACHINE=`(uname -p) 2>/dev/null` |
| case "${UNAME_MACHINE}" in |
| A*) echo alpha-dec-vms ; exit ;; |
| I*) echo ia64-dec-vms ; exit ;; |
| @@ -1309,179 +1402,36 @@ EOF |
| echo i386-pc-xenix |
| exit ;; |
| i*86:skyos:*:*) |
| - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' |
| + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` |
| exit ;; |
| i*86:rdos:*:*) |
| echo ${UNAME_MACHINE}-pc-rdos |
| exit ;; |
| + i*86:AROS:*:*) |
| + echo ${UNAME_MACHINE}-pc-aros |
| + exit ;; |
| + x86_64:VMkernel:*:*) |
| + echo ${UNAME_MACHINE}-unknown-esx |
| + exit ;; |
| + amd64:Isilon\ OneFS:*:*) |
| + echo x86_64-unknown-onefs |
| + exit ;; |
| esac |
| |
| -#echo '(No uname command or uname output not recognized.)' 1>&2 |
| -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 |
| - |
| -eval $set_cc_for_build |
| -cat >$dummy.c <<EOF |
| -#ifdef _SEQUENT_ |
| -# include <sys/types.h> |
| -# include <sys/utsname.h> |
| -#endif |
| -main () |
| -{ |
| -#if defined (sony) |
| -#if defined (MIPSEB) |
| - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, |
| - I don't know.... */ |
| - printf ("mips-sony-bsd\n"); exit (0); |
| -#else |
| -#include <sys/param.h> |
| - printf ("m68k-sony-newsos%s\n", |
| -#ifdef NEWSOS4 |
| - "4" |
| -#else |
| - "" |
| -#endif |
| - ); exit (0); |
| -#endif |
| -#endif |
| - |
| -#if defined (__arm) && defined (__acorn) && defined (__unix) |
| - printf ("arm-acorn-riscix\n"); exit (0); |
| -#endif |
| - |
| -#if defined (hp300) && !defined (hpux) |
| - printf ("m68k-hp-bsd\n"); exit (0); |
| -#endif |
| - |
| -#if defined (NeXT) |
| -#if !defined (__ARCHITECTURE__) |
| -#define __ARCHITECTURE__ "m68k" |
| -#endif |
| - int version; |
| - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; |
| - if (version < 4) |
| - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); |
| - else |
| - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); |
| - exit (0); |
| -#endif |
| - |
| -#if defined (MULTIMAX) || defined (n16) |
| -#if defined (UMAXV) |
| - printf ("ns32k-encore-sysv\n"); exit (0); |
| -#else |
| -#if defined (CMU) |
| - printf ("ns32k-encore-mach\n"); exit (0); |
| -#else |
| - printf ("ns32k-encore-bsd\n"); exit (0); |
| -#endif |
| -#endif |
| -#endif |
| - |
| -#if defined (__386BSD__) |
| - printf ("i386-pc-bsd\n"); exit (0); |
| -#endif |
| - |
| -#if defined (sequent) |
| -#if defined (i386) |
| - printf ("i386-sequent-dynix\n"); exit (0); |
| -#endif |
| -#if defined (ns32000) |
| - printf ("ns32k-sequent-dynix\n"); exit (0); |
| -#endif |
| -#endif |
| - |
| -#if defined (_SEQUENT_) |
| - struct utsname un; |
| - |
| - uname(&un); |
| - |
| - if (strncmp(un.version, "V2", 2) == 0) { |
| - printf ("i386-sequent-ptx2\n"); exit (0); |
| - } |
| - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ |
| - printf ("i386-sequent-ptx1\n"); exit (0); |
| - } |
| - printf ("i386-sequent-ptx\n"); exit (0); |
| - |
| -#endif |
| - |
| -#if defined (vax) |
| -# if !defined (ultrix) |
| -# include <sys/param.h> |
| -# if defined (BSD) |
| -# if BSD == 43 |
| - printf ("vax-dec-bsd4.3\n"); exit (0); |
| -# else |
| -# if BSD == 199006 |
| - printf ("vax-dec-bsd4.3reno\n"); exit (0); |
| -# else |
| - printf ("vax-dec-bsd\n"); exit (0); |
| -# endif |
| -# endif |
| -# else |
| - printf ("vax-dec-bsd\n"); exit (0); |
| -# endif |
| -# else |
| - printf ("vax-dec-ultrix\n"); exit (0); |
| -# endif |
| -#endif |
| - |
| -#if defined (alliant) && defined (i860) |
| - printf ("i860-alliant-bsd\n"); exit (0); |
| -#endif |
| - |
| - exit (1); |
| -} |
| -EOF |
| - |
| -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && |
| - { echo "$SYSTEM_NAME"; exit; } |
| - |
| -# Apollos put the system type in the environment. |
| - |
| -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } |
| - |
| -# Convex versions that predate uname can use getsysinfo(1) |
| - |
| -if [ -x /usr/convex/getsysinfo ] |
| -then |
| - case `getsysinfo -f cpu_type` in |
| - c1*) |
| - echo c1-convex-bsd |
| - exit ;; |
| - c2*) |
| - if getsysinfo -f scalar_acc |
| - then echo c32-convex-bsd |
| - else echo c2-convex-bsd |
| - fi |
| - exit ;; |
| - c34*) |
| - echo c34-convex-bsd |
| - exit ;; |
| - c38*) |
| - echo c38-convex-bsd |
| - exit ;; |
| - c4*) |
| - echo c4-convex-bsd |
| - exit ;; |
| - esac |
| -fi |
| - |
| cat >&2 <<EOF |
| $0: unable to guess system type |
| |
| -This script, last modified $timestamp, has failed to recognize |
| -the operating system you are using. It is advised that you |
| -download the most up to date version of the config scripts from |
| +This script (version $timestamp), has failed to recognize the |
| +operating system you are using. If your script is old, overwrite |
| +config.guess and config.sub with the latest versions from: |
| |
| - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess |
| + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess |
| and |
| - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub |
| + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub |
| |
| -If the version you run ($0) is already up to date, please |
| -send the following data and any information you think might be |
| -pertinent to <config-patches@gnu.org> in order to provide the needed |
| -information to handle your system. |
| +If $0 has already been updated, send the following data and any |
| +information you think might be pertinent to config-patches@gnu.org to |
| +provide the necessary information to handle your system. |
| |
| config.guess timestamp = $timestamp |
| |
| diff --git a/configure.ac b/configure.ac |
| index 8b458fa..78e3355 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -113,27 +113,9 @@ if test x"$acx_pthread_ok" = x"yes"; then |
| AC_CHECK_LIB(pthread, pthread_self) |
| fi |
| |
| -# Check if there is google-gflags library installed. |
| -SAVE_CFLAGS="$CFLAGS" |
| -SAVE_LIBS="$LIBS" |
| -AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR], |
| - GFLAGS_CFLAGS="-I${with_gflags}/include" |
| - GFLAGS_LIBS="-L${with_gflags}/lib -lgflags" |
| - CFLAGS="$CFLAGS $GFLAGS_CFLAGS" |
| - LIBS="$LIBS $GFLAGS_LIBS" |
| -) |
| -AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0) |
| -if test x"$ac_cv_have_libgflags" = x"1"; then |
| - AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library]) |
| - if test x"$GFLAGS_LIBS" = x""; then |
| - GFLAGS_LIBS="-lgflags" |
| - fi |
| -else |
| - GFLAGS_CFLAGS= |
| - GFLAGS_LIBS= |
| -fi |
| -CFLAGS="$SAVE_CFLAGS" |
| -LIBS="$SAVE_LIBS" |
| +GFLAGS_CFLAGS= |
| +GFLAGS_LIBS= |
| +ac_cv_have_libgflags=0 |
| |
| # TODO(hamaji): Use official m4 macros provided by testing libraries |
| # once the m4 macro of Google Mocking becomes ready. |
| diff --git a/src/demangle.cc b/src/demangle.cc |
| index 0daf308..4b7c160 100644 |
| --- a/src/demangle.cc |
| +++ b/src/demangle.cc |
| @@ -167,7 +167,7 @@ static size_t StrLen(const char *str) { |
| // Returns true if "str" has at least "n" characters remaining. |
| static bool AtLeastNumCharsRemaining(const char *str, int n) { |
| for (int i = 0; i < n; ++i) { |
| - if (str == '\0') { |
| + if (str[i] == '\0') { |
| return false; |
| } |
| } |
| @@ -223,7 +223,7 @@ static bool ParseTwoCharToken(State *state, const char *two_char_token) { |
| // Returns true and advances "mangled_cur" if we find any character in |
| // "char_class" at "mangled_cur" position. |
| static bool ParseCharClass(State *state, const char *char_class) { |
| - if (state->mangled_cur == '\0') { |
| + if (state->mangled_cur[0] == '\0') { |
| return false; |
| } |
| const char *p = char_class; |
| diff --git a/src/glog/stl_logging.h.in b/src/glog/stl_logging.h.in |
| index 30836de..3e90573 100644 |
| --- a/src/glog/stl_logging.h.in |
| +++ b/src/glog/stl_logging.h.in |
| @@ -50,10 +50,13 @@ |
| #include <utility> |
| #include <vector> |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| # include <ext/hash_set> |
| # include <ext/hash_map> |
| # include <ext/slist> |
| +#elif defined(_LIBCPP_VERSION) |
| +# include <unordered_map> |
| +# include <unordered_set> |
| #endif |
| |
| // Forward declare these two, and define them after all the container streams |
| @@ -80,7 +83,7 @@ inline std::ostream& operator<<(std::ostream& out, \ |
| OUTPUT_TWO_ARG_CONTAINER(std::vector) |
| OUTPUT_TWO_ARG_CONTAINER(std::deque) |
| OUTPUT_TWO_ARG_CONTAINER(std::list) |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| OUTPUT_TWO_ARG_CONTAINER(__gnu_cxx::slist) |
| #endif |
| |
| @@ -109,9 +112,12 @@ inline std::ostream& operator<<(std::ostream& out, \ |
| |
| OUTPUT_FOUR_ARG_CONTAINER(std::map) |
| OUTPUT_FOUR_ARG_CONTAINER(std::multimap) |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| OUTPUT_FOUR_ARG_CONTAINER(__gnu_cxx::hash_set) |
| OUTPUT_FOUR_ARG_CONTAINER(__gnu_cxx::hash_multiset) |
| +#elif defined(_LIBCPP_VERSION) |
| +OUTPUT_FOUR_ARG_CONTAINER(std::unordered_set) |
| +OUTPUT_FOUR_ARG_CONTAINER(std::unordered_multiset) |
| #endif |
| |
| #undef OUTPUT_FOUR_ARG_CONTAINER |
| @@ -124,9 +130,12 @@ inline std::ostream& operator<<(std::ostream& out, \ |
| return out; \ |
| } |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| OUTPUT_FIVE_ARG_CONTAINER(__gnu_cxx::hash_map) |
| OUTPUT_FIVE_ARG_CONTAINER(__gnu_cxx::hash_multimap) |
| +#elif defined(_LIBCPP_VERSION) |
| +OUTPUT_FIVE_ARG_CONTAINER(std::unordered_map) |
| +OUTPUT_FIVE_ARG_CONTAINER(std::unordered_multimap) |
| #endif |
| |
| #undef OUTPUT_FIVE_ARG_CONTAINER |
| diff --git a/src/stacktrace_powerpc-inl.h b/src/stacktrace_powerpc-inl.h |
| index 1090dde..03b9108 100644 |
| --- a/src/stacktrace_powerpc-inl.h |
| +++ b/src/stacktrace_powerpc-inl.h |
| @@ -111,7 +111,7 @@ int GetStackTrace(void** result, int max_depth, int skip_count) { |
| result[n++] = *(sp+2); |
| #elif defined(_CALL_SYSV) |
| result[n++] = *(sp+1); |
| -#elif defined(__APPLE__) || (defined(__linux) && defined(__PPC64__)) |
| +#elif defined(__APPLE__) || ((defined(__linux) || defined(__linux__)) && defined(__PPC64__)) |
| // This check is in case the compiler doesn't define _CALL_AIX/etc. |
| result[n++] = *(sp+2); |
| #elif defined(__linux) |
| diff --git a/src/stl_logging_unittest.cc b/src/stl_logging_unittest.cc |
| index 5dcbc44..ee344ca 100644 |
| --- a/src/stl_logging_unittest.cc |
| +++ b/src/stl_logging_unittest.cc |
| @@ -39,7 +39,7 @@ |
| #include <string> |
| #include <vector> |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| # include <ext/hash_map> |
| # include <ext/hash_set> |
| #endif |
| @@ -48,7 +48,7 @@ |
| #include "googletest.h" |
| |
| using namespace std; |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| using namespace __gnu_cxx; |
| #endif |
| |
| @@ -83,7 +83,7 @@ void TestSTLLogging() { |
| CHECK_EQ(m, copied_m); // This must compile. |
| } |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| { |
| // Test a hashed simple associative container. |
| hash_set<int> hs; |
| @@ -98,7 +98,7 @@ void TestSTLLogging() { |
| } |
| #endif |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| { |
| // Test a hashed pair associative container. |
| hash_map<int, string> hm; |
| @@ -145,7 +145,7 @@ void TestSTLLogging() { |
| CHECK_EQ(m, copied_m); // This must compile. |
| } |
| |
| -#ifdef __GNUC__ |
| +#if defined (__GNUC__) && !defined(_LIBCPP_VERSION) |
| { |
| // Test a hashed simple associative container. |
| // Use a user defined hash function. |
| diff --git a/src/symbolize.cc b/src/symbolize.cc |
| index b69eefd..18bbccf 100644 |
| --- a/src/symbolize.cc |
| +++ b/src/symbolize.cc |
| @@ -232,7 +232,7 @@ bool GetSectionHeaderByName(int fd, const char *name, size_t name_len, |
| } |
| char header_name[kMaxSectionNameLen]; |
| if (sizeof(header_name) < name_len) { |
| - RAW_LOG(WARNING, "Section name '%s' is too long (%"PRIuS"); " |
| + RAW_LOG(WARNING, "Section name '%s' is too long (%" PRIuS "); " |
| "section will not be found (even if present).", name, name_len); |
| // No point in even trying. |
| return false; |
| diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in |
| index cdd47b8..19168b1 100644 |
| --- a/src/glog/logging.h.in |
| +++ b/src/glog/logging.h.in |
| @@ -1364,6 +1364,16 @@ class GOOGLE_GLOG_DLL_DECL LogSink { |
| // Sink's logging logic (message_len is such as to exclude '\n' at the end). |
| // This method can't use LOG() or CHECK() as logging system mutex(s) are held |
| // during this call. |
| + virtual void send(LogSeverity severity, const char* full_filename, |
| + const char* base_filename, int line, |
| + const struct ::tm* tm_time, |
| + const char* message, size_t message_len, int32 usecs) { |
| + send(severity, full_filename, base_filename, line, |
| + tm_time, message, message_len); |
| + } |
| + // This send() signature is obsolete. |
| + // New implementations should define this in terms of |
| + // the above send() method. |
| virtual void send(LogSeverity severity, const char* full_filename, |
| const char* base_filename, int line, |
| const struct ::tm* tm_time, |
| @@ -1388,7 +1398,15 @@ class GOOGLE_GLOG_DLL_DECL LogSink { |
| // Can be useful to implement send(). |
| static std::string ToString(LogSeverity severity, const char* file, int line, |
| const struct ::tm* tm_time, |
| - const char* message, size_t message_len); |
| + const char* message, size_t message_len, |
| + int32 usecs); |
| + |
| + // Obsolete |
| + static std::string ToString(LogSeverity severity, const char* file, int line, |
| + const struct ::tm* tm_time, |
| + const char* message, size_t message_len) { |
| + return ToString(severity, file, line, tm_time, message, message_len, 0); |
| + } |
| }; |
| |
| // Add or remove a LogSink as a consumer of logging data. Thread-safe. |
| diff --git a/src/logging.cc b/src/logging.cc |
| index ec334a9..9d07d3c 100644 |
| --- a/src/logging.cc |
| +++ b/src/logging.cc |
| @@ -304,6 +304,7 @@ struct LogMessage::LogMessageData { |
| }; |
| time_t timestamp_; // Time of creation of LogMessage |
| struct ::tm tm_time_; // Time of creation of LogMessage |
| + int32 usecs_; // Time of creation of LogMessage - microseconds part |
| size_t num_prefix_chars_; // # of chars of prefix in this message |
| size_t num_chars_to_log_; // # of chars of msg to send to log |
| size_t num_chars_to_syslog_; // # of chars of msg to send to syslog |
| @@ -471,7 +472,8 @@ class LogDestination { |
| int line, |
| const struct ::tm* tm_time, |
| const char* message, |
| - size_t message_len); |
| + size_t message_len, |
| + int32 usecs); |
| |
| // Wait for all registered sinks via WaitTillSent |
| // including the optional one in "data". |
| @@ -738,12 +740,13 @@ inline void LogDestination::LogToSinks(LogSeverity severity, |
| int line, |
| const struct ::tm* tm_time, |
| const char* message, |
| - size_t message_len) { |
| + size_t message_len, |
| + int32 usecs) { |
| ReaderMutexLock l(&sink_mutex_); |
| if (sinks_) { |
| for (int i = sinks_->size() - 1; i >= 0; i--) { |
| (*sinks_)[i]->send(severity, full_filename, base_filename, |
| - line, tm_time, message, message_len); |
| + line, tm_time, message, message_len, usecs); |
| } |
| } |
| } |
| @@ -1193,8 +1196,8 @@ void LogMessage::Init(const char* file, |
| WallTime now = WallTime_Now(); |
| data_->timestamp_ = static_cast<time_t>(now); |
| localtime_r(&data_->timestamp_, &data_->tm_time_); |
| - int usecs = static_cast<int>((now - data_->timestamp_) * 1000000); |
| - RawLog__SetLastTime(data_->tm_time_, usecs); |
| + data_->usecs_ = static_cast<int32>((now - data_->timestamp_) * 1000000); |
| + RawLog__SetLastTime(data_->tm_time_, data_->usecs_); |
| |
| data_->num_chars_to_log_ = 0; |
| data_->num_chars_to_syslog_ = 0; |
| @@ -1214,7 +1217,7 @@ void LogMessage::Init(const char* file, |
| << setw(2) << data_->tm_time_.tm_hour << ':' |
| << setw(2) << data_->tm_time_.tm_min << ':' |
| << setw(2) << data_->tm_time_.tm_sec << "." |
| - << setw(6) << usecs |
| + << setw(6) << data_->usecs_ |
| << ' ' |
| << setfill(' ') << setw(5) |
| << static_cast<unsigned int>(GetTID()) << setfill('0') |
| @@ -1351,7 +1354,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { |
| data_->line_, &data_->tm_time_, |
| data_->message_text_ + data_->num_prefix_chars_, |
| (data_->num_chars_to_log_ - |
| - data_->num_prefix_chars_ - 1)); |
| + data_->num_prefix_chars_ - 1), |
| + data_->usecs_); |
| } else { |
| |
| // log this message to all log files of severity <= severity_ |
| @@ -1368,7 +1372,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { |
| data_->line_, &data_->tm_time_, |
| data_->message_text_ + data_->num_prefix_chars_, |
| (data_->num_chars_to_log_ |
| - - data_->num_prefix_chars_ - 1)); |
| + - data_->num_prefix_chars_ - 1), |
| + data_->usecs_); |
| // NOTE: -1 removes trailing \n |
| } |
| |
| @@ -1467,7 +1472,8 @@ void LogMessage::SendToSink() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { |
| data_->line_, &data_->tm_time_, |
| data_->message_text_ + data_->num_prefix_chars_, |
| (data_->num_chars_to_log_ - |
| - data_->num_prefix_chars_ - 1)); |
| + data_->num_prefix_chars_ - 1), |
| + data_->usecs_); |
| } |
| } |
| |
| @@ -1595,16 +1601,10 @@ void LogSink::WaitTillSent() { |
| |
| string LogSink::ToString(LogSeverity severity, const char* file, int line, |
| const struct ::tm* tm_time, |
| - const char* message, size_t message_len) { |
| + const char* message, size_t message_len, int32 usecs) { |
| ostringstream stream(string(message, message_len)); |
| stream.fill('0'); |
| |
| - // FIXME(jrvb): Updating this to use the correct value for usecs |
| - // requires changing the signature for both this method and |
| - // LogSink::send(). This change needs to be done in a separate CL |
| - // so subclasses of LogSink can be updated at the same time. |
| - int usecs = 0; |
| - |
| stream << LogSeverityNames[severity][0] |
| << setw(2) << 1+tm_time->tm_mon |
| << setw(2) << tm_time->tm_mday |
| diff --git a/src/logging_unittest.cc b/src/logging_unittest.cc |
| index d7e95cf..aff8408 100644 |
| --- a/src/logging_unittest.cc |
| +++ b/src/logging_unittest.cc |
| @@ -479,9 +479,16 @@ class TestLogSinkImpl : public LogSink { |
| virtual void send(LogSeverity severity, const char* /* full_filename */, |
| const char* base_filename, int line, |
| const struct tm* tm_time, |
| - const char* message, size_t message_len) { |
| + const char* message, size_t message_len, int usecs) { |
| errors.push_back( |
| - ToString(severity, base_filename, line, tm_time, message, message_len)); |
| + ToString(severity, base_filename, line, tm_time, message, message_len, usecs)); |
| + } |
| + virtual void send(LogSeverity severity, const char* full_filename, |
| + const char* base_filename, int line, |
| + const struct tm* tm_time, |
| + const char* message, size_t message_len) { |
| + send(severity, full_filename, base_filename, line, |
| + tm_time, message, message_len, 0); |
| } |
| }; |
| |
| @@ -999,15 +1006,23 @@ class TestWaitingLogSink : public LogSink { |
| virtual void send(LogSeverity severity, const char* /* full_filename */, |
| const char* base_filename, int line, |
| const struct tm* tm_time, |
| - const char* message, size_t message_len) { |
| + const char* message, size_t message_len, int usecs) { |
| // Push it to Writer thread if we are the original logging thread. |
| // Note: Something like ThreadLocalLogSink is a better choice |
| // to do thread-specific LogSink logic for real. |
| if (pthread_equal(tid_, pthread_self())) { |
| writer_.Buffer(ToString(severity, base_filename, line, |
| - tm_time, message, message_len)); |
| + tm_time, message, message_len, usecs)); |
| } |
| } |
| + |
| + virtual void send(LogSeverity severity, const char* full_filename, |
| + const char* base_filename, int line, |
| + const struct tm* tm_time, |
| + const char* message, size_t message_len) { |
| + send(severity, full_filename, base_filename, line, tm_time, message, message_len); |
| + } |
| + |
| virtual void WaitTillSent() { |
| // Wait for Writer thread if we are the original logging thread. |
| if (pthread_equal(tid_, pthread_self())) writer_.Wait(); |
| diff --git a/src/windows/glog/logging.h b/src/windows/glog/logging.h |
| index 1d91b12..acdd0c2 100755 |
| --- a/src/windows/glog/logging.h |
| +++ b/src/windows/glog/logging.h |
| @@ -1368,6 +1368,16 @@ class GOOGLE_GLOG_DLL_DECL LogSink { |
| // Sink's logging logic (message_len is such as to exclude '\n' at the end). |
| // This method can't use LOG() or CHECK() as logging system mutex(s) are held |
| // during this call. |
| + virtual void send(LogSeverity severity, const char* full_filename, |
| + const char* base_filename, int line, |
| + const struct ::tm* tm_time, |
| + const char* message, size_t message_len, int32 usecs) { |
| + send(severity, full_filename, base_filename, line, |
| + tm_time, message, message_len); |
| + } |
| + // This send() signature is obsolete. |
| + // New implementations should define this in terms of |
| + // the above send() method. |
| virtual void send(LogSeverity severity, const char* full_filename, |
| const char* base_filename, int line, |
| const struct ::tm* tm_time, |
| @@ -1392,7 +1402,15 @@ class GOOGLE_GLOG_DLL_DECL LogSink { |
| // Can be useful to implement send(). |
| static std::string ToString(LogSeverity severity, const char* file, int line, |
| const struct ::tm* tm_time, |
| - const char* message, size_t message_len); |
| + const char* message, size_t message_len, |
| + int32 usecs); |
| + |
| + // Obsolete |
| + static std::string ToString(LogSeverity severity, const char* file, int line, |
| + const struct ::tm* tm_time, |
| + const char* message, size_t message_len) { |
| + return ToString(severity, file, line, tm_time, message, message_len, 0); |
| + } |
| }; |
| |
| // Add or remove a LogSink as a consumer of logging data. Thread-safe. |