aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch')
-rw-r--r--meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch
new file mode 100644
index 0000000..36e4161
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-core/glibc/glibc-linaro-2.20/0015-Use-PTR_-in-start.S.patch
@@ -0,0 +1,75 @@
+From 67c890fd7f5d830a433399df6e033fe866c851d0 Mon Sep 17 00:00:00 2001
+From: Andrew Pinski <apinski@cavium.com>
+Date: Mon, 27 Oct 2014 00:59:38 -0700
+Subject: [PATCH 15/32] Use PTR_* in start.S
+
+To support ILP32 without much sources changes, this changes
+sysdeps/aarch64/start.S to use the PTR_* macros which was defined
+earlier.
+
+* sysdeps/aarch64/start.S: Include sysdep.h
+(_start): Use PTR_REG, PTR_SIZE macros.
+---
+ sysdeps/aarch64/start.S | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
+index 35d603a..dfa0622 100644
+--- a/sysdeps/aarch64/start.S
++++ b/sysdeps/aarch64/start.S
+@@ -16,6 +16,8 @@
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
++#include <sysdep.h>
++
+ /* This is the canonical entry point, usually the first thing in the text
+ segment.
+
+@@ -25,7 +27,7 @@
+
+ At this entry point, most registers' values are unspecified, except:
+
+- x0 Contains a function pointer to be registered with `atexit'.
++ x0/w0 Contains a function pointer to be registered with `atexit'.
+ This is how the dynamic linker arranges to have DT_FINI
+ functions called for shared libraries that have been loaded
+ before this code runs.
+@@ -53,26 +55,26 @@ _start:
+ mov x5, x0
+
+ /* Load argc and a pointer to argv */
+- ldr x1, [sp, #0]
+- add x2, sp, #8
++ ldr PTR_REG (1), [sp, #0]
++ add x2, sp, #PTR_SIZE
+
+ /* Setup stack limit in argument register */
+ mov x6, sp
+
+ #ifdef SHARED
+ adrp x0, :got:main
+- ldr x0, [x0, #:got_lo12:main]
++ ldr PTR_REG (0), [x0, #:got_lo12:main]
+
+ adrp x3, :got:__libc_csu_init
+- ldr x3, [x3, #:got_lo12:__libc_csu_init]
++ ldr PTR_REG (3), [x3, #:got_lo12:__libc_csu_init]
+
+ adrp x4, :got:__libc_csu_fini
+- ldr x4, [x4, #:got_lo12:__libc_csu_fini]
++ ldr PTR_REG (4), [x4, #:got_lo12:__libc_csu_fini]
+ #else
+ /* Set up the other arguments in registers */
+- ldr x0, =main
+- ldr x3, =__libc_csu_init
+- ldr x4, =__libc_csu_fini
++ ldr PTR_REG (0), =main
++ ldr PTR_REG (3), =__libc_csu_init
++ ldr PTR_REG (4), =__libc_csu_fini
+ #endif
+
+ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini,
+--
+1.9.3
+