diff options
author | Martin Stransky <stransky@anakreon.cz> | 2014-04-28 13:41:25 +0200 |
---|---|---|
committer | Martin Stransky <stransky@anakreon.cz> | 2014-04-28 13:41:25 +0200 |
commit | 64a1d25fbb526ace39eaf641df68bec203134fce (patch) | |
tree | e8f7c52ef364dbd9b53e9ccf906cf8ed8214bec0 | |
parent | Arm build fixes (diff) | |
download | librewolf-fedora-ff-64a1d25fbb526ace39eaf641df68bec203134fce.tar.gz librewolf-fedora-ff-64a1d25fbb526ace39eaf641df68bec203134fce.tar.bz2 librewolf-fedora-ff-64a1d25fbb526ace39eaf641df68bec203134fce.zip |
updated ppc64le patch
-rw-r--r-- | firefox.spec | 5 | ||||
-rw-r--r-- | mozilla-ppc64le.patch | 4638 |
2 files changed, 759 insertions, 3884 deletions
diff --git a/firefox.spec b/firefox.spec index 289c2b0..81afd1e 100644 --- a/firefox.spec +++ b/firefox.spec @@ -87,7 +87,7 @@ Summary: Mozilla Firefox Web browser Name: firefox Version: 29.0 -Release: 4%{?pre_tag}%{?dist} +Release: 5%{?pre_tag}%{?dist} URL: http://www.mozilla.org/projects/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet @@ -635,6 +635,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Mon Apr 28 2014 Martin Stransky <stransky@redhat.com> - 29.0-5 +- An updated ppc64le patch (rhbz#1091054) + * Mon Apr 28 2014 Martin Stransky <stransky@redhat.com> - 29.0-4 - Arm build fixes diff --git a/mozilla-ppc64le.patch b/mozilla-ppc64le.patch index adbe2ca..bb340cb 100644 --- a/mozilla-ppc64le.patch +++ b/mozilla-ppc64le.patch @@ -3,10 +3,11 @@ # User Ulrich Weigand <uweigand@de.ibm.com> Bug 976648 - powerpc64le-linux support - toplevel build/config -diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess ---- a/build/autoconf/config.guess -+++ b/build/autoconf/config.guess -@@ -1,47 +1,41 @@ +Index: mozilla-release/build/autoconf/config.guess +=================================================================== +--- mozilla-release.orig/build/autoconf/config.guess ++++ mozilla-release/build/autoconf/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, @@ -24,8 +25,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@@ -17,26 +15,22 @@ timestamp='2009-08-19' # General Public License for more details. # # You should have received a copy of the GNU General Public License @@ -60,17 +60,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess me=`echo "$0" | sed -e 's,.*/,,'` - usage="\ - Usage: $0 [OPTION] - - Output the configuration name of the system \`$me' is run on. - -@@ -51,18 +45,17 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to <config-patches@gnu.org>." - - version="\ +@@ -56,8 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. @@ -80,17 +70,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line -@@ -134,22 +127,43 @@ if (test -f /.attbin/uname) >/dev/null 2 - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown - UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +@@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` | UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown @@ -125,17 +105,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". -@@ -175,17 +189,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf +@@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ fi ;; *) @@ -144,17 +114,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess ;; esac # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in -@@ -196,16 +210,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: +@@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; @@ -165,17 +125,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) -@@ -218,17 +236,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) +@@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) @@ -184,17 +134,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in -@@ -264,17 +282,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - 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. +@@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # 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'` @@ -206,17 +146,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess 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 - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -@@ -290,22 +311,22 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) +@@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ echo s390-ibm-zvmoe exit ;; *:OS400:*:*) @@ -231,17 +161,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -328,16 +349,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - 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 ;; +@@ -333,6 +354,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -251,17 +171,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 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') | \ -@@ -386,33 +410,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not +@@ -391,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) @@ -294,17 +204,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -@@ -472,31 +496,31 @@ EOF - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) +@@ -477,8 +501,8 @@ EOF echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) @@ -315,12 +215,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi +@@ -491,7 +515,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi @@ -329,17 +224,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) -@@ -543,17 +567,17 @@ EOF - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else +@@ -548,7 +572,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; @@ -348,17 +233,7 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess 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` -@@ -586,62 +610,62 @@ EOF - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; +@@ -591,52 +615,52 @@ 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` @@ -388,20 +263,11 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess 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) @@ -409,2260 +275,17 @@ diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess + #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` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build -@@ -722,32 +746,32 @@ EOF - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - 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 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -@@ -761,63 +785,68 @@ EOF - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - 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_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} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - 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/[-(].*//'` ;; -+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; -+ *:MINGW64*:*) -+ echo ${UNAME_MACHINE}-pc-mingw64 -+ exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; -+ i*: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 | genuineintel) -+ 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 -@@ -840,55 +869,91 @@ EOF - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - 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 '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; -+ aarch64:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; -+ 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 -+ EV5) UNAME_MACHINE=alphaev5 ;; -+ EV56) UNAME_MACHINE=alphaev56 ;; -+ PCA56) UNAME_MACHINE=alphapca56 ;; -+ PCA57) UNAME_MACHINE=alphapca56 ;; -+ EV6) UNAME_MACHINE=alphaev6 ;; -+ EV67) UNAME_MACHINE=alphaev67 ;; -+ EV68*) UNAME_MACHINE=alphaev68 ;; -+ 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-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else -- echo ${UNAME_MACHINE}-unknown-linux-gnueabi -+ 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-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) -- echo cris-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) -- echo crisv32-axis-linux-gnu -+ echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - frv:Linux:*:*) -- echo frv-unknown-linux-gnu -+ 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-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ 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) -@@ -896,145 +961,87 @@ EOF - #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 | sed -n ' -- /^CPU/{ -- s: ::g -- p -- }'`" -- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } -+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` -+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; -+ or1k:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; - or32:Linux:*:*) -- echo or32-unknown-linux-gnu -- exit ;; -- ppc:Linux:*:*) -- echo powerpc-unknown-linux-gnu -- exit ;; -- ppc64:Linux:*:*) -- echo powerpc64-unknown-linux-gnu -- exit ;; -- alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -- EV5) UNAME_MACHINE=alphaev5 ;; -- EV56) UNAME_MACHINE=alphaev56 ;; -- PCA56) UNAME_MACHINE=alphapca56 ;; -- PCA57) UNAME_MACHINE=alphapca56 ;; -- EV6) UNAME_MACHINE=alphaev6 ;; -- EV67) UNAME_MACHINE=alphaev67 ;; -- EV68*) UNAME_MACHINE=alphaev68 ;; -- esac -- objdump --private-headers /bin/sh | grep -q ld.so.1 -- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi -- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) -- echo sparc-unknown-linux-gnu -+ 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 ;; - 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}-unknown-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) -- echo ${UNAME_MACHINE}-unknown-linux-gnu -+ 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" -- ;; -- 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 - # sysname and nodename. - 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:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) -@@ -1056,17 +1063,17 @@ EOF - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - 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 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) -@@ -1084,23 +1091,23 @@ EOF - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - 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 i586. -+ # 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 configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp -- exit ;; -+ exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then -@@ -1125,18 +1132,18 @@ EOF - OS_REL='' - 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; } ;; - 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; } -@@ -1169,20 +1176,20 @@ EOF - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - 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 - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -@@ -1198,33 +1205,36 @@ EOF - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - 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 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - 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 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -@@ -1241,37 +1251,58 @@ EOF - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- case $UNAME_PROCESSOR in -- i386) eval $set_cc_for_build -- if $CC_FOR_BUILD -E -dM -x c /dev/null | grep __LP64__>/dev/null 2>&1 ; then -- UNAME_PROCESSOR=x86_64 -- fi ;; -- 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 - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *: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 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; -@@ -1306,23 +1337,23 @@ EOF - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - 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 ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; -@@ -1330,169 +1361,21 @@ EOF - 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 ;; - 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 - - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -diff --git a/build/autoconf/config.sub b/build/autoconf/config.sub ---- a/build/autoconf/config.sub -+++ b/build/autoconf/config.sub -@@ -1,43 +1,36 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - --timestamp='2011-01-03' -+timestamp='2014-01-01' - --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# 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 -+# 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 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# 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. -+# 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"). - - --# Please send patches to <config-patches@gnu.org>. Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: - # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -@@ -70,18 +63,17 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to <config-patches@gnu.org>." - - version="\ - GNU config.sub ($timestamp) - --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -+Copyright 1992-2014 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." - - help=" - Try \`$me --help' for more information." - - # Parse command line -@@ -118,23 +110,28 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -+ knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ -- storm-chaos* | os2-emx* | rtmk-nova* | wince-winmo*) -+ storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -+ android-linux) -+ os=-linux-android -+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; - esac - -@@ -147,41 +144,41 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray | -microblaze) -+ -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; -- -bluegene*) -- os=-cnk -+ -bluegene*) -+ os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -+ -chorusrdb) -+ os=-chorusrdb - basic_machine=$1 -- ;; -+ ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) -@@ -216,16 +213,22 @@ case $os in - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -lynx*178) -+ os=-lynxos178 -+ ;; -+ -lynx*5) -+ os=-lynxos5 -+ ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` -@@ -240,30 +243,38 @@ case $os in - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ -+ | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | arc | arceb \ -+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ -+ | avr | avr32 \ -+ | be32 | be64 \ - | bfin \ -- | c4x | clipper \ -+ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ -+ | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -+ | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | k1om \ -+ | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | mcore | mep | metag \ -+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ -@@ -271,84 +282,118 @@ case $basic_machine in - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ -+ | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ -- | nios | nios2 \ -+ | nds32 | nds32le | nds32be \ -+ | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ -- | or32 \ -+ | open8 \ -+ | or1k | or32 \ - | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -+ | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -+ | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu | strongarm \ -- | tahoe | thumb | tic4x | tic80 | tron \ -- | v850 | v850e \ -+ | spu \ -+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ -+ | ubicom32 \ -+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ -- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12) -- # Motorola 68HC11/12. -+ c54x) -+ basic_machine=tic54x-unknown -+ ;; -+ c55x) -+ basic_machine=tic55x-unknown -+ ;; -+ c6x) -+ basic_machine=tic6x-unknown -+ ;; -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - -+ strongarm | thumb | xscale) -+ basic_machine=arm-unknown -+ ;; -+ xgate) -+ basic_machine=$basic_machine-unknown -+ os=-none -+ ;; -+ xscaleeb) -+ basic_machine=armeb-unknown -+ ;; -+ -+ xscaleel) -+ basic_machine=armel-unknown -+ ;; -+ - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ -+ | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ -+ | be32-* | be64-* \ - | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | craynv-* | cydra-* \ -+ | c[123]* | c30-* | [cjt]90-* | c4x-* \ -+ | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -+ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | k1om-* \ -+ | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ -@@ -356,38 +401,44 @@ case $basic_machine in - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -+ | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ -- | nios-* | nios2-* \ -+ | nds32-* | nds32le-* | nds32be-* \ -+ | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ -+ | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ -- | romp-* | rs6000-* \ -+ | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -- | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ -+ | tahoe-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tile*-* \ - | tron-* \ -- | v850-* | v850e-* | vax-* \ -+ | ubicom32-* \ -+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -+ | vax-* \ - | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; -@@ -402,17 +453,17 @@ case $basic_machine in - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; -- abacus) -+ abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant -@@ -472,21 +523,30 @@ case $basic_machine in - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; -+ c54x-*) -+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c55x-*) -+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c6x-*) -+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -- cegcc) -+ cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) -@@ -508,17 +568,17 @@ case $basic_machine in - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16) -+ cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis -@@ -666,17 +726,16 @@ case $basic_machine in - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; --# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; -@@ -724,21 +783,25 @@ case $basic_machine in - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; -- microblaze) -+ microblaze*) - basic_machine=microblaze-xilinx - ;; -+ mingw64) -+ basic_machine=x86_64-pc -+ os=-mingw64 -+ ;; - mingw32) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent -@@ -763,20 +826,28 @@ case $basic_machine in - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; -+ msys) -+ basic_machine=i686-pc -+ os=-msys -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; -+ nacl) -+ basic_machine=le32-unknown -+ os=-nacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; -@@ -831,16 +902,22 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; -+ neo-tandem) -+ basic_machine=neo-tandem -+ ;; -+ nse-tandem) -+ basic_machine=nse-tandem -+ ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) -@@ -913,19 +990,20 @@ case $basic_machine in - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; -- ppc) basic_machine=powerpc-unknown -+ ppc | ppcbe) basic_machine=powerpc-unknown - ;; -- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc-* | ppcbe-*) -+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown -@@ -940,17 +1018,21 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; -- rdos) -+ rdos | rdos64) -+ basic_machine=x86_64-pc -+ os=-rdos -+ ;; -+ rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) -@@ -1009,16 +1091,19 @@ case $basic_machine in - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; -+ strongarm-* | thumb-*) -+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) -@@ -1065,30 +1150,18 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; -- tic54x | c54x*) -- basic_machine=tic54x-unknown -- os=-coff -- ;; -- tic55x | c55x*) -- basic_machine=tic55x-unknown -- os=-coff -- ;; -- tic6x | c6x*) -- basic_machine=tic6x-unknown -- os=-coff -- ;; - tile*) -- basic_machine=tile-unknown -+ basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; -@@ -1148,16 +1221,19 @@ case $basic_machine in - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; -+ xscale-* | xscalee[bl]-*) -+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; -@@ -1245,19 +1321,22 @@ case $basic_machine in - ;; - esac - - # Decode manufacturer-specific aliases for certain operating systems. - - if [ x"$os" != x"" ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -+ # First match some system type aliases -+ # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. -+ -auroraux) -+ os=-auroraux -+ ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 -@@ -1269,39 +1348,40 @@ case $os in - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ -- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ -- | -kopensolaris* \ -+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -+ | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -openbsd* | -solidbsd* \ -+ | -bitrig* | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ -- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -winmo*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1330,22 +1410,19 @@ case $os in - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; -- -os400*) -+ -os400*) - os=-os400 - ;; -- -wince-winmo*) -- os=-wince-winmo -- ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1382,17 +1459,17 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; -- -tpf*) -+ -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; -@@ -1418,28 +1495,24 @@ case $os in - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; -- -kaos*) -- os=-kaos -- ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; -- -android*) -- os=-android -- ;; -+ -nacl*) -+ ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1452,33 +1525,48 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating - # system, and we'll never get to this point. - - case $basic_machine in -- score-*) -+ score-*) - os=-elf - ;; -- spu-*) -+ spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; -+ c8051-*) -+ os=-elf -+ ;; -+ hexagon-*) -+ os=-elf -+ ;; -+ tic54x-*) -+ os=-coff -+ ;; -+ tic55x-*) -+ os=-coff -+ ;; -+ tic6x-*) -+ os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; -@@ -1488,32 +1576,32 @@ case $basic_machine in - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 -- # This also exists in the configure program, but was not the -- # default. -- # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -- mep-*) -+ mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; -+ or1k-*) -+ os=-elf -+ ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 -@@ -1522,17 +1610,17 @@ case $basic_machine in - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; -- *-knuth) -+ *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; -@@ -1684,19 +1772,16 @@ case $basic_machine in - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; -- *-android*|*-linuxandroid*) -- vendor=linux- -- ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; - esac - - echo $basic_machine$os - exit - -diff --git a/configure.in b/configure.in ---- a/configure.in -+++ b/configure.in -@@ -1082,17 +1082,17 @@ esac - - # Only set CPU_ARCH if we recognize the value of OS_TEST - - case "$OS_TEST" in - *86 | i86pc) - CPU_ARCH=x86 - ;; - --powerpc64 | ppc64) -+powerpc64 | ppc64 | powerpc64le | ppc64le) - CPU_ARCH=ppc64 - ;; - - powerpc | ppc | rs6000) - CPU_ARCH=ppc - ;; - - Alpha | alpha | ALPHA) -diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.guess ---- a/js/src/build/autoconf/config.guess -+++ b/js/src/build/autoconf/config.guess -@@ -1,47 +1,41 @@ - #! /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, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - --timestamp='2009-08-19' -+timestamp='2014-02-12' - - # 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 - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # 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. Please send patches (context --# diff format) to <config-patches@gnu.org> and include a 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. - # - # 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;hb=HEAD -+# -+# Please send patches with a ChangeLog entry to config-patches@gnu.org. -+ - - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ - Usage: $0 [OPTION] - - Output the configuration name of the system \`$me' is run on. - -@@ -51,18 +45,17 @@ Operation modes: - -v, --version print version number, then exit - - Report bugs and patches to <config-patches@gnu.org>." - - 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, 2006, 2007, 2008 Free Software Foundation, Inc. -+Copyright 1992-2014 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." - - help=" - Try \`$me --help' for more information." - - # Parse command line -@@ -134,22 +127,43 @@ if (test -f /.attbin/uname) >/dev/null 2 - PATH=$PATH:/.attbin ; export PATH - fi - - UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown - 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 - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". -@@ -175,17 +189,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) -- os=netbsd -+ os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in -@@ -196,16 +210,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - 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}" - 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 ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) -@@ -218,17 +236,17 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - 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 - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in -@@ -264,17 +282,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - 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 ;; -+ # 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 - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 -@@ -290,22 +311,22 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - 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:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then -@@ -328,16 +349,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - 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.*:*) - 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') | \ -@@ -386,33 +410,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # 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 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 -@@ -472,31 +496,31 @@ EOF - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - 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 ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi -- exit ;; -+ exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) -@@ -543,17 +567,17 @@ EOF - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; -- *:AIX:*:[456]) -+ *: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` -@@ -586,62 +610,62 @@ EOF - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 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" ;; -+ 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 -+ 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; @@ -2704,17 +327,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g EOF (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" ] - then - eval $set_cc_for_build -@@ -722,32 +746,32 @@ EOF - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites +@@ -727,22 +751,22 @@ EOF exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd @@ -2742,17 +355,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' -@@ -761,63 +785,68 @@ EOF - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +@@ -766,14 +790,14 @@ EOF exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` @@ -2774,11 +377,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) +@@ -785,34 +809,39 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) @@ -2827,17 +426,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g 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 -@@ -840,55 +869,91 @@ EOF - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +@@ -845,45 +874,81 @@ EOF exit ;; *:GNU:*:*) # the GNU system @@ -2930,17 +519,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g 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) -@@ -896,145 +961,87 @@ EOF - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= +@@ -901,123 +966,65 @@ EOF #endif #endif EOF @@ -2953,10 +532,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; -+ or1k:Linux:*:*) -+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} -+ exit ;; - or32:Linux:*:*) +- or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) @@ -2964,7 +540,9 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu -- exit ;; ++ or1k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; @@ -2978,6 +556,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -3098,7 +677,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g 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 - # sysname and nodename. +@@ -1025,11 +1032,11 @@ EOF echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) @@ -3114,17 +693,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) -@@ -1056,17 +1063,17 @@ EOF - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} +@@ -1061,7 +1068,7 @@ EOF fi exit ;; i*86:*:5:[678]*) @@ -3133,17 +702,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) -@@ -1084,23 +1091,23 @@ EOF - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi +@@ -1089,13 +1096,13 @@ EOF exit ;; pc:*:*:*) # Left here for compatibility: @@ -3160,17 +719,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then -@@ -1125,18 +1132,18 @@ EOF - OS_REL='' - 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; } +@@ -1130,8 +1137,8 @@ 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:*) @@ -3181,17 +730,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g 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; } -@@ -1169,20 +1176,20 @@ EOF - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else +@@ -1174,10 +1181,10 @@ EOF echo ns32k-sni-sysv fi exit ;; @@ -3206,17 +745,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 -@@ -1198,33 +1205,36 @@ EOF - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 +@@ -1203,11 +1210,11 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then @@ -3231,12 +760,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; +@@ -1220,6 +1227,9 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; @@ -3246,17 +770,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} -@@ -1241,37 +1251,58 @@ EOF - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} +@@ -1246,13 +1256,31 @@ EOF exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown @@ -3295,13 +809,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; +@@ -1266,7 +1294,10 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; @@ -3313,17 +821,7 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; -@@ -1306,23 +1337,23 @@ EOF - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) +@@ -1311,13 +1342,13 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) @@ -3339,25 +837,12 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; -@@ -1330,169 +1361,21 @@ EOF - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; +@@ -1335,158 +1366,10 @@ EOF i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; -+ x86_64:VMkernel:*:*) -+ echo ${UNAME_MACHINE}-unknown-esx -+ exit ;; - esac - +-esac +- -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - @@ -3490,7 +975,9 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd -- exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx + exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd @@ -3508,29 +995,23 @@ diff --git a/js/src/build/autoconf/config.guess b/js/src/build/autoconf/config.g - exit ;; - esac -fi -- ++esac + 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 - - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ---- a/js/src/build/autoconf/config.sub -+++ b/js/src/build/autoconf/config.sub -@@ -1,43 +1,36 @@ +Index: mozilla-release/build/autoconf/config.sub +=================================================================== +--- mozilla-release.orig/build/autoconf/config.sub ++++ mozilla-release/build/autoconf/config.sub +@@ -1,38 +1,31 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - +- -timestamp='2011-01-03' -+timestamp='2014-01-01' - +- -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. @@ -3538,6 +1019,10 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -# 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 ++# Copyright 1992-2014 Free Software Foundation, Inc. ++ ++timestamp='2014-01-01' ++ +# 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 3 of the License, or @@ -3573,17 +1058,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. - # If it is invalid, we print an error message on stderr and exit with code 1. - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: - # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -@@ -70,18 +63,17 @@ Operation modes: - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - - Report bugs and patches to <config-patches@gnu.org>." - +@@ -75,8 +68,7 @@ Report bugs and patches to <config-patch version="\ GNU config.sub ($timestamp) @@ -3593,17 +1068,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - - help=" - Try \`$me --help' for more information." - - # Parse command line -@@ -118,23 +110,28 @@ case $# in - *) echo "$me: too many arguments$help" >&2 - exit 1;; - esac - - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +@@ -123,13 +115,18 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in @@ -3625,17 +1090,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; - esac - -@@ -147,41 +144,41 @@ case $os in - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ +@@ -152,12 +149,12 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ @@ -3651,15 +1106,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ;; -sim | -cisco | -oki | -wec | -winbond) os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) +@@ -173,10 +170,10 @@ case $os in os=-chorusos basic_machine=$1 ;; @@ -3673,17 +1120,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -hiux*) os=-hiuxwe2 ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) -@@ -216,16 +213,22 @@ case $os in - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; +@@ -221,6 +218,12 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; @@ -3696,17 +1133,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -lynx*) os=-lynxos ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` -@@ -240,30 +243,38 @@ case $os in - esac - - # Decode aliases for certain CPU-COMPANY combinations. - case $basic_machine in - # Recognize the basic CPU types without company name. +@@ -245,20 +248,28 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ @@ -3738,17 +1165,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ -@@ -271,84 +282,118 @@ case $basic_machine in - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ +@@ -276,32 +287,45 @@ case $basic_machine in | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ @@ -3803,9 +1220,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) +@@ -311,6 +335,21 @@ case $basic_machine in basic_machine=mt-unknown ;; @@ -3827,14 +1242,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; +@@ -325,25 +364,31 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ @@ -3870,17 +1278,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ -@@ -356,38 +401,44 @@ case $basic_machine in - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ +@@ -361,28 +406,34 @@ case $basic_machine in | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ @@ -3923,17 +1321,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; -@@ -402,17 +453,17 @@ case $basic_machine in - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) +@@ -407,7 +458,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; @@ -3942,17 +1330,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub basic_machine=abacus-unknown ;; adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant -@@ -472,21 +523,30 @@ case $basic_machine in - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) +@@ -477,11 +528,20 @@ case $basic_machine in basic_machine=powerpc-ibm os=-cnk ;; @@ -3974,17 +1352,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub basic_machine=arm-unknown os=-cegcc ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) -@@ -508,17 +568,17 @@ case $basic_machine in - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) +@@ -513,7 +573,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; @@ -3993,17 +1361,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub basic_machine=cr16-unknown os=-elf ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis -@@ -666,17 +726,16 @@ case $basic_machine in - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; +@@ -671,7 +731,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; @@ -4011,17 +1369,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; -@@ -724,21 +783,25 @@ case $basic_machine in - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) +@@ -729,11 +788,15 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; @@ -4039,17 +1387,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-mingw32 ;; mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent -@@ -763,20 +826,28 @@ case $basic_machine in - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; +@@ -768,10 +831,18 @@ case $basic_machine in ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; @@ -4068,17 +1406,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ncr3000) basic_machine=i486-ncr os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; -@@ -831,16 +902,22 @@ case $basic_machine in - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; +@@ -836,6 +907,12 @@ case $basic_machine in np1) basic_machine=np1-gould ;; @@ -4091,17 +1419,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub nsr-tandem) basic_machine=nsr-tandem ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) -@@ -913,19 +990,20 @@ case $basic_machine in - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould +@@ -918,9 +995,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; @@ -4114,17 +1432,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown -@@ -940,17 +1018,21 @@ case $basic_machine in - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) +@@ -945,7 +1023,11 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; @@ -4137,17 +1445,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub basic_machine=i386-pc os=-rdos ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) -@@ -1009,16 +1091,19 @@ case $basic_machine in - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) +@@ -1014,6 +1096,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; @@ -4157,17 +1455,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub sun2) basic_machine=m68000-sun ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) -@@ -1065,30 +1150,18 @@ case $basic_machine in - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) +@@ -1070,20 +1155,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; @@ -4189,17 +1477,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-linux-gnu ;; tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; -@@ -1148,16 +1221,19 @@ case $basic_machine in - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; +@@ -1153,6 +1226,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; @@ -4209,17 +1487,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ymp) basic_machine=ymp-cray os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; -@@ -1245,19 +1321,22 @@ case $basic_machine in - ;; - esac - - # Decode manufacturer-specific aliases for certain operating systems. - +@@ -1250,9 +1326,12 @@ esac if [ x"$os" != x"" ] then case $os in @@ -4234,17 +1502,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 -@@ -1269,39 +1348,40 @@ case $os in - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. +@@ -1274,21 +1353,22 @@ case $os in # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ @@ -4272,7 +1530,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +@@ -1296,7 +1376,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ @@ -4281,17 +1539,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os -@@ -1330,22 +1410,19 @@ case $os in - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; +@@ -1335,12 +1415,9 @@ case $os in -opened*) os=-openedition ;; @@ -4305,17 +1553,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf -@@ -1382,17 +1459,17 @@ case $os in - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; +@@ -1387,7 +1464,7 @@ case $os in -sinix*) os=-sysv4 ;; @@ -4324,17 +1562,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-tpf ;; -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; -@@ -1418,28 +1495,24 @@ case $os in - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; +@@ -1423,18 +1500,14 @@ case $os in -aros*) os=-aros ;; @@ -4355,17 +1583,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub -none) ;; *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -@@ -1452,33 +1525,48 @@ else - - # Note that if you're going to try to match "-MANUFACTURER" here (say, - # "-sun"), then you have to tell the case statement up towards the top - # that MANUFACTURER isn't an operating system. Otherwise, code above - # will signal an error saying that MANUFACTURER isn't an operating +@@ -1457,10 +1530,10 @@ else # system, and we'll never get to this point. case $basic_machine in @@ -4378,11 +1596,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-elf ;; *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; +@@ -1472,8 +1545,23 @@ case $basic_machine in arm*-semi) os=-aout ;; @@ -4408,17 +1622,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; -@@ -1488,32 +1576,32 @@ case $basic_machine in - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 +@@ -1493,14 +1581,11 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 @@ -4434,8 +1638,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-elf ;; mips*-cisco) - os=-elf - ;; +@@ -1509,6 +1594,9 @@ case $basic_machine in mips*-*) os=-elf ;; @@ -4445,17 +1648,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub or32-*) os=-coff ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 -@@ -1522,17 +1610,17 @@ case $basic_machine in - os=-beos - ;; - *-haiku) - os=-haiku - ;; +@@ -1527,7 +1615,7 @@ case $basic_machine in *-ibm) os=-aix ;; @@ -4464,17 +1657,7 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub os=-mmixware ;; *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; -@@ -1684,19 +1772,16 @@ case $basic_machine in - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; +@@ -1689,9 +1777,6 @@ case $basic_machine in -vos*) vendor=stratus ;; @@ -4484,25 +1667,24 @@ diff --git a/js/src/build/autoconf/config.sub b/js/src/build/autoconf/config.sub esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; - esac +Index: mozilla-release/configure.in +=================================================================== +--- mozilla-release.orig/configure.in ++++ mozilla-release/configure.in +@@ -1119,7 +1119,7 @@ case "$OS_TEST" in + CPU_ARCH=x86 + ;; - echo $basic_machine$os - exit +-powerpc64 | ppc64) ++powerpc64 | ppc64 | powerpc64le | ppc64le) + CPU_ARCH=ppc64 + ;; -# HG changeset patch -# Parent e6f9fc7c1611990ed9fdafd3ff19c79fd356a1d6 -# User Ulrich Weigand <uweigand@de.ibm.com> -Bug 976648 - powerpc64le-linux support - JavaScript build/config - -diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h ---- a/js/src/assembler/wtf/Platform.h -+++ b/js/src/assembler/wtf/Platform.h -@@ -160,26 +160,32 @@ - /* WTF_CPU_PPC - PowerPC 32-bit */ - #if defined(__ppc__) \ - || defined(__PPC__) \ - || defined(__powerpc__) \ - || defined(__powerpc) \ +Index: mozilla-release/js/src/assembler/wtf/Platform.h +=================================================================== +--- mozilla-release.orig/js/src/assembler/wtf/Platform.h ++++ mozilla-release/js/src/assembler/wtf/Platform.h +@@ -165,16 +165,22 @@ || defined(__POWERPC__) \ || defined(_M_PPC) \ || defined(__PPC) @@ -4525,20 +1707,11 @@ diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h /* WTF_CPU_SH4 - SuperH SH-4 */ #if defined(__SH4__) - #define WTF_CPU_SH4 1 - #endif - - /* WTF_CPU_SPARC32 - SPARC 32-bit */ - #if defined(__sparc) && !defined(__arch64__) || defined(__sparcv8) -diff --git a/js/src/configure.in b/js/src/configure.in ---- a/js/src/configure.in -+++ b/js/src/configure.in -@@ -923,17 +923,17 @@ esac - - # Only set CPU_ARCH if we recognize the value of OS_TEST - - case "$OS_TEST" in - *86 | i86pc) +Index: mozilla-release/js/src/configure.in +=================================================================== +--- mozilla-release.orig/js/src/configure.in ++++ mozilla-release/js/src/configure.in +@@ -931,7 +931,7 @@ case "$OS_TEST" in CPU_ARCH=x86 ;; @@ -4547,20 +1720,11 @@ diff --git a/js/src/configure.in b/js/src/configure.in CPU_ARCH=ppc64 ;; - powerpc | ppc | rs6000) - CPU_ARCH=ppc - ;; - - Alpha | alpha | ALPHA) -diff --git a/js/src/jscpucfg.h b/js/src/jscpucfg.h ---- a/js/src/jscpucfg.h -+++ b/js/src/jscpucfg.h -@@ -22,17 +22,17 @@ - - # ifdef __WATCOMC__ - # define HAVE_VA_LIST_AS_ARRAY 1 - # endif - +Index: mozilla-release/js/src/jscpucfg.h +=================================================================== +--- mozilla-release.orig/js/src/jscpucfg.h ++++ mozilla-release/js/src/jscpucfg.h +@@ -27,7 +27,7 @@ # define IS_LITTLE_ENDIAN 1 # undef IS_BIG_ENDIAN @@ -4569,17 +1733,7 @@ diff --git a/js/src/jscpucfg.h b/js/src/jscpucfg.h # if __LITTLE_ENDIAN__ # define IS_LITTLE_ENDIAN 1 # undef IS_BIG_ENDIAN - # elif __BIG_ENDIAN__ - # undef IS_LITTLE_ENDIAN - # define IS_BIG_ENDIAN 1 - # endif - -@@ -84,18 +84,17 @@ - # if defined(_STACK_GROWS_UPWARD) - # define JS_STACK_GROWTH_DIRECTION (1) - # elif defined(_STACK_GROWS_DOWNWARD) - # define JS_STACK_GROWTH_DIRECTION (-1) - # endif +@@ -89,8 +89,7 @@ # endif #elif defined(__sparc) || defined(__sparc__) || \ @@ -4589,25 +1743,11 @@ diff --git a/js/src/jscpucfg.h b/js/src/jscpucfg.h defined(_MIPSEB) || defined(_BIG_ENDIAN) /* IA64 running HP-UX will have _BIG_ENDIAN defined. * IA64 running Linux will have endian.h and be handled above. - */ - # undef IS_LITTLE_ENDIAN - # define IS_BIG_ENDIAN 1 - - #else /* !defined(__sparc) && !defined(__sparc__) && ... */ -# HG changeset patch -# Parent 16cf73a02802e3b4a77ccd77794346441638e2a7 -# User Ulrich Weigand <uweigand@de.ibm.com> -Bug 976648 - powerpc64le-linux support - libffi backport - -diff --git a/js/src/ctypes/libffi/aclocal.m4 b/js/src/ctypes/libffi/aclocal.m4 ---- a/js/src/ctypes/libffi/aclocal.m4 -+++ b/js/src/ctypes/libffi/aclocal.m4 -@@ -1277,31 +1277,34 @@ ia64-*-hpux*) - LD="${LD-ld} -64" - ;; - esac - fi - fi +Index: mozilla-release/js/src/ctypes/libffi/aclocal.m4 +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/aclocal.m4 ++++ mozilla-release/js/src/ctypes/libffi/aclocal.m4 +@@ -1282,7 +1282,7 @@ ia64-*-hpux*) rm -rf conftest* ;; @@ -4616,13 +1756,7 @@ diff --git a/js/src/ctypes/libffi/aclocal.m4 b/js/src/ctypes/libffi/aclocal.m4 s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; +@@ -1296,7 +1296,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; @@ -4634,17 +1768,7 @@ diff --git a/js/src/ctypes/libffi/aclocal.m4 b/js/src/ctypes/libffi/aclocal.m4 LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; -@@ -1310,17 +1313,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; +@@ -1315,7 +1318,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; @@ -4656,20 +1780,11 @@ diff --git a/js/src/ctypes/libffi/aclocal.m4 b/js/src/ctypes/libffi/aclocal.m4 LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; -diff --git a/js/src/ctypes/libffi/configure b/js/src/ctypes/libffi/configure ---- a/js/src/ctypes/libffi/configure -+++ b/js/src/ctypes/libffi/configure -@@ -6293,17 +6293,17 @@ ia64-*-hpux*) - LD="${LD-ld} -64" - ;; - esac - fi - fi +Index: mozilla-release/js/src/ctypes/libffi/configure +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/configure ++++ mozilla-release/js/src/ctypes/libffi/configure +@@ -6298,7 +6298,7 @@ ia64-*-hpux*) rm -rf conftest* ;; @@ -4678,17 +1793,7 @@ diff --git a/js/src/ctypes/libffi/configure b/js/src/ctypes/libffi/configure s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then -@@ -6311,17 +6311,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; +@@ -6316,7 +6316,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; @@ -4700,17 +1805,7 @@ diff --git a/js/src/ctypes/libffi/configure b/js/src/ctypes/libffi/configure LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; -@@ -6330,17 +6333,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; +@@ -6335,7 +6338,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; @@ -4722,20 +1817,11 @@ diff --git a/js/src/ctypes/libffi/configure b/js/src/ctypes/libffi/configure LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; -diff --git a/js/src/ctypes/libffi/m4/libtool.m4 b/js/src/ctypes/libffi/m4/libtool.m4 ---- a/js/src/ctypes/libffi/m4/libtool.m4 -+++ b/js/src/ctypes/libffi/m4/libtool.m4 -@@ -1262,31 +1262,34 @@ ia64-*-hpux*) - LD="${LD-ld} -64" - ;; - esac - fi - fi +Index: mozilla-release/js/src/ctypes/libffi/m4/libtool.m4 +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/m4/libtool.m4 ++++ mozilla-release/js/src/ctypes/libffi/m4/libtool.m4 +@@ -1267,7 +1267,7 @@ ia64-*-hpux*) rm -rf conftest* ;; @@ -4744,13 +1830,7 @@ diff --git a/js/src/ctypes/libffi/m4/libtool.m4 b/js/src/ctypes/libffi/m4/libtoo s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; +@@ -1281,7 +1281,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; @@ -4762,17 +1842,7 @@ diff --git a/js/src/ctypes/libffi/m4/libtool.m4 b/js/src/ctypes/libffi/m4/libtoo LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; -@@ -1295,17 +1298,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; +@@ -1300,7 +1303,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux* x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; @@ -4784,15 +1854,11 @@ diff --git a/js/src/ctypes/libffi/m4/libtool.m4 b/js/src/ctypes/libffi/m4/libtoo LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; -diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/powerpc/ffi.c ---- a/js/src/ctypes/libffi/src/powerpc/ffi.c -+++ b/js/src/ctypes/libffi/src/powerpc/ffi.c -@@ -1,12 +1,14 @@ +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ffi.c +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ffi.c ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ffi.c +@@ -1,7 +1,9 @@ /* ----------------------------------------------------------------------- - ffi.c - Copyright (c) 1998 Geoffrey Keating - Copyright (C) 2007, 2008 Free Software Foundation, Inc @@ -4805,17 +1871,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p PowerPC Foreign Function Interface - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - ``Software''), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to -@@ -34,42 +36,39 @@ - - extern void ffi_closure_SYSV (void); - extern void FFI_HIDDEN ffi_closure_LINUX64 (void); - - enum { +@@ -39,32 +41,29 @@ enum { /* The assembly depends on these exact flags. */ FLAG_RETURNS_SMST = 1 << (31-31), /* Used for FFI_SYSV small structs. */ FLAG_RETURNS_NOTHING = 1 << (31-30), /* These go in cr7 */ @@ -4856,17 +1912,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* ffi_prep_args_SYSV is called by the assembly routine once stack space has been allocated for the function's arguments. - The stack layout we want looks like this: - - | Return address from ffi_call_SYSV 4bytes | higher addresses - |--------------------------------------------| - | Previous backchain pointer 4 | stack pointer here -@@ -108,100 +107,119 @@ ffi_prep_args_SYSV (extended_cif *ecif, - /* 'stacktop' points at the previous backchain pointer. */ - valp stacktop; - - /* 'gpr_base' points at the space for gpr3, and grows upwards as - we use GPR registers. */ +@@ -113,10 +112,12 @@ ffi_prep_args_SYSV (extended_cif *ecif, valp gpr_base; int intarg_count; @@ -4879,8 +1925,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* 'copy_space' grows down as we put structures in it. It should stay 16-byte aligned. */ - valp copy_space; - +@@ -125,9 +126,11 @@ ffi_prep_args_SYSV (extended_cif *ecif, /* 'next_arg' grows up as we put parameters in it. */ valp next_arg; @@ -4893,15 +1938,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p union { void **v; char **c; - signed char **sc; - unsigned char **uc; - signed short **ss; - unsigned short **us; - unsigned int **ui; - long long **ll; - float **f; - double **d; - } p_argv; +@@ -143,21 +146,22 @@ ffi_prep_args_SYSV (extended_cif *ecif, size_t struct_copy_size; unsigned gprvalue; @@ -4930,16 +1967,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p FFI_ASSERT ((bytes & 0xF) == 0); FFI_ASSERT (copy_space.c >= next_arg.c); - /* Deal with return values that are actually pass-by-reference. */ - if (flags & FLAG_RETVAL_REFERENCE) - { - *gpr_base.u++ = (unsigned long) (char *) ecif->rvalue; - intarg_count++; - } - - /* Now for the arguments. */ - p_argv.v = ecif->avalue; - for (ptr = ecif->cif->arg_types, i = ecif->cif->nargs; +@@ -174,12 +178,28 @@ ffi_prep_args_SYSV (extended_cif *ecif, i > 0; i--, ptr++, p_argv.v++) { @@ -4972,15 +2000,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p double_tmp = **p_argv.f; if (fparg_count >= NUM_FPR_ARG_REGISTERS) { - *next_arg.f = (float) double_tmp; - next_arg.u += 1; - intarg_count++; - } - else - *fpr_base.d++ = double_tmp; - fparg_count++; - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); - break; +@@ -195,8 +215,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, case FFI_TYPE_DOUBLE: /* With FFI_LINUX_SOFT_FLOAT doubles are handled like UINT64. */ @@ -4989,17 +2009,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p double_tmp = **p_argv.d; if (fparg_count >= NUM_FPR_ARG_REGISTERS) - { - if (intarg_count >= NUM_GPR_ARG_REGISTERS - && intarg_count % 2 != 0) - { - intarg_count++; -@@ -213,53 +231,16 @@ ffi_prep_args_SYSV (extended_cif *ecif, - else - *fpr_base.d++ = double_tmp; - fparg_count++; - FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); - break; +@@ -218,43 +236,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: @@ -5043,17 +2053,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p double_tmp = (*p_argv.d)[0]; if (fparg_count >= NUM_FPR_ARG_REGISTERS - 1) - { - if (intarg_count >= NUM_GPR_ARG_REGISTERS - && intarg_count % 2 != 0) - { - intarg_count++; -@@ -275,23 +256,50 @@ ffi_prep_args_SYSV (extended_cif *ecif, - { - *fpr_base.d++ = double_tmp; - double_tmp = (*p_argv.d)[1]; - *fpr_base.d++ = double_tmp; - } +@@ -280,13 +261,40 @@ ffi_prep_args_SYSV (extended_cif *ecif, fparg_count += 2; FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); @@ -5096,17 +2096,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p if (intarg_count == NUM_GPR_ARG_REGISTERS-1) intarg_count++; if (intarg_count >= NUM_GPR_ARG_REGISTERS) - { - if (intarg_count % 2 != 0) - { - intarg_count++; - next_arg.u++; -@@ -314,19 +322,16 @@ ffi_prep_args_SYSV (extended_cif *ecif, - gpr_base.u++; - } - *gpr_base.ll++ = **p_argv.ll; - } - intarg_count += 2; +@@ -319,9 +327,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, break; case FFI_TYPE_STRUCT: @@ -5116,17 +2106,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p struct_copy_size = ((*ptr)->size + 15) & ~0xF; copy_space.c -= struct_copy_size; memcpy (copy_space.c, *p_argv.c, (*ptr)->size); - - gprvalue = (unsigned long) copy_space.c; - - FFI_ASSERT (copy_space.c > next_arg.c); - FFI_ASSERT (flags & FLAG_ARG_NEEDS_COPY); -@@ -344,45 +349,91 @@ ffi_prep_args_SYSV (extended_cif *ecif, - case FFI_TYPE_SINT16: - gprvalue = **p_argv.ss; - goto putgpr; - - case FFI_TYPE_INT: +@@ -349,7 +354,6 @@ ffi_prep_args_SYSV (extended_cif *ecif, case FFI_TYPE_UINT32: case FFI_TYPE_SINT32: case FFI_TYPE_POINTER: @@ -5134,16 +2114,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p gprvalue = **p_argv.ui; - putgpr: - if (intarg_count >= NUM_GPR_ARG_REGISTERS) - *next_arg.u++ = gprvalue; - else - *gpr_base.u++ = gprvalue; - intarg_count++; - break; - } - } - +@@ -366,8 +370,16 @@ ffi_prep_args_SYSV (extended_cif *ecif, /* Check that we didn't overrun the stack... */ FFI_ASSERT (copy_space.c >= next_arg.c); FFI_ASSERT (gpr_base.u <= stacktop.u - ASM_NEEDS_REGISTERS); @@ -5160,10 +2131,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p FFI_ASSERT (flags & FLAG_4_GPR_ARGUMENTS || intarg_count <= 4); } - /* About the LINUX64 ABI. */ - enum { - NUM_GPR_ARG_REGISTERS64 = 8, - NUM_FPR_ARG_REGISTERS64 = 13 +@@ -378,6 +390,45 @@ enum { }; enum { ASM_NEEDS_REGISTERS64 = 4 }; @@ -5209,17 +2177,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* ffi_prep_args64 is called by the assembly routine once stack space has been allocated for the function's arguments. - The stack layout we want looks like this: - - | Ret addr from ffi_call_LINUX64 8bytes | higher addresses - |--------------------------------------------| - | CR save area 8bytes | -@@ -418,141 +469,216 @@ ffi_prep_args64 (extended_cif *ecif, uns - const unsigned long bytes = ecif->cif->bytes; - const unsigned long flags = ecif->cif->flags; - - typedef union { - char *c; +@@ -423,6 +474,7 @@ ffi_prep_args64 (extended_cif *ecif, uns unsigned long *ul; float *f; double *d; @@ -5227,15 +2185,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } valp; /* 'stacktop' points at the previous backchain pointer. */ - valp stacktop; - - /* 'next_arg' points at the space for gpr3, and grows upwards as - we use GPR registers, then continues at rest. */ - valp gpr_base; - valp gpr_end; - valp rest; - valp next_arg; - +@@ -438,9 +490,9 @@ ffi_prep_args64 (extended_cif *ecif, uns /* 'fpr_base' points at the space for fpr3, and grows upwards as we use FPR registers. */ valp fpr_base; @@ -5247,16 +2197,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p ffi_type **ptr; double double_tmp; union { - void **v; - char **c; - signed char **sc; - unsigned char **uc; - signed short **ss; - unsigned short **us; - signed int **si; - unsigned int **ui; - unsigned long **ul; - float **f; +@@ -457,11 +509,18 @@ ffi_prep_args64 (extended_cif *ecif, uns double **d; } p_argv; unsigned long gprvalue; @@ -5275,15 +2216,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p fpr_base.d = gpr_base.d - NUM_FPR_ARG_REGISTERS64; fparg_count = 0; next_arg.ul = gpr_base.ul; - - /* Check that everything starts aligned properly. */ - FFI_ASSERT (((unsigned long) (char *) stack & 0xF) == 0); - FFI_ASSERT (((unsigned long) stacktop.c & 0xF) == 0); - FFI_ASSERT ((bytes & 0xF) == 0); - - /* Deal with return values that are actually pass-by-reference. */ - if (flags & FLAG_RETVAL_REFERENCE) - *next_arg.ul++ = (unsigned long) (char *) ecif->rvalue; +@@ -477,30 +536,36 @@ ffi_prep_args64 (extended_cif *ecif, uns /* Now for the arguments. */ p_argv.v = ecif->avalue; @@ -5329,7 +2262,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p fparg_count++; FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); break; - +@@ -508,18 +573,20 @@ ffi_prep_args64 (extended_cif *ecif, uns #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: double_tmp = (*p_argv.d)[0]; @@ -5356,7 +2289,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p fparg_count++; FFI_ASSERT (__LDBL_MANT_DIG__ == 106); FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); - break; +@@ -527,27 +594,86 @@ ffi_prep_args64 (extended_cif *ecif, uns #endif case FFI_TYPE_STRUCT: @@ -5424,6 +2357,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p else { - char *where = next_arg.c; +- +- /* Structures with size less than eight bytes are passed +- left-padded. */ +- if ((*ptr)->size < 8) +- where += 8 - (*ptr)->size; + words = ((*ptr)->size + 7) / 8; + if (next_arg.ul >= gpr_base.ul && next_arg.ul + words > gpr_end.ul) + { @@ -5436,11 +2374,6 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p + { + char *where = next_arg.c; -- /* Structures with size less than eight bytes are passed -- left-padded. */ -- if ((*ptr)->size < 8) -- where += 8 - (*ptr)->size; -- - memcpy (where, *p_argv.c, (*ptr)->size); - next_arg.ul += words; - if (next_arg.ul == gpr_end.ul) @@ -5459,17 +2392,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } break; - case FFI_TYPE_UINT8: - gprvalue = **p_argv.uc; - goto putgpr; - case FFI_TYPE_SINT8: - gprvalue = **p_argv.sc; -@@ -586,53 +712,55 @@ ffi_prep_args64 (extended_cif *ecif, uns - FFI_ASSERT (flags & FLAG_4_GPR_ARGUMENTS - || (next_arg.ul >= gpr_base.ul - && next_arg.ul <= gpr_base.ul + 4)); - } - +@@ -591,27 +717,22 @@ ffi_prep_args64 (extended_cif *ecif, uns /* Perform machine dependent cif processing */ @@ -5503,9 +2426,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* Space for the frame pointer, callee's LR, and the asm's temp regs. */ bytes = (2 + ASM_NEEDS_REGISTERS) * sizeof (int); - /* Space for the GPR registers. */ - bytes += NUM_GPR_ARG_REGISTERS * sizeof (int); - } +@@ -621,13 +742,20 @@ ffi_prep_cif_machdep (ffi_cif *cif) else { /* 64-bit ABI. */ @@ -5526,17 +2447,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } /* Return value handling. The rules for SYSV are as follows: - - 32-bit (or less) integer values are returned in gpr3; - - Structures of size <= 4 bytes also returned in gpr3; - - 64-bit integer values and structures between 5 and 8 bytes are returned - in gpr3 and gpr4; - - Single/double FP values are returned in fpr1; -@@ -641,71 +769,93 @@ ffi_prep_cif_machdep (ffi_cif *cif) - - long doubles (if not equivalent to double) are returned in - fpr1,fpr2 for Linux and as for large structs for SysV. - For LINUX64: - - integer values in gpr3; - - Structures/Unions by reference; +@@ -646,13 +774,30 @@ ffi_prep_cif_machdep (ffi_cif *cif) - Single/double FP values in fpr1, long double in fpr1,fpr2. - soft-float float/doubles are treated as UINT32/UINT64 respectivley. - soft-float long doubles are returned in gpr3-gpr6. */ @@ -5570,7 +2481,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p flags |= FLAG_RETURNS_128BITS; /* Fall through. */ #endif - case FFI_TYPE_DOUBLE: +@@ -660,47 +805,52 @@ ffi_prep_cif_machdep (ffi_cif *cif) flags |= FLAG_RETURNS_64BITS; /* Fall through. */ case FFI_TYPE_FLOAT: @@ -5651,17 +2562,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p #endif intarg_count++; flags |= FLAG_RETVAL_REFERENCE; - /* Fall through. */ - case FFI_TYPE_VOID: - flags |= FLAG_RETURNS_NOTHING; - break; - -@@ -717,218 +867,334 @@ ffi_prep_cif_machdep (ffi_cif *cif) - if (cif->abi != FFI_LINUX64) - /* The first NUM_GPR_ARG_REGISTERS words of integer arguments, and the - first NUM_FPR_ARG_REGISTERS fp arguments, go in registers; the rest - goes on the stack. Structures and long doubles (if not equivalent - to double) are passed as a pointer to a copy of the structure. +@@ -722,39 +872,36 @@ ffi_prep_cif_machdep (ffi_cif *cif) Stuff on the stack needs to keep proper alignment. */ for (ptr = cif->arg_types, i = cif->nargs; i > 0; i--, ptr++) { @@ -5721,8 +2622,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p fparg_count++; /* If this FP arg is going on the stack, it must be 8-byte-aligned. */ - if (fparg_count > NUM_FPR_ARG_REGISTERS - && intarg_count >= NUM_GPR_ARG_REGISTERS +@@ -763,10 +910,21 @@ ffi_prep_cif_machdep (ffi_cif *cif) && intarg_count % 2 != 0) intarg_count++; break; @@ -5745,16 +2645,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* 'long long' arguments are passed as two words, but either both words must fit in registers or both go on the stack. If they go on the stack, they must - be 8-byte-aligned. - - Also, only certain register pairs can be used for - passing long long int -- specifically (r3,r4), (r5,r6), - (r7,r8), (r9,r10). - */ - if (intarg_count == NUM_GPR_ARG_REGISTERS-1 - || intarg_count % 2 != 0) - intarg_count++; - intarg_count += 2; +@@ -783,9 +941,6 @@ ffi_prep_cif_machdep (ffi_cif *cif) break; case FFI_TYPE_STRUCT: @@ -5764,7 +2655,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* We must allocate space for a copy of these to enforce pass-by-value. Pad the space up to a multiple of 16 bytes (the maximum alignment required for anything under - the SYSV ABI). */ +@@ -793,50 +948,100 @@ ffi_prep_cif_machdep (ffi_cif *cif) struct_copy_size += ((*ptr)->size + 15) & ~0xF; /* Fall through (allocate space for the pointer). */ @@ -5875,7 +2766,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p if (intarg_count > 4) flags |= FLAG_4_GPR_ARGUMENTS; if (struct_copy_size != 0) - flags |= FLAG_ARG_NEEDS_COPY; +@@ -844,25 +1049,36 @@ ffi_prep_cif_machdep (ffi_cif *cif) if (cif->abi != FFI_LINUX64) { @@ -5912,14 +2803,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } /* The stack space allocated needs to be a multiple of 16 bytes. */ - bytes = (bytes + 15) & ~0xF; - - /* Add in the space for the copied structures. */ - bytes += struct_copy_size; - - cif->flags = flags; - cif->bytes = bytes; - +@@ -877,6 +1093,26 @@ ffi_prep_cif_machdep (ffi_cif *cif) return FFI_OK; } @@ -5946,9 +2830,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p extern void ffi_call_SYSV(extended_cif *, unsigned, unsigned, unsigned *, void (*fn)(void)); extern void FFI_HIDDEN ffi_call_LINUX64(extended_cif *, unsigned long, - unsigned long, unsigned long *, - void (*fn)(void)); - +@@ -886,28 +1122,39 @@ extern void FFI_HIDDEN ffi_call_LINUX64( void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) { @@ -5998,12 +2880,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p case FFI_LINUX_SOFT_FLOAT: ffi_call_SYSV (&ecif, -cif->bytes, cif->flags, ecif.rvalue, fn); break; - #else - case FFI_LINUX64: - ffi_call_LINUX64 (&ecif, -(long) cif->bytes, cif->flags, ecif.rvalue, fn); - break; - #endif - default: +@@ -920,10 +1167,29 @@ ffi_call(ffi_cif *cif, void (*fn)(void), FFI_ASSERT (0); break; } @@ -6034,17 +2911,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p #define MIN_CACHE_LINE_SIZE 8 static void - flush_icache (char *wraddr, char *xaddr, int size) - { - int i; - for (i = 0; i < size; i += MIN_CACHE_LINE_SIZE) - __asm__ volatile ("icbi 0,%0;" "dcbf 0,%1;" -@@ -942,26 +1208,48 @@ flush_icache (char *wraddr, char *xaddr, - ffi_status - ffi_prep_closure_loc (ffi_closure *closure, - ffi_cif *cif, - void (*fun) (ffi_cif *, void *, void **, void *), - void *user_data, +@@ -947,16 +1213,38 @@ ffi_prep_closure_loc (ffi_closure *closu void *codeloc) { #ifdef POWERPC64 @@ -6085,17 +2952,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p tramp = (unsigned int *) &closure->tramp[0]; tramp[0] = 0x7c0802a6; /* mflr r0 */ - tramp[1] = 0x4800000d; /* bl 10 <trampoline_initial+0x10> */ - tramp[4] = 0x7d6802a6; /* mflr r11 */ - tramp[5] = 0x7c0803a6; /* mtlr r0 */ - tramp[6] = 0x800b0000; /* lwz r0,0(r11) */ - tramp[7] = 0x816b0004; /* lwz r11,4(r11) */ -@@ -1006,110 +1294,215 @@ ffi_closure_helper_SYSV (ffi_closure *cl - /* rvalue is the pointer to space for return value in closure assembly */ - /* pgr is the pointer to where r3-r10 are stored in ffi_closure_SYSV */ - /* pfr is the pointer to where f1-f8 are stored in ffi_closure_SYSV */ - /* pst is the pointer to outgoing parameter stack in original caller */ - +@@ -1011,32 +1299,38 @@ ffi_closure_helper_SYSV (ffi_closure *cl void ** avalue; ffi_type ** arg_types; long i, avn; @@ -6108,12 +2965,12 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p + long nf = 0; /* number of floating registers already used */ +#endif + long ng = 0; /* number of general registers already used */ - -- cif = closure->cif; ++ + ffi_cif *cif = closure->cif; + unsigned size = cif->rtype->size; + unsigned short rtypenum = cif->rtype->type; -+ + +- cif = closure->cif; avalue = alloca (cif->nargs * sizeof (void *)); - size = cif->rtype->size; @@ -6152,10 +3009,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p rvalue = (void *) *pgr; ng++; pgr++; - } - - i = 0; - avn = cif->nargs; +@@ -1047,12 +1341,112 @@ ffi_closure_helper_SYSV (ffi_closure *cl arg_types = cif->arg_types; /* Grab the addresses of the arguments from the stack frame. */ @@ -6272,13 +3126,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* there are 8 gpr registers used to pass values */ if (ng < 8) { - avalue[i] = (char *) pgr + 3; - ng++; - pgr++; - } - else - { - avalue[i] = (char *) pst + 3; +@@ -1066,9 +1460,11 @@ ffi_closure_helper_SYSV (ffi_closure *cl pst++; } break; @@ -6290,13 +3138,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* there are 8 gpr registers used to pass values */ if (ng < 8) { - avalue[i] = (char *) pgr + 2; - ng++; - pgr++; - } - else - { - avalue[i] = (char *) pst + 2; +@@ -1082,11 +1478,11 @@ ffi_closure_helper_SYSV (ffi_closure *cl pst++; } break; @@ -6309,15 +3151,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* there are 8 gpr registers used to pass values */ if (ng < 8) { - avalue[i] = pgr; - ng++; - pgr++; - } - else - { - avalue[i] = pst; - pst++; - } +@@ -1102,9 +1498,6 @@ ffi_closure_helper_SYSV (ffi_closure *cl break; case FFI_TYPE_STRUCT: @@ -6327,17 +3161,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* Structs are passed by reference. The address will appear in a gpr if it is one of the first 8 arguments. */ if (ng < 8) - { - avalue[i] = (void *) *pgr; - ng++; - pgr++; - } -@@ -1117,17 +1510,16 @@ ffi_closure_helper_SYSV (ffi_closure *cl - { - avalue[i] = (void *) *pst; - pst++; - } - break; +@@ -1122,7 +1515,6 @@ ffi_closure_helper_SYSV (ffi_closure *cl case FFI_TYPE_SINT64: case FFI_TYPE_UINT64: @@ -6345,17 +3169,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p /* passing long long ints are complex, they must * be passed in suitable register pairs such as * (r3,r4) or (r5,r6) or (r6,r7), or (r7,r8) or (r9,r10) - * and if the entire pair aren't available then the outgoing - * parameter stack is used for both but an alignment of 8 - * must will be kept. So we must either look in pgr - * or pst to find the correct address for this type - * of parameter. -@@ -1149,277 +1541,239 @@ ffi_closure_helper_SYSV (ffi_closure *cl - if (((long) pst) & 4) - pst++; - avalue[i] = pst; - pst += 2; - ng = 8; +@@ -1154,99 +1546,8 @@ ffi_closure_helper_SYSV (ffi_closure *cl } break; @@ -6456,16 +3270,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } i++; - } - - - (closure->fun) (cif, rvalue, avalue, closure->user_data); - - /* Tell ffi_closure_SYSV how to perform return type promotions. - Because the FFI_SYSV ABI returns the structures <= 8 bytes in r3/r4 - we have to tell ffi_closure_SYSV how to treat them. We combine the base - type FFI_SYSV_TYPE_SMALL_STRUCT - 1 with the size of the struct. - So a one byte struct gets the return type 16. Return type 1 to 15 are +@@ -1263,39 +1564,9 @@ ffi_closure_helper_SYSV (ffi_closure *cl already used and we never have a struct with size zero. That is the reason for the subtraction of 1. See the comment in ffitarget.h about ordering. */ @@ -6507,16 +3312,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p } int FFI_HIDDEN ffi_closure_helper_LINUX64 (ffi_closure *, void *, - unsigned long *, ffi_dblfl *); - - int FFI_HIDDEN - ffi_closure_helper_LINUX64 (ffi_closure *closure, void *rvalue, - unsigned long *pst, ffi_dblfl *pfr) - { - /* rvalue is the pointer to space for return value in closure assembly */ - /* pst is the pointer to parameter save area - (r3-r10 are stored into its first 8 slots by ffi_closure_LINUX64) */ - /* pfr is the pointer to where f1-f13 are stored in ffi_closure_LINUX64 */ +@@ -1312,16 +1583,20 @@ ffi_closure_helper_LINUX64 (ffi_closure void **avalue; ffi_type **arg_types; @@ -6541,7 +3337,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p { rvalue = (void *) *pst; pst++; - } +@@ -1329,30 +1604,39 @@ ffi_closure_helper_LINUX64 (ffi_closure i = 0; avn = cif->nargs; @@ -6581,9 +3377,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p case FFI_TYPE_SINT64: case FFI_TYPE_UINT64: - case FFI_TYPE_POINTER: - avalue[i] = pst; - pst++; +@@ -1362,12 +1646,82 @@ ffi_closure_helper_LINUX64 (ffi_closure break; case FFI_TYPE_STRUCT: @@ -6671,11 +3465,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p pst += (arg_types[i]->size + 7) / 8; break; - case FFI_TYPE_FLOAT: - /* unfortunately float values are stored as doubles - * in the ffi_closure_LINUX64 code (since we don't check - * the type in that routine). - */ +@@ -1379,7 +1733,7 @@ ffi_closure_helper_LINUX64 (ffi_closure /* there are 13 64bit floating point registers */ @@ -6684,15 +3474,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p { double temp = pfr->d; pfr->f = (float) temp; - avalue[i] = pfr; - pfr++; - } - else - avalue[i] = pst; - pst++; - break; - - case FFI_TYPE_DOUBLE: +@@ -1395,7 +1749,7 @@ ffi_closure_helper_LINUX64 (ffi_closure /* On the outgoing stack all values are aligned to 8 */ /* there are 13 64bit floating point registers */ @@ -6701,11 +3483,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p { avalue[i] = pfr; pfr++; - } - else - avalue[i] = pst; - pst++; - break; +@@ -1407,14 +1761,14 @@ ffi_closure_helper_LINUX64 (ffi_closure #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE: @@ -6722,17 +3500,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p { /* Passed partly in f13 and partly on the stack. Move it all to the stack. */ - *pst = *(unsigned long *) pfr; - pfr++; - } - avalue[i] = pst; - } -@@ -1433,10 +1787,19 @@ ffi_closure_helper_LINUX64 (ffi_closure - - i++; - } - - +@@ -1438,5 +1792,14 @@ ffi_closure_helper_LINUX64 (ffi_closure (closure->fun) (cif, rvalue, avalue, closure->user_data); /* Tell ffi_closure_LINUX64 how to perform return type promotions. */ @@ -6747,10 +3515,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffi.c b/js/src/ctypes/libffi/src/p + } return cif->rtype->type; } -diff --git a/js/src/ctypes/libffi/src/powerpc/ffitarget.h b/js/src/ctypes/libffi/src/powerpc/ffitarget.h ---- a/js/src/ctypes/libffi/src/powerpc/ffitarget.h -+++ b/js/src/ctypes/libffi/src/powerpc/ffitarget.h -@@ -1,11 +1,13 @@ +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ffitarget.h +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ffitarget.h ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ffitarget.h +@@ -1,6 +1,8 @@ /* -----------------------------------------------------------------*-C-*- - ffitarget.h - Copyright (c) 1996-2003 Red Hat, Inc. - Copyright (C) 2007, 2008 Free Software Foundation, Inc @@ -6761,17 +3530,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffitarget.h b/js/src/ctypes/libffi Target configuration macros for PowerPC. Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - ``Software''), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to -@@ -23,16 +25,20 @@ - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - - ----------------------------------------------------------------------- */ - +@@ -28,6 +30,10 @@ #ifndef LIBFFI_TARGET_H #define LIBFFI_TARGET_H @@ -6782,51 +3541,31 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffitarget.h b/js/src/ctypes/libffi /* ---- System specific configurations ----------------------------------- */ #if defined (POWERPC) && defined (__powerpc64__) /* linux64 */ - #ifndef POWERPC64 - #define POWERPC64 - #endif - #elif defined (POWERPC_DARWIN) && defined (__ppc64__) /* Darwin */ - #ifndef POWERPC64 -@@ -52,28 +58,24 @@ typedef enum ffi_abi { - FFI_FIRST_ABI = 0, - - #ifdef POWERPC - FFI_SYSV, - FFI_GCC_SYSV, +@@ -57,18 +63,14 @@ typedef enum ffi_abi { FFI_LINUX64, FFI_LINUX, FFI_LINUX_SOFT_FLOAT, -# ifdef POWERPC64 +# if defined(POWERPC64) FFI_DEFAULT_ABI = FFI_LINUX64, -+# elif defined(__NO_FPRS__) -+ FFI_DEFAULT_ABI = FFI_LINUX_SOFT_FLOAT, -+# elif (__LDBL_MANT_DIG__ == 106) -+ FFI_DEFAULT_ABI = FFI_LINUX, - # else +-# else -# if (!defined(__NO_FPRS__) && (__LDBL_MANT_DIG__ == 106)) - FFI_DEFAULT_ABI = FFI_LINUX, -# else -# ifdef __NO_FPRS__ -- FFI_DEFAULT_ABI = FFI_LINUX_SOFT_FLOAT, ++# elif defined(__NO_FPRS__) + FFI_DEFAULT_ABI = FFI_LINUX_SOFT_FLOAT, -# else ++# elif (__LDBL_MANT_DIG__ == 106) ++ FFI_DEFAULT_ABI = FFI_LINUX, ++# else FFI_DEFAULT_ABI = FFI_GCC_SYSV, -# endif -# endif # endif #endif - #ifdef POWERPC_AIX - FFI_AIX, - FFI_DARWIN, - FFI_DEFAULT_ABI = FFI_AIX, - #endif -@@ -96,32 +98,45 @@ typedef enum ffi_abi { - FFI_LAST_ABI - } ffi_abi; - #endif - - /* ---- Definitions for closures ----------------------------------------- */ +@@ -101,6 +103,10 @@ typedef enum ffi_abi { #define FFI_CLOSURES 1 #define FFI_NATIVE_RAW_API 0 @@ -6837,12 +3576,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffitarget.h b/js/src/ctypes/libffi /* For additional types like the below, take care about the order in ppc_closures.S. They must follow after the FFI_TYPE_LAST. */ - - /* Needed for soft-float long-double-128 support. */ - #define FFI_TYPE_UINT128 (FFI_TYPE_LAST + 1) - - /* Needed for FFI_SYSV small structure returns. - We use two flag bits, (FLAG_SYSV_SMST_R3, FLAG_SYSV_SMST_R4) which are +@@ -113,10 +119,19 @@ typedef enum ffi_abi { defined in ffi.c, to determine the exact return type and its size. */ #define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_TYPE_LAST + 2) @@ -6866,20 +3600,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ffitarget.h b/js/src/ctypes/libffi #endif #ifndef LIBFFI_ASM - #if defined(POWERPC_DARWIN) || defined(POWERPC_AIX) - struct ffi_aix_trampoline_struct { - void * code_pointer; /* Pointer to ffi_closure_ASM */ - void * toc; /* TOC */ - void * static_chain; /* Pointer to closure */ -diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/src/powerpc/linux64.S ---- a/js/src/ctypes/libffi/src/powerpc/linux64.S -+++ b/js/src/ctypes/libffi/src/powerpc/linux64.S -@@ -25,56 +25,86 @@ - DEALINGS IN THE SOFTWARE. - ----------------------------------------------------------------------- */ - - #define LIBFFI_ASM - #include <fficonfig.h> +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64.S +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/linux64.S ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64.S +@@ -30,16 +30,33 @@ #include <ffi.h> #ifdef __powerpc64__ @@ -6915,14 +3640,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/s .LFB1: mflr %r0 std %r28, -32(%r1) - std %r29, -24(%r1) - std %r30, -16(%r1) - std %r31, -8(%r1) - std %r0, 16(%r1) - - mr %r28, %r1 /* our AP. */ - .LCFI0: - stdux %r1, %r1, %r4 +@@ -54,22 +71,35 @@ ffi_call_LINUX64: mr %r31, %r5 /* flags, */ mr %r30, %r6 /* rvalue, */ mr %r29, %r7 /* function address. */ @@ -6961,17 +3679,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/s /* Load all those argument registers. */ ld %r3, -32-(8*8)(%r28) ld %r4, -32-(7*8)(%r28) - ld %r5, -32-(6*8)(%r28) - ld %r6, -32-(5*8)(%r28) - bf- 5, 1f - ld %r7, -32-(4*8)(%r28) - ld %r8, -32-(3*8)(%r28) -@@ -99,50 +129,93 @@ 1: - lfd %f13, -32-(9*8)(%r28) - 2: - - /* Make the call. */ - bctrl +@@ -104,12 +134,17 @@ ffi_call_LINUX64: /* This must follow the call immediately, the unwinder uses this to find out if r2 has been saved or not. */ @@ -6991,7 +3699,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/s std %r3, 0(%r30) /* Fall through... */ - .Ldone_return_value: +@@ -117,7 +152,7 @@ ffi_call_LINUX64: /* Restore the registers we used and return. */ mr %r1, %r28 ld %r0, 16(%r28) @@ -7000,16 +3708,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/s mtlr %r0 ld %r29, -24(%r1) ld %r30, -16(%r1) - ld %r31, -8(%r1) - blr - - .Lfp_return_value: - bf 28, .Lfloat_return_value - stfd %f1, 0(%r30) - mtcrf 0x02, %r31 /* cr6 */ - bf 27, .Ldone_return_value - stfd %f2, 8(%r30) - b .Ldone_return_value +@@ -134,10 +169,48 @@ ffi_call_LINUX64: .Lfloat_return_value: stfs %f1, 0(%r30) b .Ldone_return_value @@ -7058,38 +3757,22 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64.S b/js/src/ctypes/libffi/s .section .eh_frame,EH_FRAME_FLAGS,@progbits .Lframe1: - .4byte .LECIE1-.LSCIE1 # Length of Common Information Entry - .LSCIE1: - .4byte 0x0 # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "zR\0" # CIE Augmentation -@@ -175,13 +248,13 @@ 2: - .byte 0x9e # DW_CFA_offset, column 0x1e - .uleb128 0x2 - .byte 0x9d # DW_CFA_offset, column 0x1d - .uleb128 0x3 - .byte 0x9c # DW_CFA_offset, column 0x1c +@@ -180,8 +253,8 @@ ffi_call_LINUX64: .uleb128 0x4 .align 3 .LEFDE1: -+ +-#endif + +-#if defined __ELF__ && defined __linux__ +# if (defined __ELF__ && defined __linux__) || _CALL_ELF == 2 -+ .section .note.GNU-stack,"",@progbits + .section .note.GNU-stack,"",@progbits +# endif #endif -- --#if defined __ELF__ && defined __linux__ -- .section .note.GNU-stack,"",@progbits --#endif -diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/libffi/src/powerpc/linux64_closure.S ---- a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S -+++ b/js/src/ctypes/libffi/src/powerpc/linux64_closure.S -@@ -27,179 +27,330 @@ - #define LIBFFI_ASM - #include <fficonfig.h> - #include <ffi.h> - - .file "linux64_closure.S" +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64_closure.S +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/linux64_closure.S ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/linux64_closure.S +@@ -32,66 +32,125 @@ #ifdef __powerpc64__ FFI_HIDDEN (ffi_closure_LINUX64) @@ -7144,7 +3827,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ - std %r6, 72(%r1) +# if _CALL_ELF == 2 + ld %r12, FFI_TRAMPOLINE_SIZE(%r11) # closure->cif - mflr %r0 ++ mflr %r0 + lwz %r12, 28(%r12) # cif->flags + mtcrf 0x40, %r12 + addi %r12, %r1, PARMSAVE @@ -7164,15 +3847,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ + std %r8, 40(%r12) + std %r9, 48(%r12) + std %r10, 56(%r12) - -- std %r7, 80(%r1) -- std %r8, 88(%r1) -- std %r9, 96(%r1) -- std %r10, 104(%r1) ++ + # load up the pointer to the parm save area + mr %r5, %r12 +# else -+ mflr %r0 + mflr %r0 + # Save general regs into parm save area + # This is the parameter save area set up by our caller. + std %r3, PARMSAVE+0(%r1) @@ -7183,41 +3862,22 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ + std %r8, PARMSAVE+40(%r1) + std %r9, PARMSAVE+48(%r1) + std %r10, PARMSAVE+56(%r1) -+ + +- std %r7, 80(%r1) +- std %r8, 88(%r1) +- std %r9, 96(%r1) +- std %r10, 104(%r1) std %r0, 16(%r1) - # mandatory 48 bytes special reg save area + 64 bytes parm save area - # + 16 bytes retval area + 13*8 bytes fpr save area + round to 16 - stdu %r1, -240(%r1) +-.LCFI0: + # load up the pointer to the parm save area + addi %r5, %r1, PARMSAVE +# endif -+ -+ # next save fpr 1 to fpr 13 -+ stfd %f1, -104+(0*8)(%r1) -+ stfd %f2, -104+(1*8)(%r1) -+ stfd %f3, -104+(2*8)(%r1) -+ stfd %f4, -104+(3*8)(%r1) -+ stfd %f5, -104+(4*8)(%r1) -+ stfd %f6, -104+(5*8)(%r1) -+ stfd %f7, -104+(6*8)(%r1) -+ stfd %f8, -104+(7*8)(%r1) -+ stfd %f9, -104+(8*8)(%r1) -+ stfd %f10, -104+(9*8)(%r1) -+ stfd %f11, -104+(10*8)(%r1) -+ stfd %f12, -104+(11*8)(%r1) -+ stfd %f13, -104+(12*8)(%r1) -+ -+ # load up the pointer to the saved fpr registers */ -+ addi %r6, %r1, -104 -+ -+ # load up the pointer to the result storage -+ addi %r4, %r1, -STACKFRAME+RETVAL -+ -+ stdu %r1, -STACKFRAME(%r1) - .LCFI0: -- # next save fpr 1 to fpr 13 + # next save fpr 1 to fpr 13 - stfd %f1, 128+(0*8)(%r1) - stfd %f2, 128+(1*8)(%r1) - stfd %f3, 128+(2*8)(%r1) @@ -7231,20 +3891,40 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ - stfd %f11, 128+(10*8)(%r1) - stfd %f12, 128+(11*8)(%r1) - stfd %f13, 128+(12*8)(%r1) -- ++ stfd %f1, -104+(0*8)(%r1) ++ stfd %f2, -104+(1*8)(%r1) ++ stfd %f3, -104+(2*8)(%r1) ++ stfd %f4, -104+(3*8)(%r1) ++ stfd %f5, -104+(4*8)(%r1) ++ stfd %f6, -104+(5*8)(%r1) ++ stfd %f7, -104+(6*8)(%r1) ++ stfd %f8, -104+(7*8)(%r1) ++ stfd %f9, -104+(8*8)(%r1) ++ stfd %f10, -104+(9*8)(%r1) ++ stfd %f11, -104+(10*8)(%r1) ++ stfd %f12, -104+(11*8)(%r1) ++ stfd %f13, -104+(12*8)(%r1) + - # set up registers for the routine that actually does the work - # get the context pointer from the trampoline +- # get the context pointer from the trampoline - mr %r3, %r11 -- ++ # load up the pointer to the saved fpr registers */ ++ addi %r6, %r1, -104 + - # now load up the pointer to the result storage - addi %r4, %r1, 112 -- ++ # load up the pointer to the result storage ++ addi %r4, %r1, -STACKFRAME+RETVAL + - # now load up the pointer to the parameter save area - # in the previous frame - addi %r5, %r1, 240 + 48 -- ++ stdu %r1, -STACKFRAME(%r1) ++.LCFI0: + - # now load up the pointer to the saved fpr registers */ - addi %r6, %r1, 128 ++ # get the context pointer from the trampoline + mr %r3, %r11 # make the call @@ -7256,8 +3936,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ .Lret: # now r3 contains the return type - # so use it to look up in a table - # so we know how to deal with each type +@@ -100,10 +159,12 @@ ffi_closure_LINUX64: # look up the proper starting point in table # by using return type as offset @@ -7271,12 +3950,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ add %r3, %r3, %r4 # add contents of table to table address mtctr %r3 bctr # jump to it - - # Each of the ret_typeX code fragments has to be exactly 16 bytes long - # (4 instructions). For cache effectiveness we align to a 16 byte boundary - # first. - .align 4 - +@@ -116,85 +177,175 @@ ffi_closure_LINUX64: .Lret_type0: # case FFI_TYPE_VOID mtlr %r0 @@ -7408,8 +4082,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ mtlr %r0 - addi %r1, %r1, 240 + addi %r1, %r1, STACKFRAME - blr --# esac ++ blr +# case FFI_V2_TYPE_FLOAT_HOMOG + lfs %f1, RETVAL+0(%r1) + lfs %f2, RETVAL+4(%r1) @@ -7462,7 +4135,8 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ + sldi %r5, %r5, 3 + addi %r1, %r1, STACKFRAME + srd %r3, %r3, %r5 -+ blr + blr +-# esac +# endif + .LFE1: @@ -7480,17 +4154,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ .section .eh_frame,EH_FRAME_FLAGS,@progbits .Lframe1: - .4byte .LECIE1-.LSCIE1 # Length of Common Information Entry - .LSCIE1: - .4byte 0x0 # CIE Identifier Tag - .byte 0x1 # CIE Version - .ascii "zR\0" # CIE Augmentation -@@ -218,19 +369,19 @@ ffi_closure_LINUX64: - .LASFDE1: - .4byte .LASFDE1-.Lframe1 # FDE CIE offset - .8byte .LFB1-. # FDE initial location - .8byte .LFE1-.LFB1 # FDE address range - .uleb128 0x0 # Augmentation size +@@ -223,14 +374,14 @@ ffi_closure_LINUX64: .byte 0x2 # DW_CFA_advance_loc1 .byte .LCFI0-.LFB1 .byte 0xe # DW_CFA_def_cfa_offset @@ -7501,24 +4165,18 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/linux64_closure.S b/js/src/ctypes/ .sleb128 -2 .align 3 .LEFDE1: -+ +-#endif + +-#if defined __ELF__ && defined __linux__ +# if defined __ELF__ && defined __linux__ -+ .section .note.GNU-stack,"",@progbits + .section .note.GNU-stack,"",@progbits +# endif #endif -- --#if defined __ELF__ && defined __linux__ -- .section .note.GNU-stack,"",@progbits --#endif -diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libffi/src/powerpc/ppc_closure.S ---- a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S -+++ b/js/src/ctypes/libffi/src/powerpc/ppc_closure.S -@@ -117,53 +117,88 @@ ENTRY(ffi_closure_SYSV) - # case FFI_TYPE_INT - lwz %r3,112+0(%r1) - mtlr %r0 - .Lfinish: - addi %r1,%r1,144 +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/ppc_closure.S +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/ppc_closure.S ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/ppc_closure.S +@@ -122,43 +122,78 @@ ENTRY(ffi_closure_SYSV) blr # case FFI_TYPE_FLOAT @@ -7597,17 +4255,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf mtlr %r0 addi %r1,%r1,144 blr - - # case FFI_TYPE_UINT32 - lwz %r3,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 -@@ -198,76 +233,99 @@ ENTRY(ffi_closure_SYSV) - mtlr %r0 - addi %r1,%r1,144 - blr - - # case FFI_TYPE_UINT128 +@@ -203,7 +238,7 @@ ENTRY(ffi_closure_SYSV) lwz %r3,112+0(%r1) lwz %r4,112+4(%r1) lwz %r5,112+8(%r1) @@ -7616,16 +4264,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf # The return types below are only used when the ABI type is FFI_SYSV. # case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct. - lbz %r3,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 - blr - - # case FFI_SYSV_TYPE_SMALL_STRUCT + 2. Two byte struct. - lhz %r3,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 - blr +@@ -220,9 +255,15 @@ ENTRY(ffi_closure_SYSV) # case FFI_SYSV_TYPE_SMALL_STRUCT + 3. Three byte struct. lwz %r3,112+0(%r1) @@ -7641,10 +4280,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf # case FFI_SYSV_TYPE_SMALL_STRUCT + 4. Four byte struct. lwz %r3,112+0(%r1) - mtlr %r0 - addi %r1,%r1,144 - blr - +@@ -233,20 +274,35 @@ ENTRY(ffi_closure_SYSV) # case FFI_SYSV_TYPE_SMALL_STRUCT + 5. Five byte struct. lwz %r3,112+0(%r1) lwz %r4,112+4(%r1) @@ -7680,7 +4316,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf # case FFI_SYSV_TYPE_SMALL_STRUCT + 8. Eight byte struct. lwz %r3,112+0(%r1) - lwz %r4,112+4(%r1) +@@ -254,6 +310,7 @@ ENTRY(ffi_closure_SYSV) mtlr %r0 b .Lfinish @@ -7688,9 +4324,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf .Lstruct567: subfic %r6,%r5,32 srw %r4,%r4,%r5 - slw %r6,%r3,%r6 - srw %r3,%r3,%r5 - or %r4,%r6,%r4 +@@ -263,6 +320,7 @@ ENTRY(ffi_closure_SYSV) mtlr %r0 addi %r1,%r1,144 blr @@ -7698,20 +4332,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/ppc_closure.S b/js/src/ctypes/libf .Luint128: lwz %r6,112+12(%r1) - mtlr %r0 - addi %r1,%r1,144 - blr - - END(ffi_closure_SYSV) -diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/powerpc/sysv.S ---- a/js/src/ctypes/libffi/src/powerpc/sysv.S -+++ b/js/src/ctypes/libffi/src/powerpc/sysv.S -@@ -78,37 +78,41 @@ ENTRY(ffi_call_SYSV) - nop - lwz %r7,-16-(4*4)(%r28) - lwz %r8,-16-(3*4)(%r28) - lwz %r9,-16-(2*4)(%r28) - lwz %r10,-16-(1*4)(%r28) +Index: mozilla-release/js/src/ctypes/libffi/src/powerpc/sysv.S +=================================================================== +--- mozilla-release.orig/js/src/ctypes/libffi/src/powerpc/sysv.S ++++ mozilla-release/js/src/ctypes/libffi/src/powerpc/sysv.S +@@ -83,6 +83,7 @@ ENTRY(ffi_call_SYSV) nop 1: @@ -7719,11 +4344,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/ /* Load all the FP registers. */ bf- 6,2f lfd %f1,-16-(8*4)-(8*8)(%r28) - lfd %f2,-16-(8*4)-(7*8)(%r28) - lfd %f3,-16-(8*4)-(6*8)(%r28) - lfd %f4,-16-(8*4)-(5*8)(%r28) - nop - lfd %f5,-16-(8*4)-(4*8)(%r28) +@@ -94,6 +95,7 @@ ENTRY(ffi_call_SYSV) lfd %f6,-16-(8*4)-(3*8)(%r28) lfd %f7,-16-(8*4)-(2*8)(%r28) lfd %f8,-16-(8*4)-(1*8)(%r28) @@ -7731,9 +4352,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/ 2: /* Make the call. */ - bctrl - - /* Now, deal with the return value. */ +@@ -103,7 +105,9 @@ ENTRY(ffi_call_SYSV) mtcrf 0x01,%r31 /* cr7 */ bt- 31,L(small_struct_return_value) bt- 30,L(done_return_value) @@ -7743,17 +4362,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/ stw %r3,0(%r30) bf+ 28,L(done_return_value) stw %r4,4(%r30) - mtcrf 0x02,%r31 /* cr6 */ - bf 27,L(done_return_value) - stw %r5,8(%r30) - stw %r6,12(%r30) - /* Fall through... */ -@@ -119,41 +123,38 @@ L(done_return_value): - lwz %r31, -4(%r28) - mtlr %r9 - lwz %r30, -8(%r28) - lwz %r29,-12(%r28) - lwz %r28,-16(%r28) +@@ -124,6 +128,7 @@ L(done_return_value): lwz %r1,0(%r1) blr @@ -7761,10 +4370,7 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/ L(fp_return_value): bf 28,L(float_return_value) stfd %f1,0(%r30) - mtcrf 0x02,%r31 /* cr6 */ - bf 27,L(done_return_value) - stfd %f2,8(%r30) - b L(done_return_value) +@@ -134,21 +139,17 @@ L(fp_return_value): L(float_return_value): stfs %f1,0(%r30) b L(done_return_value) @@ -7795,25 +4401,11 @@ diff --git a/js/src/ctypes/libffi/src/powerpc/sysv.S b/js/src/ctypes/libffi/src/ .LFE1: END(ffi_call_SYSV) - - .section ".eh_frame",EH_FRAME_FLAGS,@progbits - .Lframe1: - .4byte .LECIE1-.LSCIE1 /* Length of Common Information Entry */ - .LSCIE1: -# HG changeset patch -# Parent 147a75fe8f8e4a43b66f9716659e1209d7f5a950 -# User Ulrich Weigand <uweigand@de.ibm.com> -Bug 976648 - powerpc64le-linux support - mfbt endian config - -diff --git a/mfbt/Endian.h b/mfbt/Endian.h ---- a/mfbt/Endian.h -+++ b/mfbt/Endian.h -@@ -86,17 +86,17 @@ - # error "CPU type is unknown" - # endif - #elif defined(_WIN32) - # if defined(_M_IX86) - # define MOZ_LITTLE_ENDIAN 1 +Index: mozilla-release/mfbt/Endian.h +=================================================================== +--- mozilla-release.orig/mfbt/Endian.h ++++ mozilla-release/mfbt/Endian.h +@@ -91,7 +91,7 @@ # else # error "CPU type is unknown" # endif @@ -7822,17 +4414,7 @@ diff --git a/mfbt/Endian.h b/mfbt/Endian.h # if __LITTLE_ENDIAN__ # define MOZ_LITTLE_ENDIAN 1 # elif __BIG_ENDIAN__ - # define MOZ_BIG_ENDIAN 1 - # endif - #elif defined(__GNUC__) && \ - defined(__BYTE_ORDER__) && \ - defined(__ORDER_LITTLE_ENDIAN__) && \ -@@ -114,18 +114,17 @@ - # endif - /* - * We can't include useful headers like <endian.h> or <sys/isa_defs.h> - * here because they're not present on all platforms. Instead we have - * this big conditional that ideally will catch all the interesting +@@ -119,8 +119,7 @@ * cases. */ #elif defined(__sparc) || defined(__sparc__) || \ @@ -7840,27 +4422,13 @@ diff --git a/mfbt/Endian.h b/mfbt/Endian.h - defined(__ppc__) || defined(__hppa) || \ + defined(_POWER) || defined(__hppa) || \ defined(_MIPSEB) || defined(__ARMEB__) || \ - defined(__s390__) || \ + defined(__s390__) || defined(__AARCH64EB__) || \ (defined(__sh__) && defined(__LITTLE_ENDIAN__)) || \ - (defined(__ia64) && defined(__BIG_ENDIAN__)) - # define MOZ_BIG_ENDIAN 1 - #elif defined(__i386) || defined(__i386__) || \ - defined(__x86_64) || defined(__x86_64__) || \ - defined(_MIPSEL) || defined(__ARMEL__) || \ -# HG changeset patch -# Parent acbe154db4c912f3ac853c0671cd3d5e52b1e716 -# User Ulrich Weigand <uweigand@de.ibm.com> -Bug 976648 - powerpc64le-linux support - WebRTC endian config - -diff --git a/media/webrtc/trunk/webrtc/typedefs.h b/media/webrtc/trunk/webrtc/typedefs.h ---- a/media/webrtc/trunk/webrtc/typedefs.h -+++ b/media/webrtc/trunk/webrtc/typedefs.h -@@ -47,23 +47,33 @@ - //#define WEBRTC_ARCH_ARM_FAMILY - //#define WEBRTC_ARCH_ARMEL - #define WEBRTC_ARCH_32_BITS - #define WEBRTC_ARCH_LITTLE_ENDIAN - #define WEBRTC_LITTLE_ENDIAN +Index: mozilla-release/media/webrtc/trunk/webrtc/typedefs.h +=================================================================== +--- mozilla-release.orig/media/webrtc/trunk/webrtc/typedefs.h ++++ mozilla-release/media/webrtc/trunk/webrtc/typedefs.h +@@ -52,13 +52,23 @@ #elif defined(__powerpc64__) #define WEBRTC_ARCH_PPC64 1 #define WEBRTC_ARCH_64_BITS 1 @@ -7884,21 +4452,11 @@ diff --git a/media/webrtc/trunk/webrtc/typedefs.h b/media/webrtc/trunk/webrtc/ty #elif defined(__sparc64__) #define WEBRTC_ARCH_SPARC 1 #define WEBRTC_ARCH_64_BITS 1 - #define WEBRTC_ARCH_BIG_ENDIAN - #define WEBRTC_BIG_ENDIAN - #elif defined(__sparc__) - #define WEBRTC_ARCH_SPARC 1 - #define WEBRTC_ARCH_32_BITS 1 -# HG changeset patch -# Parent 571f8d1f1501d31bd7c0d0affdc7cdc8b21203a0 -# User Ulrich Weigand <uweigand@de.ibm.com> -Bug 976648 - powerpc64le-linux support - xptcall port - -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/moz.build =================================================================== ---- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/moz.build -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build -@@ -224,12 +224,12 @@ if CONFIG['OS_TEST'] == 'powerpc': +--- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/moz.build ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/moz.build +@@ -206,12 +206,12 @@ if CONFIG['OS_TEST'] == 'powerpc': 'xptcstubs_ppc_linux.cpp', ] @@ -7914,15 +4472,167 @@ Index: mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build 'xptcstubs_ppc64_linux.cpp', ] -diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S -rename from xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s -rename to xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S ---- a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s -+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S -@@ -17,12 +17,38 @@ - .set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 - .set f30,30; .set f31,31 - +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s +=================================================================== +--- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s ++++ /dev/null +@@ -1,132 +0,0 @@ +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +- +-.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 +-.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 +-.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +-.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 +-.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 +-.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 +-.set r30,30; .set r31,31 +-.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 +-.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 +-.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 +-.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 +-.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 +-.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 +-.set f30,30; .set f31,31 +- +- +-# +-# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, +-# uint32_t paramCount, nsXPTCVariant* params) +-# +- +- .section ".toc","aw" +- .section ".text" +- .align 2 +- .globl NS_InvokeByIndex +- .section ".opd","aw" +- .align 3 +-NS_InvokeByIndex: +- .quad .NS_InvokeByIndex,.TOC.@tocbase +- .previous +- .type NS_InvokeByIndex,@function +-.NS_InvokeByIndex: +- mflr 0 +- std 0,16(r1) +- +- std r29,-24(r1) +- std r30,-16(r1) +- std r31,-8(r1) +- +- mr r29,r3 # Save 'that' in r29 +- mr r30,r4 # Save 'methodIndex' in r30 +- mr r31,r1 # Save old frame +- +- # Allocate stack frame with space for params. Since at least the +- # first 7 parameters (not including 'that') will be in registers, +- # we don't actually need stack space for those. We must ensure +- # that the stack remains 16-byte aligned. +- # +- # | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV | +- # | |(params)........| regs | regs | regs | +- # (r1)...........(+112)....(+128) +- # (-23*8).(-16*8).(-3*8)..(r31) +- +- # +stack frame, -unused stack params, +regs storage, +1 for alignment +- addi r7,r5,((112/8)-7+7+13+3+1) +- rldicr r7,r7,3,59 # multiply by 8 and mask with ~15 +- neg r7,r7 +- stdux r1,r1,r7 +- +- +- # Call invoke_copy_to_stack(uint64_t* gpregs, double* fpregs, +- # uint32_t paramCount, nsXPTCVariant* s, +- # uint64_t* d)) +- +- # r5, r6 are passed through intact (paramCount, params) +- # r7 (d) has to be r1+112 -- where parameters are passed on the stack. +- # r3, r4 are above that, easier to address from r31 than from r1 +- +- subi r3,r31,(23*8) # r3 --> GPRS +- subi r4,r31,(16*8) # r4 --> FPRS +- addi r7,r1,112 # r7 --> params +- bl invoke_copy_to_stack +- nop +- +- # Set up to invoke function +- +- ld r9,0(r29) # vtable (r29 is 'that') +- mr r3,r29 # self is first arg, obviously +- +- sldi r30,r30,3 # Find function descriptor +- add r9,r9,r30 +- ld r9,0(r9) +- +- ld r0,0(r9) # Actual address from fd. +- std r2,40(r1) # Save r2 (TOC pointer) +- +- mtctr 0 +- ld r11,16(r9) # Environment pointer from fd. +- ld r2,8(r9) # TOC pointer from fd. +- +- # Load FP and GP registers as required +- ld r4, -(23*8)(r31) +- ld r5, -(22*8)(r31) +- ld r6, -(21*8)(r31) +- ld r7, -(20*8)(r31) +- ld r8, -(19*8)(r31) +- ld r9, -(18*8)(r31) +- ld r10, -(17*8)(r31) +- +- lfd f1, -(16*8)(r31) +- lfd f2, -(15*8)(r31) +- lfd f3, -(14*8)(r31) +- lfd f4, -(13*8)(r31) +- lfd f5, -(12*8)(r31) +- lfd f6, -(11*8)(r31) +- lfd f7, -(10*8)(r31) +- lfd f8, -(9*8)(r31) +- lfd f9, -(8*8)(r31) +- lfd f10, -(7*8)(r31) +- lfd f11, -(6*8)(r31) +- lfd f12, -(5*8)(r31) +- lfd f13, -(4*8)(r31) +- +- bctrl # Do it +- +- ld r2,40(r1) # Load our own TOC pointer +- ld r1,0(r1) # Revert stack frame +- ld 0,16(r1) # Reload lr +- ld 29,-24(r1) # Restore NVGPRS +- ld 30,-16(r1) +- ld 31,-8(r1) +- mtlr 0 +- blr +- +- .size NS_InvokeByIndex,.-.NS_InvokeByIndex +- +- # Magic indicating no need for an executable stack +- .section .note.GNU-stack, "", @progbits ; .previous +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S +=================================================================== +--- /dev/null ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S +@@ -0,0 +1,167 @@ ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ +# The ABI defines a fixed stack frame area of 4 doublewords (ELFv2) +# or 6 doublewords (ELFv1); the last of these doublewords is used +# as TOC pointer save area. The fixed area is followed by a parameter @@ -7939,12 +4649,12 @@ rename to xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S +#define STACK_TOC 40 +#define STACK_PARAMS 112 +#endif - - # - # NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, - # uint32_t paramCount, nsXPTCVariant* params) - # - ++ ++# ++# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, ++# uint32_t paramCount, nsXPTCVariant* params) ++# ++ +#if _CALL_ELF == 2 + .section ".text" + .type NS_InvokeByIndex,@function @@ -7955,100 +4665,126 @@ rename to xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.S + addi 2,2,(.TOC.-0b)@l + .localentry NS_InvokeByIndex,.-NS_InvokeByIndex +#else - .section ".toc","aw" - .section ".text" - .align 2 -@@ -34,6 +60,7 @@ NS_InvokeByIndex: - .previous - .type NS_InvokeByIndex,@function - .NS_InvokeByIndex: ++ .section ".toc","aw" ++ .section ".text" ++ .align 2 ++ .globl NS_InvokeByIndex ++ .section ".opd","aw" ++ .align 3 ++NS_InvokeByIndex: ++ .quad .NS_InvokeByIndex,.TOC.@tocbase ++ .previous ++ .type NS_InvokeByIndex,@function ++.NS_InvokeByIndex: +#endif - mflr 0 - std 0,16(r1) - -@@ -50,13 +77,12 @@ NS_InvokeByIndex: - # we don't actually need stack space for those. We must ensure - # that the stack remains 16-byte aligned. - # -- # | ..128-byte stack frame.. | | 7 GP | 13 FP | 3 NV | -- # | |(params)........| regs | regs | regs | -- # (r1)...........(+112)....(+128) -- # (-23*8).(-16*8).(-3*8)..(r31) ++ mflr 0 ++ std 0,16(r1) ++ ++ std r29,-24(r1) ++ std r30,-16(r1) ++ std r31,-8(r1) ++ ++ mr r29,r3 # Save 'that' in r29 ++ mr r30,r4 # Save 'methodIndex' in r30 ++ mr r31,r1 # Save old frame ++ ++ # Allocate stack frame with space for params. Since at least the ++ # first 7 parameters (not including 'that') will be in registers, ++ # we don't actually need stack space for those. We must ensure ++ # that the stack remains 16-byte aligned. ++ # + # | (fixed area + | | 7 GP | 13 FP | 3 NV | + # | param. save) |(params)........| regs | regs | regs | + # (r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(r31) - - # +stack frame, -unused stack params, +regs storage, +1 for alignment -- addi r7,r5,((112/8)-7+7+13+3+1) ++ ++ # +stack frame, -unused stack params, +regs storage, +1 for alignment + addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1) - rldicr r7,r7,3,59 # multiply by 8 and mask with ~15 - neg r7,r7 - stdux r1,r1,r7 -@@ -67,12 +93,13 @@ NS_InvokeByIndex: - # uint64_t* d)) - - # r5, r6 are passed through intact (paramCount, params) -- # r7 (d) has to be r1+112 -- where parameters are passed on the stack. ++ rldicr r7,r7,3,59 # multiply by 8 and mask with ~15 ++ neg r7,r7 ++ stdux r1,r1,r7 ++ ++ ++ # Call invoke_copy_to_stack(uint64_t* gpregs, double* fpregs, ++ # uint32_t paramCount, nsXPTCVariant* s, ++ # uint64_t* d)) ++ ++ # r5, r6 are passed through intact (paramCount, params) + # r7 (d) has to be r1+STACK_PARAMS + # -- where parameters are passed on the stack. - # r3, r4 are above that, easier to address from r31 than from r1 - - subi r3,r31,(23*8) # r3 --> GPRS - subi r4,r31,(16*8) # r4 --> FPRS -- addi r7,r1,112 # r7 --> params ++ # r3, r4 are above that, easier to address from r31 than from r1 ++ ++ subi r3,r31,(23*8) # r3 --> GPRS ++ subi r4,r31,(16*8) # r4 --> FPRS + addi r7,r1,STACK_PARAMS # r7 --> params - bl invoke_copy_to_stack - nop - -@@ -83,14 +110,18 @@ NS_InvokeByIndex: - - sldi r30,r30,3 # Find function descriptor - add r9,r9,r30 -- ld r9,0(r9) ++ bl invoke_copy_to_stack ++ nop ++ ++ # Set up to invoke function ++ ++ ld r9,0(r29) # vtable (r29 is 'that') ++ mr r3,r29 # self is first arg, obviously ++ ++ sldi r30,r30,3 # Find function descriptor ++ add r9,r9,r30 + ld r12,0(r9) - -- ld r0,0(r9) # Actual address from fd. -- std r2,40(r1) # Save r2 (TOC pointer) ++ + std r2,STACK_TOC(r1) # Save r2 (TOC pointer) - ++ +#if _CALL_ELF == 2 + mtctr r12 +#else + ld r0,0(r12) # Actual address from fd. - mtctr 0 -- ld r11,16(r9) # Environment pointer from fd. -- ld r2,8(r9) # TOC pointer from fd. ++ mtctr 0 + ld r11,16(r12) # Environment pointer from fd. + ld r2,8(r12) # TOC pointer from fd. +#endif - - # Load FP and GP registers as required - ld r4, -(23*8)(r31) -@@ -117,7 +148,7 @@ NS_InvokeByIndex: - - bctrl # Do it - -- ld r2,40(r1) # Load our own TOC pointer ++ ++ # Load FP and GP registers as required ++ ld r4, -(23*8)(r31) ++ ld r5, -(22*8)(r31) ++ ld r6, -(21*8)(r31) ++ ld r7, -(20*8)(r31) ++ ld r8, -(19*8)(r31) ++ ld r9, -(18*8)(r31) ++ ld r10, -(17*8)(r31) ++ ++ lfd f1, -(16*8)(r31) ++ lfd f2, -(15*8)(r31) ++ lfd f3, -(14*8)(r31) ++ lfd f4, -(13*8)(r31) ++ lfd f5, -(12*8)(r31) ++ lfd f6, -(11*8)(r31) ++ lfd f7, -(10*8)(r31) ++ lfd f8, -(9*8)(r31) ++ lfd f9, -(8*8)(r31) ++ lfd f10, -(7*8)(r31) ++ lfd f11, -(6*8)(r31) ++ lfd f12, -(5*8)(r31) ++ lfd f13, -(4*8)(r31) ++ ++ bctrl # Do it ++ + ld r2,STACK_TOC(r1) # Load our own TOC pointer - ld r1,0(r1) # Revert stack frame - ld 0,16(r1) # Reload lr - ld 29,-24(r1) # Restore NVGPRS -@@ -126,7 +157,11 @@ NS_InvokeByIndex: - mtlr 0 - blr - ++ ld r1,0(r1) # Revert stack frame ++ ld 0,16(r1) # Reload lr ++ ld 29,-24(r1) # Restore NVGPRS ++ ld 30,-16(r1) ++ ld 31,-8(r1) ++ mtlr 0 ++ blr ++ +#if _CALL_ELF == 2 + .size NS_InvokeByIndex,.-NS_InvokeByIndex +#else - .size NS_InvokeByIndex,.-.NS_InvokeByIndex ++ .size NS_InvokeByIndex,.-.NS_InvokeByIndex +#endif - - # Magic indicating no need for an executable stack - .section .note.GNU-stack, "", @progbits ; .previous -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp ++ ++ # Magic indicating no need for an executable stack ++ .section .note.GNU-stack, "", @progbits ; .previous +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp =================================================================== ---- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp +--- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp @@ -74,7 +74,9 @@ invoke_copy_to_stack(uint64_t* gpregs, fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles } else { @@ -8059,15 +4795,116 @@ Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp *p = s->val.f; } } -diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S -rename from xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -rename to xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S ---- a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s -+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S -@@ -17,6 +17,27 @@ - .set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 - .set f30,30; .set f31,31 - +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s +=================================================================== +--- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s ++++ /dev/null +@@ -1,81 +0,0 @@ +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +- +-.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4 +-.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 +-.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 +-.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 +-.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 +-.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 +-.set r30,30; .set r31,31 +-.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 +-.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 +-.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 +-.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 +-.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 +-.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 +-.set f30,30; .set f31,31 +- +- .section ".text" +- .align 2 +- .globl SharedStub +- .section ".opd","aw" +- .align 3 +- +-SharedStub: +- .quad .SharedStub,.TOC.@tocbase +- .previous +- .type SharedStub,@function +- +-.SharedStub: +- mflr r0 +- +- std r4, -56(r1) # Save all GPRS +- std r5, -48(r1) +- std r6, -40(r1) +- std r7, -32(r1) +- std r8, -24(r1) +- std r9, -16(r1) +- std r10, -8(r1) +- +- stfd f13, -64(r1) # ... and FPRS +- stfd f12, -72(r1) +- stfd f11, -80(r1) +- stfd f10, -88(r1) +- stfd f9, -96(r1) +- stfd f8, -104(r1) +- stfd f7, -112(r1) +- stfd f6, -120(r1) +- stfd f5, -128(r1) +- stfd f4, -136(r1) +- stfd f3, -144(r1) +- stfd f2, -152(r1) +- stfd f1, -160(r1) +- +- subi r6,r1,56 # r6 --> gprData +- subi r7,r1,160 # r7 --> fprData +- addi r5,r1,112 # r5 --> extra stack args +- +- std r0, 16(r1) +- +- stdu r1,-288(r1) +- # r3 has the 'self' pointer +- # already +- +- mr r4,r11 # r4 is methodIndex selector, +- # passed via r11 in the +- # nsNSStubBase::StubXX() call +- +- bl PrepareAndDispatch +- nop +- +- ld 1,0(r1) # restore stack +- ld r0,16(r1) # restore LR +- mtlr r0 +- blr +- +- .size SharedStub,.-.SharedStub +- +- # Magic indicating no need for an executable stack +- .section .note.GNU-stack, "", @progbits ; .previous +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S +=================================================================== +--- /dev/null ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S +@@ -0,0 +1,107 @@ ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4 ++.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9 ++.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14 ++.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19 ++.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24 ++.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29 ++.set r30,30; .set r31,31 ++.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4 ++.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9 ++.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14 ++.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19 ++.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24 ++.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29 ++.set f30,30; .set f31,31 ++ +#if _CALL_ELF == 2 +#define STACK_PARAMS 96 +#else @@ -8089,42 +4926,77 @@ rename to xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.S + addi 2,2,(.TOC.-0b)@l + .localentry SharedStub,.-SharedStub +#else - .section ".text" - .align 2 - .globl SharedStub -@@ -29,6 +50,7 @@ SharedStub: - .type SharedStub,@function - - .SharedStub: ++ .section ".text" ++ .align 2 ++ .globl SharedStub ++ .section ".opd","aw" ++ .align 3 ++ ++SharedStub: ++ .quad .SharedStub,.TOC.@tocbase ++ .previous ++ .type SharedStub,@function ++ ++.SharedStub: +#endif - mflr r0 - - std r4, -56(r1) # Save all GPRS -@@ -55,7 +77,7 @@ SharedStub: - - subi r6,r1,56 # r6 --> gprData - subi r7,r1,160 # r7 --> fprData -- addi r5,r1,112 # r5 --> extra stack args ++ mflr r0 ++ ++ std r4, -56(r1) # Save all GPRS ++ std r5, -48(r1) ++ std r6, -40(r1) ++ std r7, -32(r1) ++ std r8, -24(r1) ++ std r9, -16(r1) ++ std r10, -8(r1) ++ ++ stfd f13, -64(r1) # ... and FPRS ++ stfd f12, -72(r1) ++ stfd f11, -80(r1) ++ stfd f10, -88(r1) ++ stfd f9, -96(r1) ++ stfd f8, -104(r1) ++ stfd f7, -112(r1) ++ stfd f6, -120(r1) ++ stfd f5, -128(r1) ++ stfd f4, -136(r1) ++ stfd f3, -144(r1) ++ stfd f2, -152(r1) ++ stfd f1, -160(r1) ++ ++ subi r6,r1,56 # r6 --> gprData ++ subi r7,r1,160 # r7 --> fprData + addi r5,r1,STACK_PARAMS # r5 --> extra stack args - - std r0, 16(r1) - -@@ -75,7 +97,11 @@ SharedStub: - mtlr r0 - blr - ++ ++ std r0, 16(r1) ++ ++ stdu r1,-288(r1) ++ # r3 has the 'self' pointer ++ # already ++ ++ mr r4,r11 # r4 is methodIndex selector, ++ # passed via r11 in the ++ # nsNSStubBase::StubXX() call ++ ++ bl PrepareAndDispatch ++ nop ++ ++ ld 1,0(r1) # restore stack ++ ld r0,16(r1) # restore LR ++ mtlr r0 ++ blr ++ +#if _CALL_ELF == 2 + .size SharedStub,.-SharedStub +#else - .size SharedStub,.-.SharedStub ++ .size SharedStub,.-.SharedStub +#endif - - # Magic indicating no need for an executable stack - .section .note.GNU-stack, "", @progbits ; .previous -Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp ++ ++ # Magic indicating no need for an executable stack ++ .section .note.GNU-stack, "", @progbits ; .previous +Index: mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp =================================================================== ---- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp -+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp +--- mozilla-release.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp ++++ mozilla-release/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp @@ -83,7 +83,9 @@ PrepareAndDispatch(nsXPTCStubBase* self, dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles else { |