diff options
| author | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 22:03:58 +0100 |
|---|---|---|
| committer | Koen Kooi <koen@dominion.thruhere.net> | 2010-11-02 22:12:02 +0100 |
| commit | be10a6b1321f250b1034c7d9d0a8ef18b296eef1 (patch) | |
| tree | 9249025cbfbfbee4cc430d62b27f75301dd4dfde /recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch | |
| parent | 93b28937ac67ba46d65f55637e42552e224aa7e2 (diff) | |
| download | meta-openembedded-be10a6b1321f250b1034c7d9d0a8ef18b296eef1.tar.gz | |
angstrom-layers: meta-openembedded: replace poky gcc 4.5 sources with OE ones
This needs further investigation, but for now we can get the tested sources into the poky gcc harness
Signed-off-by: Koen Kooi <k-kooi@ti.com>
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch')
| -rw-r--r-- | recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch new file mode 100644 index 0000000000..59b598ba70 --- /dev/null +++ b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99326.patch | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | |||
| 2 | http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00038.html | ||
| 3 | |||
| 4 | * g++.dg/other/armv7m-1.C: New. | ||
| 5 | |||
| 6 | 2010-07-26 Julian Brown <julian@codesourcery.com> | ||
| 7 | |||
| 8 | Merge from Sourcery G++ 4.4: | ||
| 9 | |||
| 10 | http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00811.html | ||
| 11 | |||
| 12 | |||
| 13 | === added file 'gcc/testsuite/g++.dg/other/armv7m-1.C' | ||
| 14 | --- old/gcc/testsuite/g++.dg/other/armv7m-1.C 1970-01-01 00:00:00 +0000 | ||
| 15 | +++ new/gcc/testsuite/g++.dg/other/armv7m-1.C 2010-08-05 16:23:43 +0000 | ||
| 16 | @@ -0,0 +1,69 @@ | ||
| 17 | +/* { dg-do run { target arm*-*-* } } */ | ||
| 18 | +/* Test Armv7m interrupt routines. */ | ||
| 19 | +#include <stdlib.h> | ||
| 20 | + | ||
| 21 | +#ifdef __ARM_ARCH_7M__ | ||
| 22 | +void __attribute__((interrupt)) | ||
| 23 | +foo(void) | ||
| 24 | +{ | ||
| 25 | + long long n; | ||
| 26 | + long p; | ||
| 27 | + asm volatile ("" : "=r" (p) : "0" (&n)); | ||
| 28 | + if (p & 4) | ||
| 29 | + abort (); | ||
| 30 | + return; | ||
| 31 | +} | ||
| 32 | + | ||
| 33 | +void __attribute__((interrupt)) | ||
| 34 | +bar(void) | ||
| 35 | +{ | ||
| 36 | + throw 42; | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +int main() | ||
| 40 | +{ | ||
| 41 | + int a; | ||
| 42 | + int before; | ||
| 43 | + int after; | ||
| 44 | + volatile register int sp asm("sp"); | ||
| 45 | + | ||
| 46 | + asm volatile ("mov %0, sp\n" | ||
| 47 | + "blx %2\n" | ||
| 48 | + "mov %1, sp\n" | ||
| 49 | + : "=&r" (before), "=r" (after) : "r" (foo) | ||
| 50 | + : "memory", "cc", "r0", "r1", "r2", "r3", "ip", "lr"); | ||
| 51 | + if (before != after) | ||
| 52 | + abort(); | ||
| 53 | + asm volatile ("mov %0, sp\n" | ||
| 54 | + "sub sp, sp, #4\n" | ||
| 55 | + "blx %2\n" | ||
| 56 | + "add sp, sp, #4\n" | ||
| 57 | + "mov %1, sp\n" | ||
| 58 | + : "=&r" (before), "=r" (after) : "r" (foo) | ||
| 59 | + : "memory", "cc", "r0", "r1", "r2", "r3", "ip", "lr"); | ||
| 60 | + if (before != after) | ||
| 61 | + abort(); | ||
| 62 | + before = sp; | ||
| 63 | + try | ||
| 64 | + { | ||
| 65 | + bar(); | ||
| 66 | + } | ||
| 67 | + catch (int i) | ||
| 68 | + { | ||
| 69 | + if (i != 42) | ||
| 70 | + abort(); | ||
| 71 | + } | ||
| 72 | + catch (...) | ||
| 73 | + { | ||
| 74 | + abort(); | ||
| 75 | + } | ||
| 76 | + if (before != sp) | ||
| 77 | + abort(); | ||
| 78 | + exit(0); | ||
| 79 | +} | ||
| 80 | +#else | ||
| 81 | +int main() | ||
| 82 | +{ | ||
| 83 | + exit (0); | ||
| 84 | +} | ||
| 85 | +#endif | ||
| 86 | |||
