mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-01-18 18:56:31 +00:00
36bb675a71
- GLIBC requires a fix to work with binutils 2.30 on aarch64. This fix relies on binutils 2.24 or newer, which is okay for glibc 2.26 since it needs 2.25 or newer anyway. But older glibc versions are now pinned to binutils 2.29 or older on aarch64. - xtensa needs patches in libgcc with gcc 7.3. - comment in newlib's patch to indicate it is a reversal of a commit. Signed-off-by: Alexey Neyman <stilor@att.net>
34 lines
1.3 KiB
Diff
34 lines
1.3 KiB
Diff
commit 8a66d422721ae5999737d7825701ff22097d287b
|
|
Author: Andrew Hsieh <andrewhsieh@google.com>
|
|
Date: Mon Apr 14 21:05:51 2014 -0700
|
|
|
|
[android] Fix ARM generates insufficient alignment for NEON vst/vld
|
|
|
|
See d909af3e2469aad87d5c3e79b93c778fd26c03a9
|
|
|
|
Change-Id: Ie1de9f946f397196bb6f1623f5add86933739484
|
|
Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
|
|
|
|
---
|
|
gcc/config/arm/arm.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
--- a/gcc/config/arm/arm.c
|
|
+++ b/gcc/config/arm/arm.c
|
|
@@ -22292,9 +22292,13 @@
|
|
memsize = MEM_SIZE (x);
|
|
|
|
/* Only certain alignment specifiers are supported by the hardware. */
|
|
- if (memsize == 32 && (align % 32) == 0)
|
|
+ /* Note that ARM EABI only guarentees 8-byte stack alignment. While GCC
|
|
+ honors stricter alignment of composite type in user code, it doesn't
|
|
+ observe the alignment of memory passed as an extra argument for function
|
|
+ returning large composite type. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57271 */
|
|
+ if (memsize == 32 && (align % 32) == 0 && !TARGET_AAPCS_BASED)
|
|
align_bits = 256;
|
|
- else if ((memsize == 16 || memsize == 32) && (align % 16) == 0)
|
|
+ else if ((memsize == 16 || memsize == 32) && (align % 16) == 0 && !TARGET_AAPCS_BASED)
|
|
align_bits = 128;
|
|
else if (memsize >= 8 && (align % 8) == 0)
|
|
align_bits = 64;
|