diff --git a/core/gcc/0001-ARMv5-disable-LDRD-STRD.patch b/core/gcc/0001-ARMv5-disable-LDRD-STRD.patch new file mode 100644 index 000000000..353898328 --- /dev/null +++ b/core/gcc/0001-ARMv5-disable-LDRD-STRD.patch @@ -0,0 +1,25 @@ +From b1884b6d1950422a32f9ced0be6d5492e4315547 Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich +Date: Wed, 7 Jan 2015 18:43:57 -0700 +Subject: [PATCH] ARMv5: disable LDRD/STRD + +--- + gcc/config/arm/arm.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h +index c60d9a4..65c60b9 100644 +--- a/gcc/config/arm/arm.h ++++ b/gcc/config/arm/arm.h +@@ -282,7 +282,7 @@ extern void (*arm_lang_output_object_attributes_hook)(void); + /* Thumb-1 only. */ + #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm) + +-#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN \ ++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \ + && !TARGET_THUMB1) + + #define TARGET_CRC32 (arm_arch_crc) +-- +2.2.1 + diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index 881794486..4760f6e17 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -10,6 +10,7 @@ # - disabled make check, too much stress, kills plugs :( # - specifid build host, disabled distcc # - replaced bugurl with our GitHub issue page +# - patch to disable LDRD/STRD instructions on ARMv5 noautobuild=1 @@ -18,7 +19,7 @@ pkgver=4.9.2 _pkgver=4.9 _islver=0.12.2 _cloogver=0.18.1 -pkgrel=2 +pkgrel=2.1 _snapshot=4.9-20141224 pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') @@ -31,11 +32,13 @@ source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2 http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz - gcc-4.8-filename-output.patch) + gcc-4.8-filename-output.patch + 0001-ARMv5-disable-LDRD-STRD.patch) md5sums=('064bc3224ed492c1b2751c313f8278b0' 'e039bfcfb6c2ab039b8ee69bf883e824' 'e34fca0540d840e5d0f6427e98c92252' - '6810bb9b2252f03e6c98d9a671d94589') + '6810bb9b2252f03e6c98d9a671d94589' + '924a9bcdd7852410667f04ce18c305d7') if [ -n "${_snapshot}" ]; then _basedir=gcc-${_snapshot} @@ -70,6 +73,9 @@ prepare() { [[ $CARCH == "armv7h" ]] && CONFIGFLAG="--host=armv7l-unknown-linux-gnueabihf --build=armv7l-unknown-linux-gnueabihf --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16" mkdir ${srcdir}/gcc-build + + # Disable LDRD/STRD on ARMv5 (64-bit alignment issues) + patch -p1 -i ../0001-ARMv5-disable-LDRD-STRD.patch } build() {