Accepting request 209470 from openSUSE:Factory:PowerLE
- gmp-support-powerpc64le-linux.patch: Add ppc64le ABIv2 support - gmp-ppc64le-mod.patch: Fix ppc64le issues OBS-URL: https://build.opensuse.org/request/show/209470 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gmp?expand=0&rev=48
This commit is contained in:
parent
a2c21503c2
commit
dc29fb7129
35
gmp-ppc64le-mod.patch
Normal file
35
gmp-ppc64le-mod.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
changeset: 15878:221a3c6d87fd
|
||||||
|
user: Torbjorn Granlund <tege@gmplib.org>
|
||||||
|
date: Mon Jul 22 15:07:17 2013 +0200
|
||||||
|
summary: Handle little-endian mode.
|
||||||
|
|
||||||
|
diff -r 89a5c76228fd -r 221a3c6d87fd mpn/powerpc64/mode64/mod_1_1.asm
|
||||||
|
--- a/mpn/powerpc64/mode64/mod_1_1.asm Mon Jul 22 00:39:44 2013 +0200
|
||||||
|
+++ b/mpn/powerpc64/mode64/mod_1_1.asm Mon Jul 22 15:07:17 2013 +0200
|
||||||
|
@@ -69,7 +69,10 @@
|
||||||
|
adde r9, r9, r10
|
||||||
|
bdnz L(top)
|
||||||
|
|
||||||
|
-L(end): lwz r0, 12(r6)
|
||||||
|
+L(end):
|
||||||
|
+ifdef(`HAVE_LIMB_LITTLE_ENDIAN',
|
||||||
|
+` lwz r0, 8(r6)',
|
||||||
|
+` lwz r0, 12(r6)')
|
||||||
|
ld r3, 0(r6)
|
||||||
|
cmpdi cr7, r0, 0
|
||||||
|
beq- cr7, L(4)
|
||||||
|
diff -r 89a5c76228fd -r 221a3c6d87fd mpn/powerpc64/mode64/mod_1_4.asm
|
||||||
|
--- a/mpn/powerpc64/mode64/mod_1_4.asm Mon Jul 22 00:39:44 2013 +0200
|
||||||
|
+++ b/mpn/powerpc64/mode64/mod_1_4.asm Mon Jul 22 15:07:17 2013 +0200
|
||||||
|
@@ -144,7 +144,10 @@
|
||||||
|
adde r9, r7, r4
|
||||||
|
bdnz L(top)
|
||||||
|
|
||||||
|
-L(end): lwz r3, 12(cps)
|
||||||
|
+L(end):
|
||||||
|
+ifdef(`HAVE_LIMB_LITTLE_ENDIAN',
|
||||||
|
+` lwz r3, 8(cps)',
|
||||||
|
+` lwz r3, 12(cps)')
|
||||||
|
mulld r10, r9, r26
|
||||||
|
mulhdu r9, r9, r26
|
||||||
|
addc r11, r0, r10
|
675
gmp-support-powerpc64le-linux.patch
Normal file
675
gmp-support-powerpc64le-linux.patch
Normal file
@ -0,0 +1,675 @@
|
|||||||
|
From: "Ulrich Weigand" <uweigand@de.ibm.com>
|
||||||
|
To: gmp-devel@gmplib.org
|
||||||
|
Subject: [PATCH] Support powerpc64le-linux platform
|
||||||
|
Date: Tue, 3 Dec 2013 19:28:00 +0100 (CET)
|
||||||
|
|
||||||
|
Hello,
|
||||||
|
|
||||||
|
this patch updates GMP to support the little-endian PowerPC64
|
||||||
|
platform (powerpc64le-linux). This requires two changes:
|
||||||
|
|
||||||
|
- Update configfsf.guess/sub to current upstream versions.
|
||||||
|
|
||||||
|
- Change mpn/powerpc64/elf.m4 to generate appropriate assembler
|
||||||
|
code for the new ELFv2 ABI. The relevant change here is that
|
||||||
|
we no longer require function descriptors; instead, functions
|
||||||
|
that use the TOC register need to provide a pair of global
|
||||||
|
and local entry points. For more details, see the GCC patch
|
||||||
|
messages here:
|
||||||
|
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01144.html
|
||||||
|
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01141.html
|
||||||
|
|
||||||
|
Tested using "make check" on powerpc64le-linux; in addition,
|
||||||
|
we've been using this patch for a while when building GMP
|
||||||
|
to use with the native GCC on the platform.
|
||||||
|
|
||||||
|
Also, built and tested with no regressions on powerpc64-linux.
|
||||||
|
|
||||||
|
Would this be OK for GMP mainline? (I haven't submitted a
|
||||||
|
GMP patch before; if there's anything else I should be doing
|
||||||
|
to facilitate this process, please let me know!)
|
||||||
|
|
||||||
|
Bye,
|
||||||
|
Ulrich
|
||||||
|
|
||||||
|
|
||||||
|
ChangeLog:
|
||||||
|
|
||||||
|
2013-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||||||
|
|
||||||
|
* configure.ac: Check for ELFv2 ABI on PowerPC.
|
||||||
|
* mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2
|
||||||
|
and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences.
|
||||||
|
|
||||||
|
* configfsf.guess: Update to 2013-11-29 version.
|
||||||
|
* configfsf.sub: Update to 2013-10-01 version.
|
||||||
|
|
||||||
|
diff -ru gmp-5.1.3~/configfsf.guess gmp-5.1.3/configfsf.guess
|
||||||
|
--- gmp-5.1.3~/configfsf.guess 2013-09-30 20:18:28.000000000 +1000
|
||||||
|
+++ gmp-5.1.3/configfsf.guess 2013-12-04 13:00:06.237423240 +1100
|
||||||
|
@@ -1,14 +1,12 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# Attempt to guess a canonical system name.
|
||||||
|
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
|
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||||
|
-# 2011, 2012 Free Software Foundation, Inc.
|
||||||
|
+# Copyright 1992-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
-timestamp='2012-09-25'
|
||||||
|
+timestamp='2013-11-29'
|
||||||
|
|
||||||
|
# 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
|
||||||
|
@@ -22,19 +20,17 @@
|
||||||
|
# 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,.*/,,'`
|
||||||
|
|
||||||
|
@@ -54,9 +50,7 @@
|
||||||
|
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, 2009, 2010, 2011, 2012
|
||||||
|
-Free Software Foundation, Inc.
|
||||||
|
+Copyright 1992-2013 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."
|
||||||
|
@@ -138,6 +132,27 @@
|
||||||
|
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'`
|
||||||
|
+ ;;
|
||||||
|
+esac
|
||||||
|
+
|
||||||
|
# Note: order is significant - the case branches are not exclusive.
|
||||||
|
|
||||||
|
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
|
@@ -859,21 +874,21 @@
|
||||||
|
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-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
aarch64_be:Linux:*:*)
|
||||||
|
UNAME_MACHINE=aarch64_be
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||||
|
@@ -886,59 +901,54 @@
|
||||||
|
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}
|
||||||
|
+ 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
|
||||||
|
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ARM_PCS_VFP
|
||||||
|
then
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
|
||||||
|
else
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
|
||||||
|
+ 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 ${UNAME_MACHINE}-axis-linux-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
crisv32:Linux:*:*)
|
||||||
|
- echo ${UNAME_MACHINE}-axis-linux-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
frv:Linux:*:*)
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
hexagon:Linux:*:*)
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
i*86:Linux:*:*)
|
||||||
|
- LIBC=gnu
|
||||||
|
- eval $set_cc_for_build
|
||||||
|
- sed 's/^ //' << EOF >$dummy.c
|
||||||
|
- #ifdef __dietlibc__
|
||||||
|
- LIBC=dietlibc
|
||||||
|
- #endif
|
||||||
|
-EOF
|
||||||
|
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
|
||||||
|
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||||
|
+ 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
|
||||||
|
@@ -957,54 +967,63 @@
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
|
||||||
|
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||||
|
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
|
||||||
|
;;
|
||||||
|
+ or1k:Linux:*:*)
|
||||||
|
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||||
|
+ exit ;;
|
||||||
|
or32:Linux:*:*)
|
||||||
|
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
+ 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-gnu
|
||||||
|
+ 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 ;;
|
||||||
|
ppc64:Linux:*:*)
|
||||||
|
- echo powerpc64-unknown-linux-gnu
|
||||||
|
+ echo powerpc64-unknown-linux-${LIBC}
|
||||||
|
exit ;;
|
||||||
|
ppc:Linux:*:*)
|
||||||
|
- echo powerpc-unknown-linux-gnu
|
||||||
|
+ 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-gnu
|
||||||
|
+ 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 ${UNAME_MACHINE}-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:DYNIX/ptx:4*:*)
|
||||||
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||||
|
@@ -1237,19 +1256,31 @@
|
||||||
|
exit ;;
|
||||||
|
*:Darwin:*:*)
|
||||||
|
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||||
|
- case $UNAME_PROCESSOR in
|
||||||
|
- i386)
|
||||||
|
- eval $set_cc_for_build
|
||||||
|
- 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
|
||||||
|
- UNAME_PROCESSOR="x86_64"
|
||||||
|
- fi
|
||||||
|
- 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]*:*)
|
||||||
|
diff -ru gmp-5.1.3~/configfsf.sub gmp-5.1.3/configfsf.sub
|
||||||
|
--- gmp-5.1.3~/configfsf.sub 2013-09-30 20:18:28.000000000 +1000
|
||||||
|
+++ gmp-5.1.3/configfsf.sub 2013-12-04 13:00:58.458374107 +1100
|
||||||
|
@@ -1,24 +1,18 @@
|
||||||
|
#! /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, 2010,
|
||||||
|
-# 2011, 2012 Free Software Foundation, Inc.
|
||||||
|
-
|
||||||
|
-timestamp='2012-12-06'
|
||||||
|
-
|
||||||
|
-# 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
|
||||||
|
+# Copyright 1992-2013 Free Software Foundation, Inc.
|
||||||
|
+
|
||||||
|
+timestamp='2013-10-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
|
||||||
|
# (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, see <http://www.gnu.org/licenses/>.
|
||||||
|
@@ -26,11 +20,12 @@
|
||||||
|
# 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.
|
||||||
|
@@ -73,9 +68,7 @@
|
||||||
|
version="\
|
||||||
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
|
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||||
|
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||||
|
-Free Software Foundation, Inc.
|
||||||
|
+Copyright 1992-2013 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."
|
||||||
|
@@ -259,12 +252,12 @@
|
||||||
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||||
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||||
|
| am33_2.0 \
|
||||||
|
- | arc \
|
||||||
|
+ | 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 \
|
||||||
|
@@ -272,6 +265,7 @@
|
||||||
|
| hexagon \
|
||||||
|
| i370 | i860 | i960 | ia64 \
|
||||||
|
| ip2k | iq2000 \
|
||||||
|
+ | k1om \
|
||||||
|
| le32 | le64 \
|
||||||
|
| lm32 \
|
||||||
|
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||||
|
@@ -293,16 +287,17 @@
|
||||||
|
| mipsisa64r2 | mipsisa64r2el \
|
||||||
|
| mipsisa64sb1 | mipsisa64sb1el \
|
||||||
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
|
+ | mipsr5900 | mipsr5900el \
|
||||||
|
| mipstx39 | mipstx39el \
|
||||||
|
| mn10200 | mn10300 \
|
||||||
|
| moxie \
|
||||||
|
| mt \
|
||||||
|
| msp430 \
|
||||||
|
| nds32 | nds32le | nds32be \
|
||||||
|
- | nios | nios2 \
|
||||||
|
+ | nios | nios2 | nios2eb | nios2el \
|
||||||
|
| ns16k | ns32k \
|
||||||
|
| open8 \
|
||||||
|
- | or32 \
|
||||||
|
+ | or1k | or32 \
|
||||||
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
|
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||||
|
| pyramid \
|
||||||
|
@@ -330,7 +325,7 @@
|
||||||
|
c6x)
|
||||||
|
basic_machine=tic6x-unknown
|
||||||
|
;;
|
||||||
|
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
||||||
|
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
|
||||||
|
basic_machine=$basic_machine-unknown
|
||||||
|
os=-none
|
||||||
|
;;
|
||||||
|
@@ -372,13 +367,13 @@
|
||||||
|
| 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-* \
|
||||||
|
- | clipper-* | craynv-* | cydra-* \
|
||||||
|
+ | c8051-* | clipper-* | craynv-* | cydra-* \
|
||||||
|
| d10v-* | d30v-* | dlx-* \
|
||||||
|
| elxsi-* \
|
||||||
|
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||||
|
@@ -387,6 +382,7 @@
|
||||||
|
| hexagon-* \
|
||||||
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
|
| ip2k-* | iq2000-* \
|
||||||
|
+ | k1om-* \
|
||||||
|
| le32-* | le64-* \
|
||||||
|
| lm32-* \
|
||||||
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
|
@@ -410,12 +406,13 @@
|
||||||
|
| mipsisa64r2-* | mipsisa64r2el-* \
|
||||||
|
| mipsisa64sb1-* | mipsisa64sb1el-* \
|
||||||
|
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||||||
|
+ | mipsr5900-* | mipsr5900el-* \
|
||||||
|
| mipstx39-* | mipstx39el-* \
|
||||||
|
| mmix-* \
|
||||||
|
| mt-* \
|
||||||
|
| msp430-* \
|
||||||
|
| nds32-* | nds32le-* | nds32be-* \
|
||||||
|
- | nios-* | nios2-* \
|
||||||
|
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
|
||||||
|
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||||
|
| open8-* \
|
||||||
|
| orion-* \
|
||||||
|
@@ -799,7 +796,7 @@
|
||||||
|
os=-mingw64
|
||||||
|
;;
|
||||||
|
mingw32)
|
||||||
|
- basic_machine=i386-pc
|
||||||
|
+ basic_machine=i686-pc
|
||||||
|
os=-mingw32
|
||||||
|
;;
|
||||||
|
mingw32ce)
|
||||||
|
@@ -835,7 +832,7 @@
|
||||||
|
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||||
|
;;
|
||||||
|
msys)
|
||||||
|
- basic_machine=i386-pc
|
||||||
|
+ basic_machine=i686-pc
|
||||||
|
os=-msys
|
||||||
|
;;
|
||||||
|
mvs)
|
||||||
|
@@ -1357,7 +1354,7 @@
|
||||||
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
||||||
|
- | -sym* | -kopensolaris* \
|
||||||
|
+ | -sym* | -kopensolaris* | -plan9* \
|
||||||
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
|
| -aos* | -aros* \
|
||||||
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
|
@@ -1503,9 +1500,6 @@
|
||||||
|
-aros*)
|
||||||
|
os=-aros
|
||||||
|
;;
|
||||||
|
- -kaos*)
|
||||||
|
- os=-kaos
|
||||||
|
- ;;
|
||||||
|
-zvmoe)
|
||||||
|
os=-zvmoe
|
||||||
|
;;
|
||||||
|
@@ -1554,6 +1548,9 @@
|
||||||
|
c4x-* | tic4x-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
+ c8051-*)
|
||||||
|
+ os=-elf
|
||||||
|
+ ;;
|
||||||
|
hexagon-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
@@ -1597,6 +1594,9 @@
|
||||||
|
mips*-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
+ or1k-*)
|
||||||
|
+ os=-elf
|
||||||
|
+ ;;
|
||||||
|
or32-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
diff -ru gmp-5.1.3~/configure.ac gmp-5.1.3/configure.ac
|
||||||
|
--- gmp-5.1.3~/configure.ac 2013-09-30 20:18:28.000000000 +1000
|
||||||
|
+++ gmp-5.1.3/configure.ac 2013-12-04 12:58:44.631937420 +1100
|
||||||
|
@@ -3399,6 +3399,14 @@
|
||||||
|
GMP_ASM_POWERPC_PIC_ALWAYS
|
||||||
|
GMP_ASM_POWERPC_R_REGISTERS
|
||||||
|
GMP_INCLUDE_MPN(powerpc32/powerpc-defs.m4)
|
||||||
|
+
|
||||||
|
+ # Check for Linux ELFv2 ABI
|
||||||
|
+ AC_EGREP_CPP(yes,
|
||||||
|
+[#if _CALL_ELF == 2
|
||||||
|
+yes
|
||||||
|
+#endif],
|
||||||
|
+ [GMP_DEFINE_RAW(["define(<ELFv2_ABI>)"])])
|
||||||
|
+
|
||||||
|
case $host in
|
||||||
|
*-*-aix*)
|
||||||
|
case $ABI in
|
||||||
|
diff -ru gmp-5.1.3~/configure gmp-5.1.3/configure
|
||||||
|
--- gmp-5.1.3~/configure 2013-12-04 13:14:41.149415571 +1100
|
||||||
|
+++ gmp-5.1.3/configure 2013-12-04 13:13:31.084133829 +1100
|
||||||
|
@@ -28373,6 +28373,23 @@
|
||||||
|
|
||||||
|
echo "include_mpn(\`powerpc32/powerpc-defs.m4')" >> $gmp_tmpconfigm4i
|
||||||
|
|
||||||
|
+
|
||||||
|
+ # Check for Linux ELFv2 ABI
|
||||||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+/* end confdefs.h. */
|
||||||
|
+#if _CALL_ELF == 2
|
||||||
|
+yes
|
||||||
|
+#endif
|
||||||
|
+_ACEOF
|
||||||
|
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||||
|
+ $EGREP "yes" >/dev/null 2>&1; then :
|
||||||
|
+
|
||||||
|
+echo "define(<ELFv2_ABI>)" >> $gmp_tmpconfigm4
|
||||||
|
+
|
||||||
|
+fi
|
||||||
|
+rm -f conftest*
|
||||||
|
+
|
||||||
|
+
|
||||||
|
case $host in
|
||||||
|
*-*-aix*)
|
||||||
|
case $ABI in
|
||||||
|
diff -ru gmp-5.1.3~/mpn/powerpc64/elf.m4 gmp-5.1.3/mpn/powerpc64/elf.m4
|
||||||
|
--- gmp-5.1.3~/mpn/powerpc64/elf.m4 2013-09-30 20:18:29.000000000 +1000
|
||||||
|
+++ gmp-5.1.3/mpn/powerpc64/elf.m4 2013-12-04 12:58:44.631937420 +1100
|
||||||
|
@@ -18,7 +18,11 @@
|
||||||
|
dnl You should have received a copy of the GNU Lesser General Public License
|
||||||
|
dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
|
||||||
|
|
||||||
|
-define(`ASM_START',`')
|
||||||
|
+define(`ASM_START',
|
||||||
|
+`ifdef(`ELFv2_ABI',
|
||||||
|
+`
|
||||||
|
+ .abiversion 2
|
||||||
|
+')')
|
||||||
|
|
||||||
|
dnl Called: PROLOGUE_cpu(GSYM_PREFIX`'foo)
|
||||||
|
dnl EPILOGUE_cpu(GSYM_PREFIX`'foo)
|
||||||
|
@@ -26,7 +30,17 @@
|
||||||
|
|
||||||
|
define(`PROLOGUE_cpu',
|
||||||
|
m4_assert_numargs(1)
|
||||||
|
- `
|
||||||
|
+`ifdef(`ELFv2_ABI',
|
||||||
|
+`
|
||||||
|
+ .globl $1
|
||||||
|
+ .type $1, @function
|
||||||
|
+ .section ".text"
|
||||||
|
+ .align 5
|
||||||
|
+$1:
|
||||||
|
+0: addis 2, 12, (.TOC.-0b)@ha
|
||||||
|
+ addi 2, 2, (.TOC.-0b)@l
|
||||||
|
+ .localentry $1, .-$1
|
||||||
|
+',`
|
||||||
|
.globl $1
|
||||||
|
.globl .$1
|
||||||
|
.section ".opd","aw"
|
||||||
|
@@ -37,11 +51,16 @@
|
||||||
|
.type .$1, @function
|
||||||
|
.section ".text"
|
||||||
|
.align 5
|
||||||
|
-.$1:')
|
||||||
|
+.$1:
|
||||||
|
+')')
|
||||||
|
|
||||||
|
define(`EPILOGUE_cpu',
|
||||||
|
m4_assert_numargs(1)
|
||||||
|
-` .size .$1, .-.$1')
|
||||||
|
+`ifdef(`ELFv2_ABI',`
|
||||||
|
+ .size $1, .-$1
|
||||||
|
+',`
|
||||||
|
+ .size .$1, .-.$1
|
||||||
|
+')')
|
||||||
|
|
||||||
|
define(`TOC_ENTRY', `')
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 4 10:42:28 UTC 2013 - anton@samba.org
|
||||||
|
|
||||||
|
- gmp-support-powerpc64le-linux.patch: Add ppc64le ABIv2 support
|
||||||
|
- gmp-ppc64le-mod.patch: Fix ppc64le issues
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Oct 2 08:07:08 UTC 2013 - rguenther@suse.com
|
Wed Oct 2 08:07:08 UTC 2013 - rguenther@suse.com
|
||||||
|
|
||||||
|
4
gmp.spec
4
gmp.spec
@ -31,6 +31,8 @@ Url: http://gmplib.org/
|
|||||||
Source: ftp://ftp.gmplib.org/pub/%{name}/%{name}-%{version}.tar.bz2
|
Source: ftp://ftp.gmplib.org/pub/%{name}/%{name}-%{version}.tar.bz2
|
||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Patch0: gmp-noexec.diff
|
Patch0: gmp-noexec.diff
|
||||||
|
Patch1: gmp-support-powerpc64le-linux.patch
|
||||||
|
Patch2: gmp-ppc64le-mod.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -75,6 +77,8 @@ huge numbers (integer and floating point).
|
|||||||
%ifnarch %arm
|
%ifnarch %arm
|
||||||
%patch0
|
%patch0
|
||||||
%endif
|
%endif
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -fexceptions";
|
export CFLAGS="$RPM_OPT_FLAGS -fexceptions";
|
||||||
|
Loading…
Reference in New Issue
Block a user