diff options
author | vonPalitroque | 2016-09-12 17:01:46 -0400 |
---|---|---|
committer | vonPalitroque | 2016-09-12 17:01:46 -0400 |
commit | 55a3152e7dd4a7870bfce8b8fe2603fa5ca5d9f1 (patch) | |
tree | dee55c0f7ae9ef3b13d52e49fba7b45d7fb95aa7 /PKGBUILD | |
parent | 144cc2564b8843269482131d129e4b22f47defcb (diff) | |
download | aur-55a3152e7dd4a7870bfce8b8fe2603fa5ca5d9f1.tar.gz |
Fixed bug in delay_cycles_32x insn.
There is a bug in the insn that generates the delay loop for the instrinsic
__delay_cycles() function. This bug is noticeable under some circumstances,
where the target is an MSP430X core and the cycle count is representable as a
32 bit number. This bug results in the corruption of r14 in a function that
utilizes the instrinsic under the above conditions. A bug report has been filed
at [1] with a patch submitted. The same patch is applied here. Although it is
improbable that this instrinsic is used in newlib, it is suggested to
recompile it just in case.
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77570
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -4,7 +4,7 @@ _target="msp430-elf" pkgname=${_target}-gcc-stage1 pkgver=6.2.0 _islver=0.17 -pkgrel=1 +pkgrel=2 pkgdesc="The GNU Compiler Collection bootstrap for the ${_target} target." arch=(i686 x86_64) license=('GPL' 'LGPL') @@ -12,9 +12,11 @@ url="http://gcc.gnu.org" depends=("${_target}-binutils>=2.25" 'libmpc' 'elfutils') options=('staticlibs' '!buildflags' '!libtool' '!emptydirs' 'zipman' 'docs' '!strip') source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 - http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2) + http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 + fix-insn-delay_cycles_32x.patch) sha256sums=('9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5' - '439b322f313aef562302ac162caccb0b90daedf88d49d62e00a5db6b9d83d6bb') + '439b322f313aef562302ac162caccb0b90daedf88d49d62e00a5db6b9d83d6bb' + '0cd87771d1fd8ec5d0c413ae8c18b9b2599f2c66a0fa8b5fd4aa2f01ac1b5f86') prepare() { # add isl into tree @@ -22,6 +24,10 @@ prepare() { [[ -L isl ]] && rm -f isl ln -s ../isl-${_islver} isl + # fix for: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77570 + patch -p1 < ../fix-insn-delay_cycles_32x.patch + # clean build directory [[ -d gcc-build ]] && rm -rf gcc-build mkdir gcc-build |